From f1981744fd80f2f5bf2daafb2424d5c3ebbc96b4 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 31 May 2024 15:57:51 +0300 Subject: [PATCH 01/86] =?UTF-8?q?SQ=20=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=82=D0=B8=D1=8F=20pull=5Frequest=5Ftarget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sq-pr.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/sq-pr.yml b/.github/workflows/sq-pr.yml index 82d027c3d..5b7c64985 100644 --- a/.github/workflows/sq-pr.yml +++ b/.github/workflows/sq-pr.yml @@ -1,12 +1,15 @@ name: Анализ в SonarQube (pull-request) on: - - pull_request - # - pull_request_target Не поддерживается 1CDevFlow/sonar-quality-gate и sonarqube-community-branch-plugin, необходимо доработать action + - pull_request_target jobs: SonarScanner: runs-on: ubuntu-latest steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" - name: Checkout PR uses: actions/checkout@v4 with: @@ -18,12 +21,15 @@ jobs: # https://docs.sonarqube.org/latest/analysis/pull-request/ - name: Analyze (pull-request) uses: 1CDevFlow/sonar-quality-gate@master + with: + sonarBranchPlugin: true env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} GIT_URL: "https://api.github.com" - GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_URL: https://sonar.openbsl.ru SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} GITHUB_REPOSITORY: bia-technologies/yaxunit - CI_MERGE_REQUEST_IID: ${{ github.event.number }} DEBUG: ${{ runner.debug }} + GITHUB_REF: refs/pull/${{ github.event.number }}/merge + GITHUB_BASE_REF: ${{ github.event.pull_request.base.ref }} + GITHUB_HEAD_REF: ${{ github.event.pull_request.head.ref }} From c6ff0ff1c4a80645cda69d62e6192ecc49eba01b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 5 Jun 2024 02:09:36 +0300 Subject: [PATCH 02/86] =?UTF-8?q?feat:=20=D0=9F=D0=B5=D1=80=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BD=D0=B0=20=D0=BF=D1=83=D0=B1?= =?UTF-8?q?=D0=BB=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9=20=D1=81=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sq-pr.yml | 35 ----------------------------- .github/workflows/sq.yml | 44 +++++++++++++++++++++++-------------- 2 files changed, 27 insertions(+), 52 deletions(-) delete mode 100644 .github/workflows/sq-pr.yml diff --git a/.github/workflows/sq-pr.yml b/.github/workflows/sq-pr.yml deleted file mode 100644 index 5b7c64985..000000000 --- a/.github/workflows/sq-pr.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Анализ в SonarQube (pull-request) - -on: - - pull_request_target -jobs: - SonarScanner: - runs-on: ubuntu-latest - steps: - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - - name: Checkout PR - uses: actions/checkout@v4 - with: - # Для поддержки pull_request и pull_request_target - # https://github.com/android-password-store/Android-Password-Store/pull/1247 - ref: refs/pull/${{ github.event.number }}/merge - fetch-depth: 0 - - # https://docs.sonarqube.org/latest/analysis/pull-request/ - - name: Analyze (pull-request) - uses: 1CDevFlow/sonar-quality-gate@master - with: - sonarBranchPlugin: true - env: - GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GIT_URL: "https://api.github.com" - SONAR_URL: https://sonar.openbsl.ru - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - GITHUB_REPOSITORY: bia-technologies/yaxunit - DEBUG: ${{ runner.debug }} - GITHUB_REF: refs/pull/${{ github.event.number }}/merge - GITHUB_BASE_REF: ${{ github.event.pull_request.base.ref }} - GITHUB_HEAD_REF: ${{ github.event.pull_request.head.ref }} diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index 56769139d..a53b60523 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -1,56 +1,57 @@ -name: sq-analyze +name: SonarQualityGate on: - push - # - pull_request + - pull_request_target jobs: - SonarScanner: + SonarQualityGate: runs-on: ubuntu-latest if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name steps: - - name: Checkout + + - name: Checkout PR + if: github.event_name != 'push' uses: actions/checkout@v4 with: - repository: ${{ github.event.workflow_run.head_repository.full_name }} - ref: ${{ github.event.workflow_run.head_branch }} - fetch-depth: 0 + ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target + + - name: Checkout ${{ github.ref_name }} + if: github.event_name == 'push' + uses: actions/checkout@v4 + - name: Configure env vars for SonarCloud scan env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true run: | echo "::set-env name=PATH::/opt/sonar-scanner/bin:$PATH" - - name: Compute branch name - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - uses: nixel2007/branch-name@v3 - - name: Extract version if: github.event_name == 'push' shell: bash - run: echo "##[set-output name=version;]` cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+'`" + run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT id: extract_version - name: Setup sonarqube uses: warchant/setup-sonar-scanner@v8 # Анализ проекта в SonarQube (ветка) - - name: Анализ в SonarQube (branch) + - name: Анализ в SonarQube (${{ github.ref_name }}) if: github.event_name == 'push' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: sonar-scanner -Dsonar.host.url=https://sonar.openbsl.ru - -Dsonar.branch.name=${{ env.BRANCH_NAME }} + -Dsonar.branch.name=${{ github.ref_name }} -Dsonar.projectVersion=${{ steps.extract_version.outputs.version }} -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 + # Анализ проекта в SonarQube (PR) # https://docs.sonarqube.org/latest/analysis/pull-request/ - - name: Анализ в SonarQube (pull-request) - if: github.event_name == 'pull_request' + - name: Анализ в SonarQube (pull-request ${{ github.event.number }}) + if: github.event_name != 'push' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} @@ -62,3 +63,12 @@ jobs: -Dsonar.scm.revision=${{ github.event.pull_request.head.sha }} -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 + + - name: Publish report (pull-request) + if: github.event_name != 'push' && (success()||failure()) + uses: 1CDevFlow/sonar-review-action@main + with: + sonar_branch_plugin: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + \ No newline at end of file From fb7d571ff01628b39b4f7ac13f94061d9cf4e525 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 6 Jun 2024 00:23:36 +0300 Subject: [PATCH 03/86] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" index a1274b11e..32d06af2e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" @@ -111,9 +111,10 @@ КонецЕсли; Если ЮТСтроки.ВерсияБольше(ЮТОкружение.ВерсияПлатформы(), "8.3.20") Тогда + //@skip-check module-unused-local-variable ТипПодключения = ЮТМетодыСлужебный.ВычислитьБезопасно("ТипПодключенияВнешнейКомпоненты.НеИзолированно"); - //@skip-check many-actual-parameters - Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native, ТипПодключения); + //@skip-check server-execution-safe-mode + Возврат Вычислить("ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native, ТипПодключения)"); Иначе Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native); КонецЕсли; From 06e1c17a5b456bda8da2331aac93645a3639dada Mon Sep 17 00:00:00 2001 From: Kirill Chernenko Date: Wed, 26 Jun 2024 18:51:14 +1000 Subject: [PATCH 04/86] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D1=80=D0=B5=D0=B4=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BA=D0=B8=20=D1=83=D1=82=D0=B2=D0=B5=D1=80=D0=B6=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20=D1=8D=D0=BB=D0=B5=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20=D0=BF=D0=BE=20=D0=BD=D1=83?= =?UTF-8?q?=D0=BB=D0=B5=D0=B2=D0=BE=D0=BC=D1=83=20=D0=B8=D0=BD=D0=B4=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 27 ++++++++++++++----- .../Module.bsl" | 14 ++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 57d3c356b..45e03d328 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -29,10 +29,22 @@ // Строка - Форматированный текст ошибки утверждения Функция ФорматированныйТекстОшибкиУтверждения(Знач ОписаниеПроверки, ТекстОжидания, ОбъектПроверки) Экспорт - Если ЗначениеЗаполнено(ОписаниеПроверки.ОбъектПроверки.ИмяСвойства) Тогда - ВставкаСвойство = СтрШаблон(" содержит свойство `%1`, которое", ОписаниеПроверки.ОбъектПроверки.ИмяСвойства); + Если ТипЗнч(ОписаниеПроверки.ОбъектПроверки.ИмяСвойства) = Тип("Число") Тогда + + ВставкаСвойствоИндекс = СтрШаблон( + " содержит значение по индексу `%1`, которое", + ОписаниеПроверки.ОбъектПроверки.ИмяСвойства + ); + + ИначеЕсли ЗначениеЗаполнено(ОписаниеПроверки.ОбъектПроверки.ИмяСвойства) Тогда + + ВставкаСвойствоИндекс = СтрШаблон( + " содержит свойство `%1`, которое", + ОписаниеПроверки.ОбъектПроверки.ИмяСвойства + ); + Иначе - ВставкаСвойство = ""; + ВставкаСвойствоИндекс = ""; КонецЕсли; Если ЗначениеЗаполнено(ОписаниеПроверки.ОбъектПроверки.Представление) Тогда @@ -43,12 +55,15 @@ // Заголовок сообщения ТекстСообщения = ""; + // Тело сообщения - ТекстСообщения = СтрШаблон("ожидали, что %1 %2%3 %4, но это не так.", + ТекстСообщения = СтрШаблон( + "ожидали, что %1 %2%3 %4, но это не так.", ОбъектПроверки, ПредставлениеЗначения, - ВставкаСвойство, - ТекстОжидания); + ВставкаСвойствоИндекс, + ТекстОжидания + ); Возврат ТекстСообщения; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 42f67e3b0..6219a504a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -190,6 +190,20 @@ ПроверитьОшибкуУтверждения(Ошибка, "Ожидали, что проверяемое значение `Структура` содержит свойство `Объект.Нулевой`, но это не так"); Объект = ЮТКоллекции.ЗначениеВМассиве("1", "2", "3"); + + Попытка + Ошибка = Неопределено; + ЮТУтверждения.Что(Объект) + .Элемент(0).Равно("2"); + Исключение + Ошибка = ИнформацияОбОшибке(); + КонецПопытки; + + ПроверитьОшибкуУтверждения( + Ошибка, + "Ожидали, что проверяемое значение `Массив` содержит значение по индексу `0`, которое равно `2`, но это не так" + ); + ЮТУтверждения.Что(Объект, "Проверка элементов массива") .Элемент(0).Равно("1") .Элемент(1).Равно("2") From 99fac30005b63ec24f7d1ddd83880dc15c665f8d Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 10 Jul 2024 21:25:32 +0300 Subject: [PATCH 05/86] =?UTF-8?q?test(fixtures):=20#379=20=D0=BE=D0=BF?= =?UTF-8?q?=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B0=20=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Form.form" | 50 +-- .../Form.form" | 74 ++-- .../Form.form" | 14 +- .../Form.form" | 44 +- .../Form.form" | 48 +-- .../Form.form" | 52 +-- .../Form.form" | 60 ++- .../Form.form" | 68 ++- .../Form.form" | 30 +- .../Form.form" | 116 ++---- .../Form.form" | 182 ++++---- .../Form.form" | 52 +-- .../Form.form" | 34 +- .../Form.form" | 14 +- .../Form.form" | 44 +- .../Form.form" | 28 +- .../Form.form" | 30 +- .../Form.form" | 44 +- .../Form.form" | 42 +- .../Form.form" | 122 +++--- .../Template.mxlx" | 11 +- .../Template.mxlx" | 2 +- .../Form.form" | 20 +- .../Form.form" | 48 +-- .../Form.form" | 14 +- .../Form.form" | 46 +-- .../Form.form" | 14 +- .../Form.form" | 54 ++- .../Form.form" | 92 ++--- .../Form.form" | 12 +- .../Form.form" | 64 +-- .../Form.form" | 30 +- .../Form.form" | 158 +++---- .../Form.form" | 42 +- .../Form.form" | 16 +- .../Form.form" | 104 ++--- .../Form.form" | 56 ++- .../Form.form" | 16 +- .../Form.form" | 260 +++++------- .../Form.form" | 218 ++++------ .../Form.form" | 44 +- .../Form.form" | 210 ++++------ .../Form.form" | 26 +- .../Form.form" | 70 ++-- .../Form.form" | 18 +- .../Form.form" | 70 ++-- .../Form.form" | 120 +++--- .../Form.form" | 76 ++-- .../Form.form" | 48 +-- .../Form.form" | 40 +- .../Form.form" | 44 +- .../Form.form" | 116 +++--- .../Form.form" | 56 +-- .../Form.form" | 68 ++- .../Form.form" | 134 +++--- .../Form.form" | 56 +-- .../Form.form" | 88 ++-- .../Form.form" | 64 ++- .../Form.form" | 64 ++- .../Form.form" | 118 ++---- .../Form.form" | 52 +-- ...0\276\320\262\320\260\321\200\320\260.mdo" | 32 +- .../Form.form" | 24 +- .../Form.form" | 154 +++---- .../Form.form" | 64 ++- .../Template.mxlx" | 27 +- .../Template.mxlx" | 22 +- ...0\276\320\262\320\260\321\200\320\260.mdo" | 36 +- .../Form.form" | 34 +- .../Form.form" | 32 +- .../Template.dcs" | 1 + .../Rights.rights" | 106 ++++- .../Rights.rights" | 106 ++++- .../Rights.rights" | 390 +++++++++++++++++- .../Form.form" | 22 +- .../Form.form" | 38 +- 76 files changed, 2455 insertions(+), 2640 deletions(-) diff --git "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" index 1902f2b2e..8d188f48b 100644 --- "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" +++ "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" @@ -21,13 +21,11 @@ true - - - ТаблицаОстатков.Контрагент - + + ТаблицаОстатков.Контрагент - ТаблицаОстатковКонтрагентExtendedTooltip + ТаблицаОстатковКонтрагентРасширеннаяПодсказка 20 true true @@ -71,13 +69,11 @@ true - - - ТаблицаОстатков.Валюта - + + ТаблицаОстатков.Валюта - ТаблицаОстатковВалютаExtendedTooltip + ТаблицаОстатковВалютаРасширеннаяПодсказка 21 true true @@ -115,19 +111,17 @@ ТаблицаОстатковНашДолг - 2 + 33 true true true - - - ТаблицаОстатков.НашДолг - + + ТаблицаОстатков.НашДолг - ТаблицаОстатковНашДолгExtendedTooltip + ТаблицаОстатковНашДолгРасширеннаяПодсказка 22 true true @@ -165,19 +159,17 @@ ТаблицаОстатковДолгНам - 3 + 36 true true true - - - ТаблицаОстатков.ДолгНам - + + ТаблицаОстатков.ДолгНам - ТаблицаОстатковДолгНамExtendedTooltip + ТаблицаОстатковДолгНамРасширеннаяПодсказка 23 true true @@ -347,7 +339,7 @@ - ТаблицаОстатковExtendedTooltip + ТаблицаОстатковРасширеннаяПодсказка 19 true true @@ -402,7 +394,7 @@ -1 Обновить - 4 + 37 true true @@ -410,7 +402,7 @@ false - ОбновитьExtendedTooltip + ОбновитьРасширеннаяПодсказка 16 true true @@ -449,7 +441,7 @@ false - СправкаExtendedTooltip + СправкаРасширеннаяПодсказка 17 true true @@ -488,7 +480,7 @@ false - НастроитьExtendedTooltip + НастроитьРасширеннаяПодсказка 18 true true @@ -544,7 +536,7 @@ ru Таблица остатков - 2 + 34 ValueTable @@ -560,7 +552,7 @@ ru Контрагент - 1 + 35 CatalogRef.Контрагенты diff --git "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 488287472..48e0b1564 100644 --- "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -2,7 +2,7 @@ Список - 1 + 16 true true @@ -26,14 +26,12 @@ true - - - Список.Period - + + Список.Period true - ПериодExtendedTooltip + ПериодРасширеннаяПодсказка 21 true true @@ -48,7 +46,7 @@ - Период_КонтекстноеМеню + ПериодКонтекстноеМеню 5 true true @@ -79,13 +77,11 @@ true - - - Список.Recorder - + + Список.Recorder - РегистраторExtendedTooltip + РегистраторРасширеннаяПодсказка 22 true true @@ -100,7 +96,7 @@ - Регистратор_КонтекстноеМеню + РегистраторКонтекстноеМеню 7 true true @@ -131,13 +127,11 @@ true - - - Список.LineNumber - + + Список.LineNumber - НомерСтрокиExtendedTooltip + НомерСтрокиРасширеннаяПодсказка 23 true true @@ -152,7 +146,7 @@ - НомерСтроки_КонтекстноеМеню + НомерСтрокиКонтекстноеМеню 9 true true @@ -183,13 +177,11 @@ true - - - Список.Контрагент - + + Список.Контрагент - КонтрагентExtendedTooltip + КонтрагентРасширеннаяПодсказка 24 true true @@ -204,7 +196,7 @@ - Контрагент_КонтекстноеМеню + КонтрагентКонтекстноеМеню 11 true true @@ -235,13 +227,11 @@ true - - - Список.Сумма - + + Список.Сумма - СуммаExtendedTooltip + СуммаРасширеннаяПодсказка 25 true true @@ -256,7 +246,7 @@ - Сумма_КонтекстноеМеню + СуммаКонтекстноеМеню 15 true true @@ -287,13 +277,11 @@ true - - - Список.Валюта - + + Список.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 26 true true @@ -308,7 +296,7 @@ - Валюта_КонтекстноеМеню + ВалютаКонтекстноеМеню 13 true true @@ -329,7 +317,7 @@ None - Список_КоманднаяПанель + СписокКоманднаяПанель 3 true true @@ -457,7 +445,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 20 true true @@ -472,7 +460,7 @@ - Список_КонтекстноеМеню + СписокКонтекстноеМеню 2 true true @@ -517,7 +505,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 ВсеВзаиморасчеты @@ -533,7 +521,7 @@ false - ВсеВзаиморасчетыExtendedTooltip + ВсеВзаиморасчетыРасширеннаяПодсказка 19 true true @@ -580,7 +568,7 @@ true Список - 1 + 17 DynamicList diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 4ff43717d..be552b5a2 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,16 +2,14 @@ Код - 1 + 7 true true true - - - Объект.Code - + + Объект.Code КодРасширеннаяПодсказка @@ -60,10 +58,8 @@ true - - - Объект.Description - + + Объект.Description НаименованиеРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" index 1379ed2f0..fc38d1ad4 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" @@ -2,22 +2,20 @@ ГоризонтальнаяГруппировка - 1 + 10 ГруппаСлева - 3 + 15 ДатаОтображения - 5 + 13 true true true - - - ДатаОтображения - + + ДатаОтображения None @@ -41,7 +39,7 @@ ДатаОтображенияКонтекстноеМеню - 6 + 12 true true @@ -91,7 +89,7 @@ false ГруппаСлеваРасширеннаяПодсказка - 4 + 16 true true @@ -221,10 +219,8 @@ Role.Продавец - - - ОтображатьВстречиДругихПользователей - + + ОтображатьВстречиДругихПользователей OnChange @@ -270,10 +266,8 @@ true - - - ПредставлениеПериода - + + ПредставлениеПериода None @@ -320,10 +314,8 @@ true - - - ВариантПериода - + + ВариантПериода None @@ -559,10 +551,8 @@ true - - - Планировщик - + + Планировщик None @@ -680,7 +670,7 @@ ГоризонтальнаяГруппировкаРасширеннаяПодсказка - 2 + 14 true true @@ -737,7 +727,7 @@ ru Планировщик - 1 + 11 Planner diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 8318ba6a0..dc15e5e2d 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -21,10 +21,8 @@ true - - - Список.Календарь - + + Список.Календарь КалендарьРасширеннаяПодсказка @@ -69,10 +67,8 @@ true - - - Список.Description - + + Список.Description true @@ -118,10 +114,8 @@ true - - - Список.Начало - + + Список.Начало НачалоРасширеннаяПодсказка @@ -166,10 +160,8 @@ true - - - Список.Окончание - + + Список.Окончание ОкончаниеРасширеннаяПодсказка @@ -214,10 +206,8 @@ true - - - Список.Источник - + + Список.Источник ИсточникРасширеннаяПодсказка @@ -262,10 +252,8 @@ true - - - Список.Подсказка - + + Список.Подсказка ПодсказкаРасширеннаяПодсказка @@ -308,10 +296,8 @@ true true - - - Список.Code - + + Список.Code КодРасширеннаяПодсказка @@ -354,10 +340,8 @@ true true - - - Список.Ref - + + Список.Ref СсылкаРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 52901712b..1d0f8ddc2 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -17,10 +17,8 @@ true - - - Объект.Начало - + + Объект.Начало НачалоДатаРасширеннаяПодсказка @@ -74,10 +72,8 @@ true - - - Объект.Окончание - + + Объект.Окончание ОкончаниеДатаРасширеннаяПодсказка @@ -171,10 +167,8 @@ true - - - Объект.Начало - + + Объект.Начало None @@ -235,10 +229,8 @@ true - - - Объект.Окончание - + + Объект.Окончание None @@ -375,10 +367,8 @@ true - - - Объект.Description - + + Объект.Description true @@ -422,14 +412,12 @@ Код - 1 + 7 true true - - - Объект.Code - + + Объект.Code КодРасширеннаяПодсказка @@ -448,7 +436,7 @@ КодКонтекстноеМеню - 2 + 8 true true @@ -514,10 +502,8 @@ true - - - Объект.Описание - + + Объект.Описание Left @@ -609,10 +595,8 @@ true - - - Объект.Owner - + + Объект.Owner ВладелецРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 2246e6c8a..d9478c31a 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,19 +2,17 @@ Дата - 3 + 9 true true true - - - Объект.Дата - + + Объект.Дата - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 30 true true @@ -30,7 +28,7 @@ ДатаКонтекстноеМеню - 4 + 10 true true @@ -54,20 +52,18 @@ Наименование - 1 + 7 true true true - - - Объект.Description - + + Объект.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 31 true true @@ -83,7 +79,7 @@ НаименованиеКонтекстноеМеню - 2 + 11 true true @@ -113,13 +109,11 @@ true - - - Объект.Отправитель - + + Объект.Отправитель - АдресатExtendedTooltip + АдресатРасширеннаяПодсказка 32 true true @@ -171,14 +165,12 @@ true - - - HTML - + + HTML None - HTMLExtendedTooltip + HTMLРасширеннаяПодсказка 35 true true @@ -230,7 +222,7 @@ Группа HTML - ГруппаHTMLExtendedTooltip + ГруппаHTMLРасширеннаяПодсказка 34 true true @@ -261,14 +253,12 @@ true - - - Текст - + + Текст None - ТекстExtendedTooltip + ТекстРасширеннаяПодсказка 37 true true @@ -321,7 +311,7 @@ Группа текст - ГруппаТекстExtendedTooltip + ГруппаТекстРасширеннаяПодсказка 36 true true @@ -355,7 +345,7 @@ Группа - ГруппаExtendedTooltip + ГруппаРасширеннаяПодсказка 33 true true @@ -386,7 +376,7 @@ true - ОтветитьExtendedTooltip + ОтветитьРасширеннаяПодсказка 28 true true @@ -415,7 +405,7 @@ true - СправкаExtendedTooltip + СправкаРасширеннаяПодсказка 29 true true @@ -460,7 +450,7 @@ true Объект - 1 + 8 CatalogObject.ВходящиеПисьма diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 0063e1252..59330fc84 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,19 +2,17 @@ Дата - 3 + 20 true true true - - - Объект.Дата - + + Объект.Дата - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 30 true true @@ -30,7 +28,7 @@ ДатаКонтекстноеМеню - 4 + 18 true true @@ -54,20 +52,18 @@ Наименование - 1 + 10 true true true - - - Объект.Description - + + Объект.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 31 true true @@ -83,7 +79,7 @@ НаименованиеКонтекстноеМеню - 2 + 16 true true @@ -113,10 +109,8 @@ true - - - Объект.Контрагент - + + Объект.Контрагент OnChange @@ -166,7 +160,7 @@ 22 Получатель - 5 + 19 <key>ru</key> <value>Адрес</value> @@ -176,10 +170,8 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Объект.Получатель</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Объект.Получатель</segments> </dataPath> <extendedTooltip> <name>ПолучательРасширеннаяПодсказка</name> @@ -233,7 +225,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ВыбратьПолучателяExtendedTooltip</name> + <name>ВыбратьПолучателяРасширеннаяПодсказка</name> <id>34</id> <visible>true</visible> <enabled>true</enabled> @@ -268,7 +260,7 @@ <value>Группа получатель</value> </toolTip> <extendedTooltip> - <name>ГруппаПолучательExtendedTooltip</name> + <name>ГруппаПолучательРасширеннаяПодсказка</name> <id>32</id> <visible>true</visible> <enabled>true</enabled> @@ -334,7 +326,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ВставитьКонтактноеЛицоExtendedTooltip</name> + <name>ВставитьКонтактноеЛицоРасширеннаяПодсказка</name> <id>37</id> <visible>true</visible> <enabled>true</enabled> @@ -368,7 +360,7 @@ <value>Группа КПТекст</value> </toolTip> <extendedTooltip> - <name>ГруппаКПТекстExtendedTooltip</name> + <name>ГруппаКПТекстРасширеннаяПодсказка</name> <id>36</id> <visible>true</visible> <enabled>true</enabled> @@ -396,14 +388,12 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Содержимое</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Содержимое</segments> </dataPath> <titleLocation>None</titleLocation> <extendedTooltip> - <name>СодержимоеExtendedTooltip</name> + <name>СодержимоеРасширеннаяПодсказка</name> <id>38</id> <visible>true</visible> <enabled>true</enabled> @@ -454,7 +444,7 @@ <value>Группа редактор</value> </toolTip> <extendedTooltip> - <name>ГруппаРедакторExtendedTooltip</name> + <name>ГруппаРедакторРасширеннаяПодсказка</name> <id>35</id> <visible>true</visible> <enabled>true</enabled> @@ -490,7 +480,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ОтправитьИЗакрытьExtendedTooltip</name> + <name>ОтправитьИЗакрытьРасширеннаяПодсказка</name> <id>26</id> <visible>true</visible> <enabled>true</enabled> @@ -520,7 +510,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ОтправитьExtendedTooltip</name> + <name>ОтправитьРасширеннаяПодсказка</name> <id>27</id> <visible>true</visible> <enabled>true</enabled> @@ -577,7 +567,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ЗаписатьExtendedTooltip</name> + <name>ЗаписатьРасширеннаяПодсказка</name> <id>28</id> <visible>true</visible> <enabled>true</enabled> @@ -606,7 +596,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>СправкаExtendedTooltip</name> + <name>СправкаРасширеннаяПодсказка</name> <id>29</id> <visible>true</visible> <enabled>true</enabled> @@ -680,7 +670,7 @@ <showCloseButton>true</showCloseButton> <attributes> <name>Объект</name> - <id>1</id> + <id>15</id> <valueType> <types>CatalogObject.ИсходящиеПисьма</types> </valueType> @@ -699,7 +689,7 @@ <key>ru</key> <value>Содержимое</value> - 2 + 17 FormattedDocument diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index 36232397f..f1e345d61 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 22 true true @@ -67,14 +67,12 @@ true - - - Список.Description - + + Список.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 9 true true @@ -89,7 +87,7 @@ - Наименование_КонтекстноеМеню + НаименованиеКонтекстноеМеню 5 true true @@ -120,13 +118,11 @@ true - - - Список.Code - + + Список.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 10 true true @@ -141,7 +137,7 @@ - Код_КонтекстноеМеню + КодКонтекстноеМеню 7 true true @@ -162,7 +158,7 @@ None - Список_КоманднаяПанель + СписокКоманднаяПанель 3 true true @@ -290,7 +286,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 8 true true @@ -305,7 +301,7 @@ - Список_КонтекстноеМеню + СписокКонтекстноеМеню 2 true true @@ -354,7 +350,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 9c2aeb5c1..9e0611cc1 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 58 true true @@ -63,14 +63,12 @@ true - - - Список.Description - + + Список.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 33 true true @@ -112,13 +110,11 @@ true - - - Список.Code - + + Список.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 34 true true @@ -158,13 +154,11 @@ true true - - - Список.Регион - + + Список.Регион - РегионExtendedTooltip + РегионРасширеннаяПодсказка 35 true true @@ -204,13 +198,11 @@ true true - - - Список.Индекс - + + Список.Индекс - ИндексExtendedTooltip + ИндексРасширеннаяПодсказка 36 true true @@ -250,13 +242,11 @@ true true - - - Список.Страна - + + Список.Страна - СтранаExtendedTooltip + СтранаРасширеннаяПодсказка 37 true true @@ -296,13 +286,11 @@ true true - - - Список.Город - + + Список.Город - ГородExtendedTooltip + ГородРасширеннаяПодсказка 38 true true @@ -342,13 +330,11 @@ true true - - - Список.Улица - + + Список.Улица - УлицаExtendedTooltip + УлицаРасширеннаяПодсказка 39 true true @@ -388,13 +374,11 @@ true true - - - Список.Дом - + + Список.Дом - ДомExtendedTooltip + ДомРасширеннаяПодсказка 40 true true @@ -434,13 +418,11 @@ true true - - - Список.Телефон - + + Список.Телефон - ТелефонExtendedTooltip + ТелефонРасширеннаяПодсказка 41 true true @@ -480,13 +462,11 @@ true true - - - Список.ЭлектроннаяПочта - + + Список.ЭлектроннаяПочта - ЭлектроннаяПочтаExtendedTooltip + ЭлектроннаяПочтаРасширеннаяПодсказка 42 true true @@ -526,13 +506,11 @@ true true - - - Список.Факс - + + Список.Факс - ФаксExtendedTooltip + ФаксРасширеннаяПодсказка 43 true true @@ -572,13 +550,11 @@ true true - - - Список.ВебСайт - + + Список.ВебСайт - ВебСайтExtendedTooltip + ВебСайтРасширеннаяПодсказка 44 true true @@ -620,13 +596,11 @@ true - - - Список.ВидЦен - + + Список.ВидЦен - ВидЦенExtendedTooltip + ВидЦенРасширеннаяПодсказка 45 true true @@ -666,13 +640,11 @@ true true - - - Список.ДополнительнаяИнформация - + + Список.ДополнительнаяИнформация - ДополнительнаяИнформацияExtendedTooltip + ДополнительнаяИнформацияРасширеннаяПодсказка 46 true true @@ -835,7 +807,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 32 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 4787f8e87..cef01aad4 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,20 +8,18 @@ 39 Наименование - 3 + 118 true true true - - - Объект.Description - + + Объект.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 44 true true @@ -61,19 +59,17 @@ Родитель - 4 + 110 true true true - - - Объект.Parent - + + Объект.Parent - РодительExtendedTooltip + РодительРасширеннаяПодсказка 45 true true @@ -122,13 +118,11 @@ true - - - Объект.ВидЦен - + + Объект.ВидЦен - ВидЦенExtendedTooltip + ВидЦенРасширеннаяПодсказка 46 true true @@ -180,7 +174,7 @@ false - НовыйРасчетныйСчетExtendedTooltip + НовыйРасчетныйСчетРасширеннаяПодсказка 65 true true @@ -252,7 +246,7 @@ true - ОсновноеЛеваяExtendedTooltip + ОсновноеЛеваяРасширеннаяПодсказка 43 true true @@ -280,19 +274,17 @@ 38 Код - 2 + 108 true true true - - - Объект.Code - + + Объект.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 48 true true @@ -336,7 +328,7 @@ true - ОсновноеПраваяExtendedTooltip + ОсновноеПраваяРасширеннаяПодсказка 47 true true @@ -368,7 +360,7 @@ Основные - ГруппаОсновныеExtendedTooltip + ГруппаОсновныеРасширеннаяПодсказка 42 true true @@ -404,19 +396,17 @@ 17 Регион - 5 + 111 true true true - - - Объект.Регион - + + Объект.Регион - РегионExtendedTooltip + РегионРасширеннаяПодсказка 51 true true @@ -456,19 +446,17 @@ Страна - 6 + 112 true true true - - - Объект.Страна - + + Объект.Страна - СтранаExtendedTooltip + СтранаРасширеннаяПодсказка 52 true true @@ -508,19 +496,17 @@ Город - 8 + 114 true true true - - - Объект.Город - + + Объект.Город - ГородExtendedTooltip + ГородРасширеннаяПодсказка 53 true true @@ -566,13 +552,11 @@ true - - - Объект.Улица - + + Объект.Улица - УлицаExtendedTooltip + УлицаРасширеннаяПодсказка 54 true true @@ -612,7 +596,7 @@ Дом - 9 + 115 <key>ru</key> <value>Дом (стр.)</value> @@ -622,13 +606,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Объект.Дом</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Объект.Дом</segments> </dataPath> <extendedTooltip> - <name>ДомExtendedTooltip</name> + <name>ДомРасширеннаяПодсказка</name> <id>55</id> <visible>true</visible> <enabled>true</enabled> @@ -668,19 +650,17 @@ </items> <items xsi:type="form:FormField"> <name>Индекс</name> - <id>7</id> + <id>113</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Объект.Индекс</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Объект.Индекс</segments> </dataPath> <extendedTooltip> - <name>ИндексExtendedTooltip</name> + <name>ИндексРасширеннаяПодсказка</name> <id>56</id> <visible>true</visible> <enabled>true</enabled> @@ -728,7 +708,7 @@ <value>Адрес</value> - АдресExtendedTooltip + АдресРасширеннаяПодсказка 50 true true @@ -770,13 +750,11 @@ true - - - Объект.КонтактноеЛицо - + + Объект.КонтактноеЛицо - КонтактноеЛицоExtendedTooltip + КонтактноеЛицоРасширеннаяПодсказка 62 true true @@ -816,19 +794,17 @@ ЭлектроннаяПочта - 11 + 117 true true true - - - Объект.ЭлектроннаяПочта - + + Объект.ЭлектроннаяПочта - ЭлектроннаяПочтаExtendedTooltip + ЭлектроннаяПочтаРасширеннаяПодсказка 58 true true @@ -874,13 +850,11 @@ true - - - Объект.ВебСайт - + + Объект.ВебСайт - ВебСайтExtendedTooltip + ВебСайтРасширеннаяПодсказка 60 true true @@ -926,19 +900,17 @@ 106 Телефон - 10 + 116 true true true - - - Объект.Телефон - + + Объект.Телефон - ТелефонExtendedTooltip + ТелефонРасширеннаяПодсказка 59 true true @@ -1081,13 +1053,11 @@ true - - - Объект.Факс - + + Объект.Факс - ФаксExtendedTooltip + ФаксРасширеннаяПодсказка 61 true true @@ -1172,7 +1142,7 @@ Контакты - КонтактыExtendedTooltip + КонтактыРасширеннаяПодсказка 57 true true @@ -1209,7 +1179,7 @@ Адреса и контакты - АдресаИКонтактыExtendedTooltip + АдресаИКонтактыРасширеннаяПодсказка 49 true true @@ -1246,10 +1216,8 @@ true - - - Объект.Широта - + + Объект.Широта ШиротаРасширеннаяПодсказка @@ -1299,10 +1267,8 @@ true - - - Объект.Долгота - + + Объект.Долгота ДолготаРасширеннаяПодсказка @@ -1396,14 +1362,12 @@ true - - - Объект.ДополнительнаяИнформация - + + Объект.ДополнительнаяИнформация None - ДополнительнаяИнформацияExtendedTooltip + ДополнительнаяИнформацияРасширеннаяПодсказка 64 true true @@ -1454,7 +1418,7 @@ Дополнительная информация - ПрочееExtendedTooltip + ПрочееРасширеннаяПодсказка 63 true true @@ -1849,7 +1813,7 @@ true Объект - 1 + 76 CatalogObject.Контрагенты @@ -1868,7 +1832,7 @@ ru Таблица сертификатов криптографии - 2 + 109 ValueTable @@ -1884,7 +1848,7 @@ ru Представление сертификата криптографии - 1 + 77 String diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 48e57cf83..77f565725 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,13 +8,11 @@ true - - - Объект.Code - + + Объект.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 12 true true @@ -29,7 +27,7 @@ - Код_КонтекстноеМеню + КодКонтекстноеМеню 7 true true @@ -60,14 +58,12 @@ true - - - Объект.Description - + + Объект.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 13 true true @@ -82,7 +78,7 @@ - Наименование_КонтекстноеМеню + НаименованиеКонтекстноеМеню 8 true true @@ -113,13 +109,11 @@ true - - - Объект.БитДанных - + + Объект.БитДанных - БитДанныхExtendedTooltip + БитДанныхРасширеннаяПодсказка 14 true true @@ -134,7 +128,7 @@ - БитДанных_КонтекстноеМеню + БитДанныхКонтекстноеМеню 9 true true @@ -165,13 +159,11 @@ true - - - Объект.Скорость - + + Объект.Скорость - СкоростьExtendedTooltip + СкоростьРасширеннаяПодсказка 15 true true @@ -186,7 +178,7 @@ - Скорость_КонтекстноеМеню + СкоростьКонтекстноеМеню 10 true true @@ -217,13 +209,11 @@ true - - - Объект.Порт - + + Объект.Порт - ПортExtendedTooltip + ПортРасширеннаяПодсказка 16 true true @@ -238,7 +228,7 @@ - Порт_КонтекстноеМеню + ПортКонтекстноеМеню 11 true true @@ -262,7 +252,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 5d883f005..b03a838b6 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,19 +2,17 @@ Код - 1 + 10 true true true - - - Объект.Code - + + Объект.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 7 true true @@ -29,7 +27,7 @@ - Код_КонтекстноеМеню + КодКонтекстноеМеню 2 true true @@ -59,13 +57,11 @@ true - - - Объект.Description - + + Объект.Description - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 8 true true @@ -80,7 +76,7 @@ - Наименование_КонтекстноеМеню + НаименованиеКонтекстноеМеню 4 true true @@ -110,13 +106,11 @@ true - - - Объект.ВалютныйУчет - + + Объект.ВалютныйУчет - ВалютныйУчетExtendedTooltip + ВалютныйУчетРасширеннаяПодсказка 9 true true @@ -131,7 +125,7 @@ - ВалютныйУчет_КонтекстноеМеню + ВалютныйУчетКонтекстноеМеню 6 true true @@ -148,7 +142,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 144ad7ff8..98e649578 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,16 +2,14 @@ Код - 1 + 7 true true true - - - Объект.Code - + + Объект.Code КодРасширеннаяПодсказка @@ -60,10 +58,8 @@ true - - - Объект.Description - + + Объект.Description НаименованиеРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index e90654dc6..40da31286 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 31 true true @@ -63,14 +63,12 @@ true - - - Список.Description - + + Список.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 15 true true @@ -112,13 +110,11 @@ true - - - Список.Code - + + Список.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 16 true true @@ -160,13 +156,11 @@ true - - - Список.Owner - + + Список.Owner - ВладелецExtendedTooltip + ВладелецРасширеннаяПодсказка 17 true true @@ -208,13 +202,11 @@ true - - - Список.Банк - + + Список.Банк - БанкExtendedTooltip + БанкРасширеннаяПодсказка 18 true true @@ -260,13 +252,11 @@ true - - - Список.Номер - + + Список.Номер - НомерExtendedTooltip + НомерРасширеннаяПодсказка 19 true true @@ -433,7 +423,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 14 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index 9c8226ca5..c8af6b40c 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 25 true true @@ -63,14 +63,12 @@ true - - - Список.Description - + + Список.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 11 true true @@ -112,13 +110,11 @@ true - - - Список.Code - + + Список.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 12 true true @@ -160,13 +156,11 @@ true - - - Список.Owner - + + Список.Owner - ВладелецExtendedTooltip + ВладелецРасширеннаяПодсказка 13 true true @@ -329,7 +323,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 10 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index 33b4b7d96..7699bc044 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -44,7 +44,7 @@ Список - 1 + 22 true true @@ -68,14 +68,12 @@ true - - - Список.Description - + + Список.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 9 true true @@ -90,7 +88,7 @@ - Наименование_КонтекстноеМеню + НаименованиеКонтекстноеМеню 5 true true @@ -121,13 +119,11 @@ true - - - Список.Code - + + Список.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 10 true true @@ -142,7 +138,7 @@ - Код_КонтекстноеМеню + КодКонтекстноеМеню 7 true true @@ -163,7 +159,7 @@ None - Список_КоманднаяПанель + СписокКоманднаяПанель 3 true true @@ -291,7 +287,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 8 true true @@ -306,7 +302,7 @@ - Список_КонтекстноеМеню + СписокКонтекстноеМеню 2 true true @@ -355,7 +351,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 60cce9e2e..6f175064a 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 31 true true @@ -63,14 +63,12 @@ true - - - Список.Description - + + Список.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 15 true true @@ -112,13 +110,11 @@ true - - - Список.Code - + + Список.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 16 true true @@ -160,13 +156,11 @@ true - - - Список.Артикул - + + Список.Артикул - АртикулExtendedTooltip + АртикулРасширеннаяПодсказка 17 true true @@ -208,13 +202,11 @@ true - - - Список.Поставщик - + + Список.Поставщик - ПоставщикExtendedTooltip + ПоставщикРасширеннаяПодсказка 18 true true @@ -256,13 +248,11 @@ true - - - Список.Вид - + + Список.Вид - ВидExtendedTooltip + ВидРасширеннаяПодсказка 19 true true @@ -425,7 +415,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 14 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" index d8e0d33c6..a2c36e157 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" @@ -62,13 +62,11 @@ true - - - СправочникСписок.Description - + + СправочникСписок.Description - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 20 true true @@ -111,13 +109,11 @@ true - - - СправочникСписок.Code - + + СправочникСписок.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 21 true true @@ -160,13 +156,11 @@ true - - - СправочникСписок.Артикул - + + СправочникСписок.Артикул - АртикулExtendedTooltip + АртикулРасширеннаяПодсказка 22 true true @@ -209,13 +203,11 @@ true - - - СправочникСписок.Количество - + + СправочникСписок.Количество - КоличествоExtendedTooltip + КоличествоРасширеннаяПодсказка 23 true true @@ -256,13 +248,11 @@ true true - - - СправочникСписок.Ref - + + СправочникСписок.Ref - ВсеПоляExtendedTooltip + ВсеПоляРасширеннаяПодсказка 24 true true @@ -426,7 +416,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 19 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 8cc160b64..f6e5e53c7 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,19 +2,17 @@ Родитель - 4 + 74 true true true - - - Объект.Parent - + + Объект.Parent - РодительExtendedTooltip + РодительРасширеннаяПодсказка 27 true true @@ -57,19 +55,17 @@ Код - 2 + 65 true true true - - - Объект.Code - + + Объект.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 28 true true @@ -112,20 +108,18 @@ Наименование - 3 + 72 true true true - - - Объект.Description - + + Объект.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 29 true true @@ -174,10 +168,8 @@ true - - - Объект.Вид - + + Объект.Вид Left @@ -185,7 +177,7 @@ ВидПриИзменении - ВидExtendedTooltip + ВидРасширеннаяПодсказка 30 true true @@ -230,19 +222,17 @@ Артикул - 5 + 68 true true true - - - Объект.Артикул - + + Объект.Артикул - АртикулExtendedTooltip + АртикулРасширеннаяПодсказка 31 true true @@ -285,19 +275,17 @@ Поставщик - 6 + 76 true true true - - - Объект.Поставщик - + + Объект.Поставщик - ПоставщикExtendedTooltip + ПоставщикРасширеннаяПодсказка 32 true true @@ -346,13 +334,11 @@ true - - - Объект.Штрихкод - + + Объект.Штрихкод - ШтрихКодExtendedTooltip + ШтрихКодРасширеннаяПодсказка 33 true true @@ -410,17 +396,15 @@ true - - - Объект.ФайлКартинки - + + Объект.ФайлКартинки OnChange ФайлКартинкиПриИзменении - ФайлКартинкиExtendedTooltip + ФайлКартинкиРасширеннаяПодсказка 36 true true @@ -483,7 +467,7 @@ true - ОбновитьКартинкуExtendedTooltip + ОбновитьКартинкуРасширеннаяПодсказка 38 true true @@ -548,14 +532,12 @@ true - - - АдресКартинки - + + АдресКартинки None - КартинкаExtendedTooltip + КартинкаРасширеннаяПодсказка 37 true true @@ -605,7 +587,7 @@ Изображение - ГруппаКартинкиExtendedTooltip + ГруппаКартинкиРасширеннаяПодсказка 35 true true @@ -641,7 +623,7 @@ false - ДобавитьХарактеристикуExtendedTooltip + ДобавитьХарактеристикуРасширеннаяПодсказка 41 true true @@ -671,7 +653,7 @@ false - УдалитьХарактеристикуExtendedTooltip + УдалитьХарактеристикуРасширеннаяПодсказка 42 true true @@ -705,7 +687,7 @@ Команды характеристик - КомандыХарактеристикExtendedTooltip + КомандыХарактеристикРасширеннаяПодсказка 40 true true @@ -738,7 +720,7 @@ Группа характеристики - ГруппаХарактеристикиExtendedTooltip + ГруппаХарактеристикиРасширеннаяПодсказка 39 true true @@ -809,10 +791,8 @@ true - - - Объект.Описание - + + Объект.Описание None @@ -966,10 +946,8 @@ true - - - РедактируемоеОписание - + + РедактируемоеОписание None @@ -1125,7 +1103,7 @@ Страницы - СтраницыExtendedTooltip + СтраницыРасширеннаяПодсказка 34 true true @@ -1171,7 +1149,7 @@ true Объект - 1 + 70 CatalogObject.Товары @@ -1190,7 +1168,7 @@ ru Адрес картинки - 2 + 66 String @@ -1208,7 +1186,7 @@ ru Описание характеристик - 3 + 73 ValueTable @@ -1224,7 +1202,7 @@ ru Вид характеристики - 1 + 71 ChartOfCharacteristicTypesRef.ВидыХарактеристик @@ -1241,7 +1219,7 @@ ru Имя реквизита - 2 + 67 String @@ -1260,7 +1238,7 @@ ru Редактируемое описание - 4 + 75 FormattedDocument @@ -1278,7 +1256,7 @@ ru Картинки описания - 5 + 69 ValueList diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270\320\250\321\202\321\200\320\270\321\205\320\272\320\276\320\264\320\260/Template.mxlx" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270\320\250\321\202\321\200\320\270\321\205\320\272\320\276\320\264\320\260/Template.mxlx" index ccdd9826c..67e619ba1 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270\320\250\321\202\321\200\320\270\321\205\320\272\320\276\320\264\320\260/Template.mxlx" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270\320\250\321\202\321\200\320\270\321\205\320\272\320\276\320\264\320\260/Template.mxlx" @@ -1,4 +1,4 @@ - + ru @@ -52,6 +52,13 @@ + + 0 + 1 + + true + + 2 @@ -175,7 +182,7 @@ 222 false Stretch - 0 + 1 1 true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\321\200\320\260\320\271\321\201\320\233\320\270\321\201\321\202\320\260/Template.mxlx" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\321\200\320\260\320\271\321\201\320\233\320\270\321\201\321\202\320\260/Template.mxlx" index a14bf49dd..d688e7cc4 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\321\200\320\260\320\271\321\201\320\233\320\270\321\201\321\202\320\260/Template.mxlx" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\321\200\320\260\320\271\321\201\320\233\320\270\321\201\321\202\320\260/Template.mxlx" @@ -1,4 +1,4 @@ - + ru diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 1b35936e9..6a2632816 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -2,7 +2,7 @@ Список - 1 + 4 true true @@ -27,13 +27,11 @@ true - - - Список.НазваниеВарианта - + + Список.НазваниеВарианта - НазваниеВариантаExtendedTooltip + НазваниеВариантаРасширеннаяПодсказка 17 true true @@ -48,7 +46,7 @@ - НазваниеВарианта_КонтекстноеМеню + НазваниеВариантаКонтекстноеМеню 15 true true @@ -69,7 +67,7 @@ None - Список_КоманднаяПанель + СписокКоманднаяПанель 3 true true @@ -197,7 +195,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 16 true true @@ -212,7 +210,7 @@ - Список_КонтекстноеМеню + СписокКонтекстноеМеню 2 true true @@ -258,7 +256,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" index b42a44029..159d9b01c 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" @@ -9,7 +9,7 @@ true - ОсуществлениеВыбораExtendedTooltip + ОсуществлениеВыбораРасширеннаяПодсказка 14 true true @@ -32,7 +32,7 @@ ТаблицаДляВыбора - 1 + 11 true true @@ -44,20 +44,18 @@ None ТаблицаДляВыбораВыбран - 4 + 37 true true true - - - ТаблицаДляВыбора.Выбран - + + ТаблицаДляВыбора.Выбран None - ТаблицаДляВыбораВыбранExtendedTooltip + ТаблицаДляВыбораВыбранРасширеннаяПодсказка 16 true true @@ -96,13 +94,11 @@ true - - - ТаблицаДляВыбора.СертификатПредставление - + + ТаблицаДляВыбора.СертификатПредставление - ТаблицаДляВыбораСертификатПредставлениеExtendedTooltip + ТаблицаДляВыбораСертификатПредставлениеРасширеннаяПодсказка 17 true true @@ -149,13 +145,11 @@ true - - - ТаблицаДляВыбора.ТипХранилища - + + ТаблицаДляВыбора.ТипХранилища - ТаблицаДляВыбораТипХранилищаExtendedTooltip + ТаблицаДляВыбораТипХранилищаРасширеннаяПодсказка 18 true true @@ -196,7 +190,7 @@ ТаблицаДляВыбораКоманднаяПанель - 3 + 35 true true @@ -326,7 +320,7 @@ - ТаблицаДляВыбораExtendedTooltip + ТаблицаДляВыбораРасширеннаяПодсказка 15 true true @@ -342,7 +336,7 @@ ТаблицаДляВыбораКонтекстноеМеню - 2 + 39 true true @@ -420,7 +414,7 @@ true - ОтменаExtendedTooltip + ОтменаРасширеннаяПодсказка 21 true true @@ -454,7 +448,7 @@ Кнопки формы - КнопкиФормыExtendedTooltip + КнопкиФормыРасширеннаяПодсказка 19 true true @@ -534,7 +528,7 @@ ru Выбранные сертификаты - 3 + 36 true @@ -549,7 +543,7 @@ ru Таблица для выбора - 4 + 38 ValueTable @@ -561,7 +555,7 @@ Выбран - 1 + 20 Boolean @@ -578,7 +572,7 @@ ru Сертификат - 2 + 40 String diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index 663b87a91..bcb486c3e 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -2,7 +2,7 @@ СписокКомпоновщикНастроекПользовательскиеНастройки - 1 + 22 true true @@ -59,10 +59,8 @@ true - - - Список.Description - + + Список.Description true @@ -108,10 +106,8 @@ true - - - Список.Code - + + Список.Code КодРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" index 1a569288b..55db92288 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" @@ -2,19 +2,17 @@ Владелец - 1 + 36 true true true - - - Владелец - + + Владелец - ВладелецExtendedTooltip + ВладелецРасширеннаяПодсказка 17 true true @@ -30,7 +28,7 @@ ВладелецКонтекстноеМеню - 2 + 38 true true @@ -54,7 +52,7 @@ СписокФайлов - 3 + 40 true true @@ -73,13 +71,11 @@ true - - - СписокФайлов.Value - + + СписокФайлов.Value - СписокФайловЗначениеExtendedTooltip + СписокФайловЗначениеРасширеннаяПодсказка 26 true true @@ -126,7 +122,7 @@ false - ДобавитьФайлыExtendedTooltip + ДобавитьФайлыРасширеннаяПодсказка 22 true true @@ -156,7 +152,7 @@ false - ДобавитьКаталогExtendedTooltip + ДобавитьКаталогРасширеннаяПодсказка 23 true true @@ -186,7 +182,7 @@ false - УдалитьExtendedTooltip + УдалитьРасширеннаяПодсказка 24 true true @@ -335,7 +331,7 @@ - СписокФайловExtendedTooltip + СписокФайловРасширеннаяПодсказка 25 true true @@ -362,7 +358,7 @@ false - ДобавитьФайлы1ExtendedTooltip + ДобавитьФайлы1РасширеннаяПодсказка 18 true true @@ -392,7 +388,7 @@ false - ДобавитьКаталог1ExtendedTooltip + ДобавитьКаталог1РасширеннаяПодсказка 19 true true @@ -422,7 +418,7 @@ false - КонтекстноеМенюСписокФайловУдалитьExtendedTooltip + КонтекстноеМенюСписокФайловУдалитьРасширеннаяПодсказка 20 true true @@ -452,7 +448,7 @@ false - Загрузить1ExtendedTooltip + Загрузить1РасширеннаяПодсказка 21 true true @@ -515,7 +511,7 @@ false - ЗагрузитьExtendedTooltip + ЗагрузитьРасширеннаяПодсказка 16 true true @@ -559,7 +555,7 @@ ru Владелец - 1 + 37 CatalogRef.Контрагенты CatalogRef.Товары @@ -578,7 +574,7 @@ ru Список файлов - 2 + 39 ValueList @@ -598,7 +594,7 @@ ru Список загруженных файлов - 3 + 41 ValueList diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" index ee3258607..8808d747a 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" @@ -6,19 +6,17 @@ Пароль - 1 + 3 true true true - - - Пароль - + + Пароль - ПарольExtendedTooltip + ПарольРасширеннаяПодсказка 7 true true @@ -100,7 +98,7 @@ true - ОтменаExtendedTooltip + ОтменаРасширеннаяПодсказка 6 true true @@ -145,7 +143,7 @@ ru Пароль доступа к закрытому ключу - 1 + 5 String diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index f8d422c06..5cc001f02 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 42 true true @@ -67,14 +67,12 @@ true - - - Список.Description - + + Список.Description true - СписокНаименованиеExtendedTooltip + СписокНаименованиеРасширеннаяПодсказка 27 true true @@ -120,13 +118,11 @@ true - - - Список.Code - + + Список.Code - СписокКодExtendedTooltip + СписокКодРасширеннаяПодсказка 28 true true @@ -168,13 +164,11 @@ true - - - Список.Подписан - + + Список.Подписан - СписокПодписанExtendedTooltip + СписокПодписанРасширеннаяПодсказка 29 true true @@ -213,13 +207,11 @@ true - - - Список.Зашифрован - + + Список.Зашифрован - СписокЗашифрованExtendedTooltip + СписокЗашифрованРасширеннаяПодсказка 30 true true @@ -380,7 +372,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 26 true true @@ -396,7 +388,7 @@ СписокКонтекстноеМеню - 2 + 44 true true @@ -452,7 +444,7 @@ false - СоздатьExtendedTooltip + СоздатьРасширеннаяПодсказка 19 true true @@ -485,7 +477,7 @@ false - ЗагрузитьФайлыExtendedTooltip + ЗагрузитьФайлыРасширеннаяПодсказка 21 true true @@ -515,7 +507,7 @@ false - ОткрытьФайлExtendedTooltip + ОткрытьФайлРасширеннаяПодсказка 22 true true @@ -549,7 +541,7 @@ Расширенные - РасширенныеExtendedTooltip + РасширенныеРасширеннаяПодсказка 20 true true @@ -582,7 +574,7 @@ Основные - ОсновныеExtendedTooltip + ОсновныеРасширеннаяПодсказка 23 true true @@ -610,7 +602,7 @@ false - СкопироватьExtendedTooltip + СкопироватьРасширеннаяПодсказка 24 true true @@ -641,7 +633,7 @@ false - СправкаExtendedTooltip + СправкаРасширеннаяПодсказка 25 true true @@ -678,7 +670,7 @@ true Список - 1 + 43 DynamicList diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index ef408be49..983bb7b13 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,19 +2,17 @@ Владелец - 4 + 66 true true true - - - Объект.Owner - + + Объект.Owner - ВладелецExtendedTooltip + ВладелецРасширеннаяПодсказка 30 true true @@ -30,7 +28,7 @@ ВладелецКонтекстноеМеню - 10 + 60 true true @@ -54,19 +52,17 @@ Код - 2 + 62 true true true - - - Объект.Code - + + Объект.Code - КодExtendedTooltip + КодРасширеннаяПодсказка 31 true true @@ -82,7 +78,7 @@ КодКонтекстноеМеню - 5 + 65 true true @@ -106,20 +102,18 @@ Наименование - 3 + 67 true true true - - - Объект.Description - + + Объект.Description true - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 32 true true @@ -135,7 +129,7 @@ НаименованиеКонтекстноеМеню - 9 + 61 true true @@ -159,19 +153,17 @@ ИмяФайла - 8 + 68 true true true - - - Объект.ИмяФайла - + + Объект.ИмяФайла - ИмяФайлаExtendedTooltip + ИмяФайлаРасширеннаяПодсказка 33 true true @@ -187,7 +179,7 @@ ИмяФайлаКонтекстноеМеню - 11 + 59 true true @@ -221,14 +213,12 @@ true - - - Объект.Подписан - + + Объект.Подписан Right - ПодписанExtendedTooltip + ПодписанРасширеннаяПодсказка 35 true true @@ -267,14 +257,12 @@ true - - - Объект.Зашифрован - + + Объект.Зашифрован Right - ЗашифрованExtendedTooltip + ЗашифрованРасширеннаяПодсказка 36 true true @@ -321,7 +309,7 @@ true true - ГруппаФлажковExtendedTooltip + ГруппаФлажковРасширеннаяПодсказка 34 true true @@ -345,7 +333,7 @@ ВыбратьФайлСДискаИЗаписать - 6 + 64 High true true @@ -354,7 +342,7 @@ false - ВыбратьФайлСДискаИЗаписатьExtendedTooltip + ВыбратьФайлСДискаИЗаписатьРасширеннаяПодсказка 37 true true @@ -721,7 +709,7 @@ ПрочитатьФайлИСохранитьНаДиск - 7 + 63 High true true @@ -730,7 +718,7 @@ false - ПрочитатьФайлИСохранитьНаДискExtendedTooltip + ПрочитатьФайлИСохранитьНаДискРасширеннаяПодсказка 38 true true @@ -767,17 +755,17 @@ -1 Криптография - 12 + 40 Подписать - 13 + 39 true true true - ПодписатьExtendedTooltip + ПодписатьРасширеннаяПодсказка 25 true true @@ -806,7 +794,7 @@ true - ПроверитьПодписьExtendedTooltip + ПроверитьПодписьРасширеннаяПодсказка 26 true true @@ -835,7 +823,7 @@ true - ПоместитьЗашифрованныйНаСерверExtendedTooltip + ПоместитьЗашифрованныйНаСерверРасширеннаяПодсказка 27 true true @@ -864,7 +852,7 @@ true - ЗашифроватьExtendedTooltip + ЗашифроватьРасширеннаяПодсказка 28 true true @@ -893,7 +881,7 @@ true - ПолучитьСРасшифровкойExtendedTooltip + ПолучитьСРасшифровкойРасширеннаяПодсказка 29 true true @@ -927,7 +915,7 @@ Криптография - КриптографияExtendedTooltip + КриптографияРасширеннаяПодсказка 24 true true @@ -973,7 +961,7 @@ true Объект - 1 + 17 CatalogObject.ХранимыеФайлы diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" index 1f7d4e9f0..9a5ee867f 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" @@ -8,10 +8,8 @@ true - - - Текст - + + Текст None @@ -54,7 +52,7 @@ -1 Позвонить - 1 + 6 true true @@ -62,7 +60,7 @@ ПозвонитьРасширеннаяПодсказка - 2 + 8 true true @@ -108,7 +106,7 @@ ru Текст - 1 + 7 String diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" index 55139fb06..188496240 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" @@ -12,10 +12,8 @@ true - - - Объект.ИспользоватьPushУведомления - + + Объект.ИспользоватьPushУведомления OnChange @@ -102,10 +100,8 @@ true - - - Объект.ИспользоватьGCM - + + Объект.ИспользоватьGCM ИспользоватьGCMРасширеннаяПодсказка @@ -151,10 +147,8 @@ true - - - Объект.НомерПриложенияGoogleCloud - + + Объект.НомерПриложенияGoogleCloud НомерПриложенияРасширеннаяПодсказка @@ -207,10 +201,8 @@ true - - - Объект.КлючCервераОтправителяGCM - + + Объект.КлючCервераОтправителяGCM КлючОтправителяРасширеннаяПодсказка @@ -304,10 +296,8 @@ true - - - Объект.ИспользоватьAPNS - + + Объект.ИспользоватьAPNS ИспользоватьAPNSРасширеннаяПодсказка @@ -382,10 +372,8 @@ true - - - СертификатЗагружен - + + СертификатЗагружен СертификатЗагруженРасширеннаяПодсказка @@ -504,10 +492,8 @@ true - - - Объект.ИспользоватьWNS - + + Объект.ИспользоватьWNS ИспользоватьWNSРасширеннаяПодсказка @@ -553,10 +539,8 @@ true - - - Объект.ИдентификаторПриложенияWNS - + + Объект.ИдентификаторПриложенияWNS ИдентификаторПриложенияWNSРасширеннаяПодсказка @@ -609,10 +593,8 @@ true - - - Объект.КлючПриложенияWNS - + + Объект.КлючПриложенияWNS КлючПриложенияWNSРасширеннаяПодсказка @@ -739,10 +721,8 @@ true - - - Объект.ЛогинСервисаПередачиPushУведомлений - + + Объект.ЛогинСервисаПередачиPushУведомлений ЛогинСервисаРасширеннаяПодсказка @@ -938,7 +918,7 @@ ru Объект - 1 + 10 ConstantsSet @@ -983,7 +963,7 @@ ru Адрес сертификата - 2 + 11 String diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" index 90b0748a8..dca6ce4f7 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" @@ -9,16 +9,14 @@ 18 КоличествоДней - 1 + 5 true true true - - - КоличествоДней - + + КоличествоДней OnChange @@ -26,7 +24,7 @@ КоличествоДнейРасширеннаяПодсказка - 3 + 8 true true @@ -41,7 +39,7 @@ КоличествоДнейКонтекстноеМеню - 2 + 9 true true @@ -74,10 +72,8 @@ true - - - КоличествоДнейСтрока - + + КоличествоДнейСтрока None @@ -166,10 +162,8 @@ true - - - Объект.ПериодПроверкиНеотработанныхЗаказов - + + Объект.ПериодПроверкиНеотработанныхЗаказов OnChange @@ -225,10 +219,8 @@ true - - - ИнтервалПроверкиСтрока - + + ИнтервалПроверкиСтрока None diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" index ec9ff730b..c27276a4d 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" @@ -8,13 +8,11 @@ true - - - Объект.ИмяОтправителяПочтовогоСообщения - + + Объект.ИмяОтправителяПочтовогоСообщения - ИмяОтправителяExtendedTooltip + ИмяОтправителяРасширеннаяПодсказка 89 true true @@ -70,13 +68,11 @@ true - - - Объект.АдресSMTPСервера - + + Объект.АдресSMTPСервера - АдресSMTPСервераExtendedTooltip + АдресSMTPСервераРасширеннаяПодсказка 91 true true @@ -122,10 +118,8 @@ true - - - Объект.ПортSMTP - + + Объект.ПортSMTP ru @@ -183,10 +177,8 @@ true - - - Объект.SSLSMTP - + + Объект.SSLSMTP SMTPSSLРасширеннаяПодсказка @@ -228,13 +220,11 @@ true - - - Объект.ПользовательSMTP - + + Объект.ПользовательSMTP - ПользовательSMTPExtendedTooltip + ПользовательSMTPРасширеннаяПодсказка 94 true true @@ -280,13 +270,11 @@ true - - - Объект.ПарольSMTP - + + Объект.ПарольSMTP - ПарольSMTPExtendedTooltip + ПарольSMTPРасширеннаяПодсказка 95 true true @@ -336,10 +324,8 @@ true - - - Объект.ТолькоЗащищеннаяАутентификацияSMTP - + + Объект.ТолькоЗащищеннаяАутентификацияSMTP ТолькоЗащищеннаяАутентификацияSMTPРасширеннаяПодсказка @@ -387,7 +373,7 @@ Группа настройка SMTPСервера - ГруппаНастройкаSMTPСервераExtendedTooltip + ГруппаНастройкаSMTPСервераРасширеннаяПодсказка 90 true true @@ -418,13 +404,11 @@ true - - - Объект.АдресPOP3Сервера - + + Объект.АдресPOP3Сервера - АдресPOP3СервераExtendedTooltip + АдресPOP3СервераРасширеннаяПодсказка 97 true true @@ -470,10 +454,8 @@ true - - - Объект.ПортPOP3 - + + Объект.ПортPOP3 ru @@ -531,10 +513,8 @@ true - - - Объект.SSLPOP3 - + + Объект.SSLPOP3 POP3SSLРасширеннаяПодсказка @@ -576,13 +556,11 @@ true - - - Объект.ПользовательPOP3 - + + Объект.ПользовательPOP3 - ПользовательPOP3ExtendedTooltip + ПользовательPOP3РасширеннаяПодсказка 99 true true @@ -628,13 +606,11 @@ true - - - Объект.ПарольPOP3 - + + Объект.ПарольPOP3 - ПарольPOP3ExtendedTooltip + ПарольPOP3РасширеннаяПодсказка 100 true true @@ -684,10 +660,8 @@ true - - - Объект.ТолькоЗащищеннаяАутентификацияPOP3 - + + Объект.ТолькоЗащищеннаяАутентификацияPOP3 ТолькоЗащищеннаяАутентификацияPOP3РасширеннаяПодсказка @@ -735,7 +709,7 @@ Группа настройка POP3 сервера - ГруппаНастройкаPOP3СервераExtendedTooltip + ГруппаНастройкаPOP3СервераРасширеннаяПодсказка 96 true true @@ -766,13 +740,11 @@ true - - - Объект.АдресIMAPСервера - + + Объект.АдресIMAPСервера - АдресIMAPСервераExtendedTooltip + АдресIMAPСервераРасширеннаяПодсказка 102 true true @@ -818,10 +790,8 @@ true - - - Объект.ПортIMAP - + + Объект.ПортIMAP ru @@ -879,13 +849,11 @@ true - - - Объект.SSLIMAP - + + Объект.SSLIMAP - IMAPSSLExtendedTooltip + IMAPSSLРасширеннаяПодсказка 106 true true @@ -924,13 +892,11 @@ true - - - Объект.ПользовательIMAP - + + Объект.ПользовательIMAP - ПользовательIMAPExtendedTooltip + ПользовательIMAPРасширеннаяПодсказка 104 true true @@ -976,13 +942,11 @@ true - - - Объект.ПарольIMAP - + + Объект.ПарольIMAP - ПарольIMAPExtendedTooltip + ПарольIMAPРасширеннаяПодсказка 105 true true @@ -1032,10 +996,8 @@ true - - - Объект.ТолькоЗащищеннаяАутентификацияIMAP - + + Объект.ТолькоЗащищеннаяАутентификацияIMAP ТолькоЗащищеннаяАутентификацияIMAPРасширеннаяПодсказка @@ -1083,7 +1045,7 @@ Группа настройка IMAPСервера - ГруппаНастройкаIMAPСервераExtendedTooltip + ГруппаНастройкаIMAPСервераРасширеннаяПодсказка 101 true true @@ -1137,13 +1099,11 @@ true - - - Объект.ИспользоватьIMAP - + + Объект.ИспользоватьIMAP - ИспользоватьIMAPExtendedTooltip + ИспользоватьIMAPРасширеннаяПодсказка 107 true true @@ -1182,13 +1142,11 @@ true - - - Объект.ТаймаутИнтернетПочты - + + Объект.ТаймаутИнтернетПочты - ТаймаутExtendedTooltip + ТаймаутРасширеннаяПодсказка 108 true true diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" index a964a5597..f974c0d0b 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" @@ -22,10 +22,8 @@ true - - - НаборКонстант.ВыборПровайдераГеопозиционирования - + + НаборКонстант.ВыборПровайдераГеопозиционирования Top @@ -83,10 +81,8 @@ true - - - НаборКонстант.ИмяПровайдера - + + НаборКонстант.ИмяПровайдера Top @@ -148,10 +144,8 @@ true - - - НаборКонстант.ТолькоБесплатные - + + НаборКонстант.ТолькоБесплатные OnChange @@ -197,10 +191,8 @@ true - - - НаборКонстант.ИспользоватьСотовуюСеть - + + НаборКонстант.ИспользоватьСотовуюСеть OnChange @@ -246,10 +238,8 @@ true - - - НаборКонстант.ИспользоватьСетьПередачиДанных - + + НаборКонстант.ИспользоватьСетьПередачиДанных OnChange @@ -295,10 +285,8 @@ true - - - НаборКонстант.ИспользоватьСпутники - + + НаборКонстант.ИспользоватьСпутники OnChange @@ -427,10 +415,8 @@ true - - - НаборКонстант.ВоспроизводитьТекстУведомления - + + НаборКонстант.ВоспроизводитьТекстУведомления OnChange diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" index df41dc375..b951bc52c 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" @@ -8,10 +8,8 @@ true - - - Константы.РаботаСТорговымОборудованием - + + Константы.РаботаСТорговымОборудованием ru @@ -20,7 +18,7 @@ Button - РаботаСТорговымОборудованиемExtendedTooltip + РаботаСТорговымОборудованиемРасширеннаяПодсказка 7 true true @@ -59,10 +57,8 @@ true - - - Константы.УчетПоСкладам - + + Константы.УчетПоСкладам ru @@ -71,7 +67,7 @@ Button - УчетПоСкладамExtendedTooltip + УчетПоСкладамРасширеннаяПодсказка 8 true true diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" index 1ac23d302..573850c88 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" @@ -15,10 +15,8 @@ true - - - ВидЦенИСклад - + + ВидЦенИСклад None @@ -72,7 +70,7 @@ Шапка - ШапкаExtendedTooltip + ШапкаРасширеннаяПодсказка 56 true true @@ -101,7 +99,7 @@ ГруппаСпискаТоваров - 3 + 20 <key>ru</key> @@ -149,7 +147,7 @@ <id>50</id> <items xsi:type="form:Table"> <name>ДеревоТоваров</name> - <id>4</id> + <id>22</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -168,13 +166,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>ДеревоТоваров.Description</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>ДеревоТоваров.Description</segments> </dataPath> <extendedTooltip> - <name>ДеревоТоваровНаименованиеExtendedTooltip</name> + <name>ДеревоТоваровНаименованиеРасширеннаяПодсказка</name> <id>68</id> <visible>true</visible> <enabled>true</enabled> @@ -343,7 +339,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>ДеревоТоваровExtendedTooltip</name> + <name>ДеревоТоваровРасширеннаяПодсказка</name> <id>67</id> <visible>true</visible> <enabled>true</enabled> @@ -411,7 +407,7 @@ </items> <items xsi:type="form:Table"> <name>СписокТоваров</name> - <id>2</id> + <id>16</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -431,13 +427,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>СписокТоваров.Наименование</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>СписокТоваров.Наименование</segments> </dataPath> <extendedTooltip> - <name>НаименованиеExtendedTooltip</name> + <name>НаименованиеРасширеннаяПодсказка</name> <id>70</id> <visible>true</visible> <enabled>true</enabled> @@ -481,13 +475,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>СписокТоваров.Код</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>СписокТоваров.Код</segments> </dataPath> <extendedTooltip> - <name>КодExtendedTooltip</name> + <name>КодРасширеннаяПодсказка</name> <id>71</id> <visible>true</visible> <enabled>true</enabled> @@ -531,13 +523,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>СписокТоваров.Цена</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>СписокТоваров.Цена</segments> </dataPath> <extendedTooltip> - <name>ЦенаExtendedTooltip</name> + <name>ЦенаРасширеннаяПодсказка</name> <id>72</id> <visible>true</visible> <enabled>true</enabled> @@ -582,13 +572,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>СписокТоваров.Количество</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>СписокТоваров.Количество</segments> </dataPath> <extendedTooltip> - <name>КоличествоExtendedTooltip</name> + <name>КоличествоРасширеннаяПодсказка</name> <id>73</id> <visible>true</visible> <enabled>true</enabled> @@ -763,7 +751,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>СписокТоваровExtendedTooltip</name> + <name>СписокТоваровРасширеннаяПодсказка</name> <id>69</id> <visible>true</visible> <enabled>true</enabled> @@ -835,7 +823,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>Группа1ExtendedTooltip</name> + <name>Группа1РасширеннаяПодсказка</name> <id>66</id> <visible>true</visible> <enabled>true</enabled> @@ -863,7 +851,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ГруппаСпискаТоваровExtendedTooltip</name> + <name>ГруппаСпискаТоваровРасширеннаяПодсказка</name> <id>64</id> <visible>true</visible> <enabled>true</enabled> @@ -895,7 +883,7 @@ <id>19</id> <items xsi:type="form:Table"> <name>Товары</name> - <id>5</id> + <id>25</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -914,13 +902,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Товары.Товар</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Товары.Товар</segments> </dataPath> <extendedTooltip> - <name>ТоварыТоварExtendedTooltip</name> + <name>ТоварыТоварРасширеннаяПодсказка</name> <id>77</id> <visible>true</visible> <enabled>true</enabled> @@ -969,13 +955,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Товары.Количество</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Товары.Количество</segments> </dataPath> <extendedTooltip> - <name>ТоварыКоличествоExtendedTooltip</name> + <name>ТоварыКоличествоРасширеннаяПодсказка</name> <id>78</id> <visible>true</visible> <enabled>true</enabled> @@ -1154,7 +1138,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>ТоварыExtendedTooltip</name> + <name>ТоварыРасширеннаяПодсказка</name> <id>76</id> <visible>true</visible> <enabled>true</enabled> @@ -1181,7 +1165,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>УдалитьExtendedTooltip</name> + <name>УдалитьРасширеннаяПодсказка</name> <id>75</id> <visible>true</visible> <enabled>true</enabled> @@ -1256,7 +1240,7 @@ <value>Отобранные товары</value> - ГруппаОтобранныеТоварыExtendedTooltip + ГруппаОтобранныеТоварыРасширеннаяПодсказка 74 true true @@ -1287,14 +1271,14 @@ ДействияФормыОсновные - 1 + 11 true true true - ДействияФормыОсновныеExtendedTooltip + ДействияФормыОсновныеРасширеннаяПодсказка 79 true true @@ -1327,7 +1311,7 @@ false - ОКExtendedTooltip + ОКРасширеннаяПодсказка 53 true true @@ -1367,7 +1351,7 @@ false - ОтменаExtendedTooltip + ОтменаРасширеннаяПодсказка 54 true true @@ -1406,7 +1390,7 @@ false - СправкаExtendedTooltip + СправкаРасширеннаяПодсказка 55 true true @@ -1460,7 +1444,7 @@ ru Товары - 1 + 14 ValueTable @@ -1476,7 +1460,7 @@ ru Товар - 1 + 15 CatalogRef.Товары @@ -1493,7 +1477,7 @@ ru Количество - 2 + 17 Number @@ -1514,7 +1498,7 @@ ru Цена - 3 + 21 Number diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" index d95cc8181..a6f2d3339 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" @@ -12,7 +12,7 @@ 50 СписокТоваров - 2 + 4 true true @@ -32,13 +32,11 @@ true - - - СписокТоваров.Наименование - + + СписокТоваров.Наименование - НаименованиеExtendedTooltip + НаименованиеРасширеннаяПодсказка 70 true true @@ -82,13 +80,11 @@ true - - - СписокТоваров.Код - + + СписокТоваров.Код - КодExtendedTooltip + КодРасширеннаяПодсказка 71 true true @@ -258,7 +254,7 @@ - СписокТоваровExtendedTooltip + СписокТоваровРасширеннаяПодсказка 69 true true @@ -327,7 +323,7 @@ true - Группа1ExtendedTooltip + Группа1РасширеннаяПодсказка 66 true true @@ -359,7 +355,7 @@ Список товаров - ГруппаСпискаТоваровExtendedTooltip + ГруппаСпискаТоваровРасширеннаяПодсказка 64 true true @@ -414,13 +410,11 @@ true - - - Товары.Товар - + + Товары.Товар - ТоварыТоварExtendedTooltip + ТоварыТоварРасширеннаяПодсказка 77 true true @@ -469,17 +463,15 @@ true - - - Товары.Количество - + + Товары.Количество OnChange ТоварыКоличествоПриИзменении - ТоварыКоличествоExtendedTooltip + ТоварыКоличествоРасширеннаяПодсказка 78 true true @@ -651,7 +643,7 @@ - ТоварыExtendedTooltip + ТоварыРасширеннаяПодсказка 76 true true @@ -712,7 +704,7 @@ true - ГруппаОтобранныеТоварыExtendedTooltip + ГруппаОтобранныеТоварыРасширеннаяПодсказка 74 true true @@ -752,7 +744,7 @@ false - ОКExtendedTooltip + ОКРасширеннаяПодсказка 53 true true @@ -783,7 +775,7 @@ false - ОтменаExtendedTooltip + ОтменаРасширеннаяПодсказка 54 true true @@ -862,7 +854,7 @@ ru Товары - 1 + 12 ValueTable @@ -878,7 +870,7 @@ ru Товар - 1 + 13 CatalogRef.Товары @@ -895,7 +887,7 @@ ru Количество - 2 + 7 Number @@ -916,7 +908,7 @@ ru Список товаров - 2 + 11 DynamicList diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index dd17f01b9..2d2e568cf 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -10,7 +10,7 @@ false - УправлениеНастройкамиФормExtendedTooltip + УправлениеНастройкамиФормРасширеннаяПодсказка 7 true true @@ -50,7 +50,7 @@ false - УправлениеПолнотекстовымПоискомExtendedTooltip + УправлениеПолнотекстовымПоискомРасширеннаяПодсказка 8 true true @@ -90,7 +90,7 @@ false - УдалениеПомеченныхОбъектовExtendedTooltip + УдалениеПомеченныхОбъектовРасширеннаяПодсказка 9 true true @@ -130,7 +130,7 @@ false - УправлениеАгрегатамиПродажExtendedTooltip + УправлениеАгрегатамиПродажРасширеннаяПодсказка 10 true true @@ -153,7 +153,7 @@ ОчиститьИсторию - 1 + 2 true true @@ -161,7 +161,7 @@ false - ОчиститьИсториюExtendedTooltip + ОчиститьИсториюРасширеннаяПодсказка 11 true true @@ -193,7 +193,7 @@ None - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true @@ -213,7 +213,7 @@ true Объект - 1 + 12 DataProcessorObject.АдминистративныйСервис diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" index 6417b6ad2..83d8a82c5 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" @@ -6,7 +6,7 @@ ОсновнаяКоманднаяПанель - 1 + 23 ПросмотрТекущегоСобытияВОтдельномОкне 38 @@ -17,7 +17,7 @@ false - ПросмотрТекущегоСобытияВОтдельномОкнеExtendedTooltip + ПросмотрТекущегоСобытияВОтдельномОкнеРасширеннаяПодсказка 106 true true @@ -56,7 +56,7 @@ false - ОткрытьДанныеДляПросмотраExtendedTooltip + ОткрытьДанныеДляПросмотраРасширеннаяПодсказка 107 true true @@ -95,7 +95,7 @@ false - УстановитьИнтервалДатДляПросмотраExtendedTooltip + УстановитьИнтервалДатДляПросмотраРасширеннаяПодсказка 108 true true @@ -134,7 +134,7 @@ false - УстановитьОтборExtendedTooltip + УстановитьОтборРасширеннаяПодсказка 109 true true @@ -173,7 +173,7 @@ false - ОтключитьОтборExtendedTooltip + ОтключитьОтборРасширеннаяПодсказка 110 true true @@ -212,7 +212,7 @@ false - СписокАктивныхПользователейExtendedTooltip + СписокАктивныхПользователейРасширеннаяПодсказка 111 true true @@ -251,7 +251,7 @@ false - ОбновитьТекущийСписокExtendedTooltip + ОбновитьТекущийСписокРасширеннаяПодсказка 112 true true @@ -290,7 +290,7 @@ false - ВывестиСписокExtendedTooltip + ВывестиСписокРасширеннаяПодсказка 113 true true @@ -329,7 +329,7 @@ false - ИзменитьФорму1ExtendedTooltip + ИзменитьФорму1РасширеннаяПодсказка 114 true true @@ -357,7 +357,7 @@ true - ОсновнаяКоманднаяПанельExtendedTooltip + ОсновнаяКоманднаяПанельРасширеннаяПодсказка 105 true true @@ -391,10 +391,8 @@ true - - - КоличествоПоказываемыхСобытий - + + КоличествоПоказываемыхСобытий ru @@ -405,7 +403,7 @@ КоличествоПоказываемыхСобытийПриИзменении - КоличествоПоказываемыхСобытийExtendedTooltip + КоличествоПоказываемыхСобытийРасширеннаяПодсказка 116 true true @@ -420,7 +418,7 @@ - КоличествоПоказываемыхСобытий_КонтекстноеМеню + КоличествоПоказываемыхСобытийКонтекстноеМеню 102 true true @@ -501,13 +499,11 @@ true - - - ПредставлениеОтбора - + + ПредставлениеОтбора - ПредставлениеОтбораExtendedTooltip + ПредставлениеОтбораРасширеннаяПодсказка 117 true true @@ -522,7 +518,7 @@ - ПредставлениеОтбора_КонтекстноеМеню + ПредставлениеОтбораКонтекстноеМеню 36 true true @@ -557,7 +553,7 @@ Группа отбора - ГруппаОтбораExtendedTooltip + ГруппаОтбораРасширеннаяПодсказка 115 true true @@ -617,13 +613,11 @@ true - - - Журнал.Дата - + + Журнал.Дата - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 122 true true @@ -638,7 +632,7 @@ - Дата_КонтекстноеМеню + ДатаКонтекстноеМеню 52 true true @@ -678,13 +672,11 @@ true - - - Журнал.ИмяПользователя - + + Журнал.ИмяПользователя - ИмяПользователяExtendedTooltip + ИмяПользователяРасширеннаяПодсказка 124 true true @@ -699,7 +691,7 @@ - ИмяПользователя_КонтекстноеМеню + ИмяПользователяКонтекстноеМеню 55 true true @@ -736,13 +728,11 @@ true - - - Журнал.Компьютер - + + Журнал.Компьютер - КомпьютерExtendedTooltip + КомпьютерРасширеннаяПодсказка 125 true true @@ -757,7 +747,7 @@ - Компьютер_КонтекстноеМеню + КомпьютерКонтекстноеМеню 57 true true @@ -797,13 +787,11 @@ true - - - Журнал.ПредставлениеПриложения - + + Журнал.ПредставлениеПриложения - ПредставлениеПриложенияExtendedTooltip + ПредставлениеПриложенияРасширеннаяПодсказка 127 true true @@ -818,7 +806,7 @@ - ПредставлениеПриложения_КонтекстноеМеню + ПредставлениеПриложенияКонтекстноеМеню 60 true true @@ -851,13 +839,11 @@ true - - - Журнал.Сеанс - + + Журнал.Сеанс - СеансExtendedTooltip + СеансРасширеннаяПодсказка 128 true true @@ -872,7 +858,7 @@ - Сеанс_КонтекстноеМеню + СеансКонтекстноеМеню 81 true true @@ -903,7 +889,7 @@ true - ГруппаПриложениеExtendedTooltip + ГруппаПриложениеРасширеннаяПодсказка 126 true true @@ -928,7 +914,7 @@ true - ГруппаПользовательКомпьютерПриложениеExtendedTooltip + ГруппаПользовательКомпьютерПриложениеРасширеннаяПодсказка 123 true true @@ -963,13 +949,11 @@ true - - - Журнал.ПредставлениеСобытия - + + Журнал.ПредставлениеСобытия - ПредставлениеСобытияExtendedTooltip + ПредставлениеСобытияРасширеннаяПодсказка 130 true true @@ -984,7 +968,7 @@ - ПредставлениеСобытия_КонтекстноеМеню + ПредставлениеСобытияКонтекстноеМеню 65 true true @@ -1021,13 +1005,11 @@ true - - - Журнал.Комментарий - + + Журнал.Комментарий - КомментарийExtendedTooltip + КомментарийРасширеннаяПодсказка 131 true true @@ -1042,7 +1024,7 @@ - Комментарий_КонтекстноеМеню + КомментарийКонтекстноеМеню 67 true true @@ -1073,7 +1055,7 @@ true - ГруппаСобытиеExtendedTooltip + ГруппаСобытиеРасширеннаяПодсказка 129 true true @@ -1108,13 +1090,11 @@ true - - - Журнал.СтатусТранзакции - + + Журнал.СтатусТранзакции - СтатусТранзакцииExtendedTooltip + СтатусТранзакцииРасширеннаяПодсказка 133 true true @@ -1129,7 +1109,7 @@ - СтатусТранзакции_КонтекстноеМеню + СтатусТранзакцииКонтекстноеМеню 70 true true @@ -1162,13 +1142,11 @@ true - - - Журнал.Транзакция - + + Журнал.Транзакция - ТранзакцияExtendedTooltip + ТранзакцияРасширеннаяПодсказка 134 true true @@ -1183,7 +1161,7 @@ - Транзакция_КонтекстноеМеню + ТранзакцияКонтекстноеМеню 72 true true @@ -1214,7 +1192,7 @@ true - ГруппаТранзакцияExtendedTooltip + ГруппаТранзакцияРасширеннаяПодсказка 132 true true @@ -1245,13 +1223,11 @@ true - - - Журнал.ПредставлениеМетаданных - + + Журнал.ПредставлениеМетаданных - МетаданныеExtendedTooltip + МетаданныеРасширеннаяПодсказка 136 true true @@ -1266,7 +1242,7 @@ - Метаданные_КонтекстноеМеню + МетаданныеКонтекстноеМеню 75 true true @@ -1299,13 +1275,11 @@ true - - - Журнал.Данные - + + Журнал.Данные - ДанныеExtendedTooltip + ДанныеРасширеннаяПодсказка 137 true true @@ -1320,7 +1294,7 @@ - Данные_КонтекстноеМеню + ДанныеКонтекстноеМеню 77 true true @@ -1353,13 +1327,11 @@ true - - - Журнал.ПредставлениеДанных - + + Журнал.ПредставлениеДанных - ПредставлениеДанныхExtendedTooltip + ПредставлениеДанныхРасширеннаяПодсказка 138 true true @@ -1374,7 +1346,7 @@ - ПредставлениеДанных_КонтекстноеМеню + ПредставлениеДанныхКонтекстноеМеню 79 true true @@ -1399,7 +1371,7 @@ true - ГруппаДанныеExtendedTooltip + ГруппаДанныеРасширеннаяПодсказка 135 true true @@ -1433,13 +1405,11 @@ true - - - Журнал.РабочийСервер - + + Журнал.РабочийСервер - РабочийСерверExtendedTooltip + РабочийСерверРасширеннаяПодсказка 141 true true @@ -1454,7 +1424,7 @@ - РабочийСервер_КонтекстноеМеню + РабочийСерверКонтекстноеМеню 86 true true @@ -1487,13 +1457,11 @@ true - - - Журнал.Соединение - + + Журнал.Соединение - СоединениеExtendedTooltip + СоединениеРасширеннаяПодсказка 142 true true @@ -1508,7 +1476,7 @@ - Соединение_КонтекстноеМеню + СоединениеКонтекстноеМеню 88 true true @@ -1547,7 +1515,7 @@ Группа сервер - ГруппаСерверExtendedTooltip + ГруппаСерверРасширеннаяПодсказка 140 true true @@ -1577,13 +1545,11 @@ true - - - Журнал.ОсновнойIPПорт - + + Журнал.ОсновнойIPПорт - ОсновнойIPПортExtendedTooltip + ОсновнойIPПортРасширеннаяПодсказка 144 true true @@ -1598,7 +1564,7 @@ - ОсновнойIPПорт_КонтекстноеМеню + ОсновнойIPПортКонтекстноеМеню 90 true true @@ -1631,13 +1597,11 @@ true - - - Журнал.ВспомогательныйIPПорт - + + Журнал.ВспомогательныйIPПорт - ВспомогательныйIPПортExtendedTooltip + ВспомогательныйIPПортРасширеннаяПодсказка 145 true true @@ -1652,7 +1616,7 @@ - ВспомогательныйIPПорт_КонтекстноеМеню + ВспомогательныйIPПортКонтекстноеМеню 92 true true @@ -1691,7 +1655,7 @@ Группа порт - ГруппаПортExtendedTooltip + ГруппаПортРасширеннаяПодсказка 143 true true @@ -1722,7 +1686,7 @@ Группа соединение - ГруппаСоединениеExtendedTooltip + ГруппаСоединениеРасширеннаяПодсказка 139 true true @@ -1744,7 +1708,7 @@ None - Журнал_КоманднаяПанель + ЖурналКоманднаяПанель 50 true true @@ -1875,7 +1839,7 @@ - ЖурналExtendedTooltip + ЖурналРасширеннаяПодсказка 121 true true @@ -1890,7 +1854,7 @@ - Журнал_КонтекстноеМеню + ЖурналКонтекстноеМеню 49 ПросмотрТекущегоСобытияВОтдельномОкне2 @@ -1902,7 +1866,7 @@ false - ПросмотрТекущегоСобытияВОтдельномОкне2ExtendedTooltip + ПросмотрТекущегоСобытияВОтдельномОкне2РасширеннаяПодсказка 118 true true @@ -1941,7 +1905,7 @@ false - ОткрытьДанныеДляПросмотра1ExtendedTooltip + ОткрытьДанныеДляПросмотра1РасширеннаяПодсказка 119 true true @@ -1980,7 +1944,7 @@ false - ИзменитьФормуExtendedTooltip + ИзменитьФормуРасширеннаяПодсказка 120 true true @@ -2051,7 +2015,7 @@ None - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true @@ -2085,7 +2049,7 @@ true Объект - 1 + 24 DataProcessorObject.ЖурналРегистрации @@ -2103,7 +2067,7 @@ ru Представление отбора - 3 + 30 String @@ -2121,7 +2085,7 @@ ru Журнал событий - 4 + 32 ValueTable @@ -2137,7 +2101,7 @@ ru Вспомогательный IP Порт - 1 + 25 Number @@ -2157,7 +2121,7 @@ ru Данные - 2 + 28 AnyRef @@ -2174,7 +2138,7 @@ ru Дата - 3 + 31 Date @@ -2192,7 +2156,7 @@ ru Имя пользователя - 4 + 33 String @@ -2210,7 +2174,7 @@ ru Имя приложения - 5 + 34 String @@ -2228,7 +2192,7 @@ ru Комментарий - 6 + 37 String @@ -2246,7 +2210,7 @@ ru Компьютер - 7 + 26 String @@ -2264,7 +2228,7 @@ ru Метаданные - 8 + 39 String @@ -2558,7 +2522,7 @@ ru Количество показываемых событий - 7 + 27 Number @@ -2580,7 +2544,7 @@ ru Интервал дат - 2 + 29 StandardPeriod diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" index af7c04521..72749c718 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" @@ -6,22 +6,20 @@ ГруппаДаты - 4 + 30 ДатаНачала - 7 + 31 true true true - - - ДатаНачала - + + ДатаНачала - ДатаНачалаExtendedTooltip + ДатаНачалаРасширеннаяПодсказка 194 true true @@ -37,7 +35,7 @@ ДатаНачалаКонтекстноеМеню - 8 + 26 true true @@ -65,19 +63,17 @@ ДатаОкончания - 5 + 32 true true true - - - ДатаОкончания - + + ДатаОкончания - ДатаОкончанияExtendedTooltip + ДатаОкончанияРасширеннаяПодсказка 195 true true @@ -93,7 +89,7 @@ ДатаОкончанияКонтекстноеМеню - 6 + 29 true true @@ -126,7 +122,7 @@ true - ГруппаДатыExtendedTooltip + ГруппаДатыРасширеннаяПодсказка 193 true true @@ -162,13 +158,11 @@ true - - - Пользователи - + + Пользователи - ПользователиExtendedTooltip + ПользователиРасширеннаяПодсказка 198 true true @@ -220,13 +214,11 @@ true - - - События - + + События - СобытияExtendedTooltip + СобытияРасширеннаяПодсказка 199 true true @@ -278,13 +270,11 @@ true - - - Компьютеры - + + Компьютеры - КомпьютерыExtendedTooltip + КомпьютерыРасширеннаяПодсказка 200 true true @@ -336,13 +326,11 @@ true - - - Приложения - + + Приложения - ПриложенияExtendedTooltip + ПриложенияРасширеннаяПодсказка 201 true true @@ -394,13 +382,11 @@ true - - - Комментарий - + + Комментарий - КомментарийExtendedTooltip + КомментарийРасширеннаяПодсказка 202 true true @@ -455,7 +441,7 @@ Группа основные строковые - ГруппаОсновныеСтроковыеExtendedTooltip + ГруппаОсновныеСтроковыеРасширеннаяПодсказка 197 true true @@ -501,7 +487,7 @@ Надпись важность - НадписьВажностьExtendedTooltip + НадписьВажностьРасширеннаяПодсказка 205 true true @@ -549,7 +535,7 @@ false - ВажностьУстановитьВсеExtendedTooltip + ВажностьУстановитьВсеРасширеннаяПодсказка 207 true true @@ -588,7 +574,7 @@ false - ВажностьСнятьВсеExtendedTooltip + ВажностьСнятьВсеРасширеннаяПодсказка 208 true true @@ -664,7 +650,7 @@ 8 - ВажностьПанельExtendedTooltip + ВажностьПанельРасширеннаяПодсказка 206 true true @@ -697,7 +683,7 @@ Группа важность шапка - ГруппаВажностьШапкаExtendedTooltip + ГруппаВажностьШапкаРасширеннаяПодсказка 204 true true @@ -740,13 +726,11 @@ true - - - Важность.Check - + + Важность.Check - ПометкаВажностиExtendedTooltip + ПометкаВажностиРасширеннаяПодсказка 210 true true @@ -786,13 +770,11 @@ true - - - Важность.Value - + + Важность.Value - ЗначениеВажностиExtendedTooltip + ЗначениеВажностиРасширеннаяПодсказка 211 true true @@ -963,7 +945,7 @@ - ВажностьExtendedTooltip + ВажностьРасширеннаяПодсказка 209 true true @@ -1016,7 +998,7 @@ Важность: - ГруппаВажностьExtendedTooltip + ГруппаВажностьРасширеннаяПодсказка 203 true true @@ -1054,7 +1036,7 @@ Основные свойства - ГруппаОсновныеСвойстваExtendedTooltip + ГруппаОсновныеСвойстваРасширеннаяПодсказка 196 true true @@ -1090,13 +1072,11 @@ true - - - Метаданные - + + Метаданные - МетаданныеExtendedTooltip + МетаданныеРасширеннаяПодсказка 213 true true @@ -1148,13 +1128,11 @@ true - - - Данные - + + Данные - ДанныеExtendedTooltip + ДанныеРасширеннаяПодсказка 214 true true @@ -1204,13 +1182,11 @@ true - - - ПредставлениеДанных - + + ПредставлениеДанных - ПредставлениеДанныхExtendedTooltip + ПредставлениеДанныхРасширеннаяПодсказка 215 true true @@ -1266,7 +1242,7 @@ Данные - ГруппаДанныеСвойстваExtendedTooltip + ГруппаДанныеСвойстваРасширеннаяПодсказка 212 true true @@ -1317,7 +1293,7 @@ Надпись статус транзакции - НадписьСтатусТранзакцииExtendedTooltip + НадписьСтатусТранзакцииРасширеннаяПодсказка 219 true true @@ -1365,7 +1341,7 @@ false - СтатусТранзакцииУстановитьВсеExtendedTooltip + СтатусТранзакцииУстановитьВсеРасширеннаяПодсказка 221 true true @@ -1404,7 +1380,7 @@ false - СтатусТранзакцииСнятьВсеExtendedTooltip + СтатусТранзакцииСнятьВсеРасширеннаяПодсказка 222 true true @@ -1479,7 +1455,7 @@ Статус транзакции панель - СтатусТранзакцииПанельExtendedTooltip + СтатусТранзакцииПанельРасширеннаяПодсказка 220 true true @@ -1512,7 +1488,7 @@ Группа статус транзакции шапка - ГруппаСтатусТранзакцииШапкаExtendedTooltip + ГруппаСтатусТранзакцииШапкаРасширеннаяПодсказка 218 true true @@ -1555,13 +1531,11 @@ true - - - СтатусТранзакции.Check - + + СтатусТранзакции.Check - ПометкаСтатусаExtendedTooltip + ПометкаСтатусаРасширеннаяПодсказка 224 true true @@ -1601,13 +1575,11 @@ true - - - СтатусТранзакции.Value - + + СтатусТранзакции.Value - ЗначениеСтатусаExtendedTooltip + ЗначениеСтатусаРасширеннаяПодсказка 225 true true @@ -1778,7 +1750,7 @@ - СтатусТранзакцииExtendedTooltip + СтатусТранзакцииРасширеннаяПодсказка 223 true true @@ -1829,14 +1801,12 @@ true - - - Транзакция - + + Транзакция Left - ТранзакцияExtendedTooltip + ТранзакцияРасширеннаяПодсказка 226 true true @@ -1884,7 +1854,7 @@ true - ГруппаТранзакцияExtendedTooltip + ГруппаТранзакцияРасширеннаяПодсказка 217 true true @@ -1918,14 +1888,12 @@ true - - - СтрСоединения - + + СтрСоединения Top - СоединенияExtendedTooltip + СоединенияРасширеннаяПодсказка 228 true true @@ -1978,14 +1946,12 @@ true - - - РабочиеСерверы - + + РабочиеСерверы Top - РабочиеСерверыExtendedTooltip + РабочиеСерверыРасширеннаяПодсказка 230 true true @@ -2037,13 +2003,11 @@ true - - - ОсновныеIPПорты - + + ОсновныеIPПорты - ОсновныеIPПортыExtendedTooltip + ОсновныеIPПортыРасширеннаяПодсказка 231 true true @@ -2095,13 +2059,11 @@ true - - - ВспомогательныеIPПорты - + + ВспомогательныеIPПорты - ВспомогательныеIPПортыExtendedTooltip + ВспомогательныеIPПортыРасширеннаяПодсказка 232 true true @@ -2151,7 +2113,7 @@ true - ГруппаСерверыExtendedTooltip + ГруппаСерверыРасширеннаяПодсказка 229 true true @@ -2181,7 +2143,7 @@ true - ГруппаСоединенияExtendedTooltip + ГруппаСоединенияРасширеннаяПодсказка 227 true true @@ -2219,7 +2181,7 @@ Прочие - ГруппаПрочиеСвойстваExtendedTooltip + ГруппаПрочиеСвойстваРасширеннаяПодсказка 216 true true @@ -2312,7 +2274,7 @@ true - ГруппаКнопокФормыExtendedTooltip + ГруппаКнопокФормыРасширеннаяПодсказка 233 true true @@ -2366,7 +2328,7 @@ true Объект - 1 + 20 DataProcessorObject.СписокАктивныхПользователей @@ -2384,7 +2346,7 @@ ru Дата начала - 2 + 27 Date @@ -2562,7 +2524,7 @@ ru Комментарий - 9 + 25 String @@ -2580,7 +2542,7 @@ ru Метаданные - 10 + 24 ValueList @@ -2647,7 +2609,7 @@ ru Статус транзакции - 13 + 23 ValueList @@ -2679,7 +2641,7 @@ ru Транзакция - 14 + 22 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" index 0db7fae89..ec525ae10 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" @@ -6,7 +6,7 @@ Список - 1 + 34 true true @@ -28,17 +28,15 @@ true - - - Список.Пометка - + + Список.Пометка OnChange ПометкаПриИзменении - ПометкаExtendedTooltip + ПометкаРасширеннаяПодсказка 18 true true @@ -77,13 +75,11 @@ true - - - Список.Представление - + + Список.Представление - ПредставлениеExtendedTooltip + ПредставлениеРасширеннаяПодсказка 19 true true @@ -123,7 +119,7 @@ true - ГруппаExtendedTooltip + ГруппаРасширеннаяПодсказка 17 true true @@ -145,7 +141,7 @@ СписокКоманднаяПанель - 3 + 40 КруппаКнопокОтметки 32 @@ -159,7 +155,7 @@ false - УстановитьВсеExtendedTooltip + УстановитьВсеРасширеннаяПодсказка 14 true true @@ -198,7 +194,7 @@ false - СнятьВсеExtendedTooltip + СнятьВсеРасширеннаяПодсказка 15 true true @@ -384,7 +380,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 16 true true @@ -400,7 +396,7 @@ СписокКонтекстноеМеню - 2 + 37 true true @@ -445,7 +441,7 @@ false - OKExtendedTooltip + OKРасширеннаяПодсказка 21 true true @@ -485,7 +481,7 @@ false - ОтменаExtendedTooltip + ОтменаРасширеннаяПодсказка 22 true true @@ -528,7 +524,7 @@ Кнопки формы - КнопкиФормыExtendedTooltip + КнопкиФормыРасширеннаяПодсказка 20 true true @@ -570,7 +566,7 @@ true Объект - 1 + 35 DataProcessorObject.ЖурналРегистрации @@ -588,7 +584,7 @@ ru Список - 2 + 38 ValueTree @@ -604,7 +600,7 @@ ru Пометка - 1 + 36 Boolean @@ -621,7 +617,7 @@ ru Значение - 2 + 39 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" index 4f6bd6657..d5b8f540f 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" @@ -6,25 +6,23 @@ ГруппаОсновные - 1 + 72 ГруппаДатаКомпьютер - 7 + 82 ДатаВремя - 9 + 87 true true true - - - ДатаВремя - + + ДатаВремя - ДатаВремяExtendedTooltip + ДатаВремяРасширеннаяПодсказка 46 true true @@ -39,8 +37,8 @@ - ДатаВремя_КонтекстноеМеню - 10 + ДатаВремяКонтекстноеМеню + 79 true true @@ -68,19 +66,17 @@ Компьютер - 11 + 78 true true true - - - Компьютер - + + Компьютер - КомпьютерExtendedTooltip + КомпьютерРасширеннаяПодсказка 47 true true @@ -95,8 +91,8 @@ - Компьютер_КонтекстноеМеню - 12 + КомпьютерКонтекстноеМеню + 77 true true @@ -135,7 +131,7 @@ Группа дата компьютер - ГруппаДатаКомпьютерExtendedTooltip + ГруппаДатаКомпьютерРасширеннаяПодсказка 45 true true @@ -160,22 +156,20 @@ ГруппаПользовательПриложение - 8 + 81 Пользователь - 15 + 74 true true true - - - Пользователь - + + Пользователь - ПользовательExtendedTooltip + ПользовательРасширеннаяПодсказка 49 true true @@ -190,8 +184,8 @@ - Пользователь_КонтекстноеМеню - 16 + ПользовательКонтекстноеМеню + 73 true true @@ -224,13 +218,11 @@ true - - - Приложение - + + Приложение - ПриложениеExtendedTooltip + ПриложениеРасширеннаяПодсказка 50 true true @@ -245,7 +237,7 @@ - Приложение_КонтекстноеМеню + ПриложениеКонтекстноеМеню 18 true true @@ -285,7 +277,7 @@ Группа пользователь приложение - ГруппаПользовательПриложениеExtendedTooltip + ГруппаПользовательПриложениеРасширеннаяПодсказка 48 true true @@ -322,7 +314,7 @@ Группа основные - ГруппаОсновныеExtendedTooltip + ГруппаОсновныеРасширеннаяПодсказка 44 true true @@ -346,22 +338,20 @@ ГруппаСобытие - 2 + 80 Событие - 13 + 76 true true true - - - Событие - + + Событие - СобытиеExtendedTooltip + СобытиеРасширеннаяПодсказка 52 true true @@ -376,8 +366,8 @@ - Событие_КонтекстноеМеню - 14 + СобытиеКонтекстноеМеню + 75 true true @@ -410,14 +400,12 @@ true - - - Комментарий - + + Комментарий Top - КомментарийExtendedTooltip + КомментарийРасширеннаяПодсказка 53 true true @@ -432,7 +420,7 @@ - Комментарий_КонтекстноеМеню + КомментарийКонтекстноеМеню 20 true true @@ -473,7 +461,7 @@ Группа событие - ГруппаСобытиеExtendedTooltip + ГруппаСобытиеРасширеннаяПодсказка 51 true true @@ -499,7 +487,7 @@ ГруппаДанные - 4 + 85 Метаданные 21 @@ -508,13 +496,11 @@ true - - - Метаданные - + + Метаданные - МетаданныеExtendedTooltip + МетаданныеРасширеннаяПодсказка 55 true true @@ -529,7 +515,7 @@ - Метаданные_КонтекстноеМеню + МетаданныеКонтекстноеМеню 22 true true @@ -563,13 +549,11 @@ true - - - Данные - + + Данные - ДанныеExtendedTooltip + ДанныеРасширеннаяПодсказка 56 true true @@ -584,7 +568,7 @@ - Данные_КонтекстноеМеню + ДанныеКонтекстноеМеню 24 true true @@ -618,14 +602,12 @@ true - - - ПредставлениеДанных - + + ПредставлениеДанных Top - ПредставлениеДанныхExtendedTooltip + ПредставлениеДанныхРасширеннаяПодсказка 57 true true @@ -640,7 +622,7 @@ - ПредставлениеДанных_КонтекстноеМеню + ПредставлениеДанныхКонтекстноеМеню 26 true true @@ -681,7 +663,7 @@ Группа данные - ГруппаДанныеExtendedTooltip + ГруппаДанныеРасширеннаяПодсказка 54 true true @@ -707,7 +689,7 @@ ГруппаТранзакция - 5 + 84 ИдентификаторТранзакции 27 @@ -716,13 +698,11 @@ true - - - ИдентификаторТранзакции - + + ИдентификаторТранзакции - ИдентификаторТранзакцииExtendedTooltip + ИдентификаторТранзакцииРасширеннаяПодсказка 59 true true @@ -737,7 +717,7 @@ - ИдентификаторТранзакции_КонтекстноеМеню + ИдентификаторТранзакцииКонтекстноеМеню 28 true true @@ -771,13 +751,11 @@ true - - - СтатусЗавершенияТранзакции - + + СтатусЗавершенияТранзакции - СтатусЗавершенияТранзакцииExtendedTooltip + СтатусЗавершенияТранзакцииРасширеннаяПодсказка 60 true true @@ -792,7 +770,7 @@ - СтатусЗавершенияТранзакции_КонтекстноеМеню + СтатусЗавершенияТранзакцииКонтекстноеМеню 30 true true @@ -832,7 +810,7 @@ Группа транзакция - ГруппаТранзакцияExtendedTooltip + ГруппаТранзакцияРасширеннаяПодсказка 58 true true @@ -858,7 +836,7 @@ ГруппаСоединение - 6 + 83 ГруппаСеанс 31 @@ -870,13 +848,11 @@ true - - - Сеанс - + + Сеанс - СеансExtendedTooltip + СеансРасширеннаяПодсказка 63 true true @@ -891,7 +867,7 @@ - Сеанс_КонтекстноеМеню + СеансКонтекстноеМеню 34 true true @@ -931,7 +907,7 @@ Группа сеанс - ГруппаСеансExtendedTooltip + ГруппаСеансРасширеннаяПодсказка 62 true true @@ -965,13 +941,11 @@ true - - - РабочийСервер - + + РабочийСервер - РабочийСерверExtendedTooltip + РабочийСерверРасширеннаяПодсказка 65 true true @@ -986,7 +960,7 @@ - РабочийСервер_КонтекстноеМеню + РабочийСерверКонтекстноеМеню 36 true true @@ -1023,13 +997,11 @@ true - - - ОсновнойIPПорт - + + ОсновнойIPПорт - ОсновнойIPПортExtendedTooltip + ОсновнойIPПортРасширеннаяПодсказка 67 true true @@ -1044,7 +1016,7 @@ - ОсновнойIPПорт_КонтекстноеМеню + ОсновнойIPПортКонтекстноеМеню 39 true true @@ -1079,13 +1051,11 @@ true - - - ВспомогательныйIPПорт - + + ВспомогательныйIPПорт - ВспомогательныйIPПортExtendedTooltip + ВспомогательныйIPПортРасширеннаяПодсказка 68 true true @@ -1100,7 +1070,7 @@ - ВспомогательныйIPПорт_КонтекстноеМеню + ВспомогательныйIPПортКонтекстноеМеню 41 true true @@ -1141,7 +1111,7 @@ Группа порт - ГруппаПортExtendedTooltip + ГруппаПортРасширеннаяПодсказка 66 true true @@ -1177,7 +1147,7 @@ Группа сервер - ГруппаСерверExtendedTooltip + ГруппаСерверРасширеннаяПодсказка 64 true true @@ -1214,7 +1184,7 @@ Группа соединение - ГруппаСоединениеExtendedTooltip + ГруппаСоединениеРасширеннаяПодсказка 61 true true @@ -1240,7 +1210,7 @@ ГруппаКнопкиФормы - 3 + 86 ГруппаКнопок 42 @@ -1254,7 +1224,7 @@ false - ЗакрытьExtendedTooltip + ЗакрытьРасширеннаяПодсказка 71 true true @@ -1298,7 +1268,7 @@ Группа кнопок - ГруппаКнопокExtendedTooltip + ГруппаКнопокРасширеннаяПодсказка 70 true true @@ -1331,7 +1301,7 @@ Группа кнопки формы - ГруппаКнопкиФормыExtendedTooltip + ГруппаКнопкиФормыРасширеннаяПодсказка 69 true true @@ -1357,7 +1327,7 @@ None - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 7c1fa4dde..301efe7f1 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -2,20 +2,18 @@ ПутьКРабочемуКаталогу - 1 + 9 true true true - - - ПутьКРабочемуКаталогу - + + ПутьКРабочемуКаталогу Top - ПутьКРабочемуКаталогуExtendedTooltip + ПутьКРабочемуКаталогуРасширеннаяПодсказка 7 true true @@ -31,7 +29,7 @@ ПутьКРабочемуКаталогуКонтекстноеМеню - 2 + 12 true true @@ -65,14 +63,12 @@ true - - - КраткийЗаголовок - + + КраткийЗаголовок Top - КраткийЗаголовокExtendedTooltip + КраткийЗаголовокРасширеннаяПодсказка 8 true true @@ -115,7 +111,7 @@ -1 Сохранить - 3 + 11 true true @@ -123,7 +119,7 @@ false - СохранитьExtendedTooltip + СохранитьРасширеннаяПодсказка 6 true true @@ -166,7 +162,7 @@ true Объект - 1 + 10 DataProcessorObject.НастройкиПользователя diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 093609fbe..2d30d3453 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -14,13 +14,11 @@ true - - - ДатаНачала - + + ДатаНачала - ДатаНачалаExtendedTooltip + ДатаНачалаРасширеннаяПодсказка 39 true true @@ -69,13 +67,11 @@ true - - - ДатаОкончания - + + ДатаОкончания - ДатаОкончанияExtendedTooltip + ДатаОкончанияРасширеннаяПодсказка 40 true true @@ -160,14 +156,12 @@ true - - - Объект.Проводить - + + Объект.Проводить Left - ПроводитьExtendedTooltip + ПроводитьРасширеннаяПодсказка 42 true true @@ -242,7 +236,7 @@ Шапка - ШапкаExtendedTooltip + ШапкаРасширеннаяПодсказка 37 true true @@ -270,7 +264,7 @@ 24 СписокДокументов - 3 + 6 <key>ru</key> <value>Все документы</value> @@ -293,13 +287,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Объект.СписокДокументов.Presentation</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Объект.СписокДокументов.Presentation</segments> </dataPath> <extendedTooltip> - <name>ПредставлениеExtendedTooltip</name> + <name>ПредставлениеРасширеннаяПодсказка</name> <id>49</id> <visible>true</visible> <enabled>true</enabled> @@ -341,7 +333,7 @@ </items> <autoCommandBar> <name>СписокДокументовКоманднаяПанель</name> - <id>5</id> + <id>11</id> <items xsi:type="form:Button"> <name>Добавить</name> <id>26</id> @@ -352,7 +344,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>ДобавитьExtendedTooltip</name> + <name>ДобавитьРасширеннаяПодсказка</name> <id>47</id> <visible>true</visible> <enabled>true</enabled> @@ -510,7 +502,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>СписокДокументовExtendedTooltip</name> + <name>СписокДокументовРасширеннаяПодсказка</name> <id>48</id> <visible>true</visible> <enabled>true</enabled> @@ -526,7 +518,7 @@ </extendedTooltip> <contextMenu> <name>СписокДокументовКонтекстноеМеню</name> - <id>4</id> + <id>21</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -580,13 +572,11 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>Объект.ВыбранныеДокументы.Presentation</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>Объект.ВыбранныеДокументы.Presentation</segments> </dataPath> <extendedTooltip> - <name>Представление1ExtendedTooltip</name> + <name>Представление1РасширеннаяПодсказка</name> <id>46</id> <visible>true</visible> <enabled>true</enabled> @@ -639,7 +629,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>ИсключитьExtendedTooltip</name> + <name>ИсключитьРасширеннаяПодсказка</name> <id>44</id> <visible>true</visible> <enabled>true</enabled> @@ -797,7 +787,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>ВыбранныеДокументыExtendedTooltip</name> + <name>ВыбранныеДокументыРасширеннаяПодсказка</name> <id>45</id> <visible>true</visible> <enabled>true</enabled> @@ -856,7 +846,7 @@ <value>Списки</value> </toolTip> <extendedTooltip> - <name>СпискиExtendedTooltip</name> + <name>СпискиРасширеннаяПодсказка</name> <id>43</id> <visible>true</visible> <enabled>true</enabled> @@ -892,7 +882,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>ПровестиExtendedTooltip</name> + <name>ПровестиРасширеннаяПодсказка</name> <id>34</id> <visible>true</visible> <enabled>true</enabled> @@ -932,7 +922,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>СохранитьПараметрыExtendedTooltip</name> + <name>СохранитьПараметрыРасширеннаяПодсказка</name> <id>35</id> <visible>true</visible> <enabled>true</enabled> @@ -963,7 +953,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>ВосстановитьПараметрыExtendedTooltip</name> + <name>ВосстановитьПараметрыРасширеннаяПодсказка</name> <id>36</id> <visible>true</visible> <enabled>true</enabled> @@ -1012,7 +1002,7 @@ <key>ru</key> <value>Объект</value> - 1 + 10 DataProcessorObject.ПроведениеДокументов @@ -1036,7 +1026,7 @@ ru Дата начала - 2 + 20 Date @@ -1059,7 +1049,7 @@ ru Дата окончания - 3 + 7 Date diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" index 24e82b96a..639c312f9 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" @@ -53,21 +53,19 @@ ПолеHTML - 1 + 9 true true true - - - ПолеHTML - + + ПолеHTML None - ПолеHTMLExtendedTooltip - 3 + ПолеHTMLРасширеннаяПодсказка + 11 true true @@ -82,7 +80,7 @@ ПолеHTMLКонтекстноеМеню - 2 + 7 true true @@ -140,7 +138,7 @@ true Объект - 1 + 10 DataProcessorObject.Путеводитель @@ -158,7 +156,7 @@ ru Поле HTML - 2 + 8 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" index e2d088705..8a6e2a92a 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" @@ -6,7 +6,7 @@ ОсновнаяКоманднаяПанель - 1 + 19 ЖурналРегистрации 16 @@ -265,7 +265,7 @@ СписокПользователей - 2 + 60 true true @@ -286,16 +286,14 @@ SortListDesc Пользователь - 4 + 68 true true true - - - СписокПользователей.ИмяПользователя - + + СписокПользователей.ИмяПользователя ПользовательРасширеннаяПодсказка @@ -314,7 +312,7 @@ ПользовательКонтекстноеМеню - 5 + 57 true true @@ -348,10 +346,8 @@ true - - - СписокПользователей.Приложение - + + СписокПользователей.Приложение ПриложениеРасширеннаяПодсказка @@ -404,10 +400,8 @@ true - - - СписокПользователей.НачалоРаботы - + + СписокПользователей.НачалоРаботы НачалоРаботыРасширеннаяПодсказка @@ -460,10 +454,8 @@ true - - - СписокПользователей.Компьютер - + + СписокПользователей.Компьютер КомпьютерРасширеннаяПодсказка @@ -516,10 +508,8 @@ true - - - СписокПользователей.Сеанс - + + СписокПользователей.Сеанс СеансРасширеннаяПодсказка @@ -710,7 +700,7 @@ СписокПользователейКонтекстноеМеню - 3 + 63 РаботаПользователя1 20 @@ -908,16 +898,14 @@ КоличествоАктивныхПользователей - 6 + 66 true true true - - - КоличествоАктивныхПользователей - + + КоличествоАктивныхПользователей КоличествоАктивныхПользователейРасширеннаяПодсказка @@ -936,7 +924,7 @@ КоличествоАктивныхПользователейКонтекстноеМеню - 7 + 70 true true @@ -989,7 +977,7 @@ true Объект - 1 + 22 DataProcessorObject.СписокАктивныхПользователей @@ -1007,7 +995,7 @@ ru Список пользователей - 2 + 61 ValueTable @@ -1023,7 +1011,7 @@ ru Номер рисунка пользователя - 1 + 56 Number @@ -1043,7 +1031,7 @@ ru Пользователь - 2 + 62 String @@ -1061,7 +1049,7 @@ ru Приложение - 3 + 64 String @@ -1079,7 +1067,7 @@ ru Начало работы - 4 + 69 Date @@ -1097,7 +1085,7 @@ ru Компьютер - 5 + 58 String @@ -1115,7 +1103,7 @@ ru Сеанс - 6 + 67 Number @@ -1155,7 +1143,7 @@ ru Количество - 3 + 65 Number @@ -1193,7 +1181,7 @@ ru Направление сортировки - 5 + 59 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" index afefe8201..35c1e7d0d 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -6,10 +6,10 @@ СтраницыФормы - 1 + 9 ВыборРежимаУдаления - 6 + 86 РежимУдаления 15 @@ -22,10 +22,8 @@ true - - - РежимУдаления - + + РежимУдаления None @@ -33,7 +31,7 @@ РежимУдаленияПриИзменении - РежимУдаленияExtendedTooltip + РежимУдаленияРасширеннаяПодсказка 48 true true @@ -48,7 +46,7 @@ - РежимУдаления_КонтекстноеМеню + РежимУдаленияКонтекстноеМеню 16 true true @@ -100,7 +98,7 @@ Выбор режима удаления - ВыборРежимаУдаленияExtendedTooltip + ВыборРежимаУдаленияРасширеннаяПодсказка 47 true true @@ -135,14 +133,12 @@ true - - - СтрокаРезультатов - + + СтрокаРезультатов Top - СтрокаРезультатовExtendedTooltip + СтрокаРезультатовРасширеннаяПодсказка 50 true true @@ -157,7 +153,7 @@ - СтрокаРезультатов_КонтекстноеМеню + СтрокаРезультатовКонтекстноеМеню 36 true true @@ -191,7 +187,7 @@ Результаты удаления - РезультатыУдаленияExtendedTooltip + РезультатыУдаленияРасширеннаяПодсказка 49 true true @@ -253,13 +249,11 @@ true - - - ДеревоНеудаленныхОбъектов.Представление - + + ДеревоНеудаленныхОбъектов.Представление - Представление1ExtendedTooltip + Представление1РасширеннаяПодсказка 53 true true @@ -274,7 +268,7 @@ - Представление1_КонтекстноеМеню + Представление1КонтекстноеМеню 44 true true @@ -302,7 +296,7 @@ None - ДеревоНеудаленныхОбъектов_КоманднаяПанель + ДеревоНеудаленныхОбъектовКоманднаяПанель 42 true true @@ -434,7 +428,7 @@ - ДеревоНеудаленныхОбъектовExtendedTooltip + ДеревоНеудаленныхОбъектовРасширеннаяПодсказка 52 true true @@ -449,7 +443,7 @@ - ДеревоНеудаленныхОбъектов_КонтекстноеМеню + ДеревоНеудаленныхОбъектовКонтекстноеМеню 41 true true @@ -503,7 +497,7 @@ true - ПричиныНеудаленияExtendedTooltip + ПричиныНеудаленияРасширеннаяПодсказка 51 true true @@ -554,17 +548,15 @@ true - - - СписокПомеченныхНаУдаление.Пометка - + + СписокПомеченныхНаУдаление.Пометка OnChange ПометкаПриИзменении - ПометкаExtendedTooltip + ПометкаРасширеннаяПодсказка 59 true true @@ -579,7 +571,7 @@ - Пометка_КонтекстноеМеню + ПометкаКонтекстноеМеню 31 true true @@ -601,13 +593,11 @@ true - - - СписокПомеченныхНаУдаление.Представление - + + СписокПомеченныхНаУдаление.Представление - ПредставлениеExtendedTooltip + ПредставлениеРасширеннаяПодсказка 60 true true @@ -622,7 +612,7 @@ - Представление_КонтекстноеМеню + ПредставлениеКонтекстноеМеню 33 true true @@ -660,7 +650,7 @@ Строка списка помеченных - СтрокаСпискаПомеченныхExtendedTooltip + СтрокаСпискаПомеченныхРасширеннаяПодсказка 58 true true @@ -681,7 +671,7 @@ - СписокПомеченныхНаУдаление_КоманднаяПанель + СписокПомеченныхНаУдалениеКоманднаяПанель 28 ГруппаКнопокПометки @@ -696,7 +686,7 @@ false - КомандаСписокПомеченныхУстановитьВсеExtendedTooltip + КомандаСписокПомеченныхУстановитьВсеРасширеннаяПодсказка 55 true true @@ -735,7 +725,7 @@ false - КомандаСписокПомеченныхСнятьВсеExtendedTooltip + КомандаСписокПомеченныхСнятьВсеРасширеннаяПодсказка 56 true true @@ -925,7 +915,7 @@ - СписокПомеченныхНаУдалениеExtendedTooltip + СписокПомеченныхНаУдалениеРасширеннаяПодсказка 57 true true @@ -940,7 +930,7 @@ - СписокПомеченныхНаУдаление_КонтекстноеМеню + СписокПомеченныхНаУдалениеКонтекстноеМеню 27 true true @@ -986,7 +976,7 @@ Помеченные на удаление - ПомеченныеНаУдалениеExtendedTooltip + ПомеченныеНаУдалениеРасширеннаяПодсказка 54 true true @@ -1021,7 +1011,7 @@ true - СтраницыФормыExtendedTooltip + СтраницыФормыРасширеннаяПодсказка 46 true true @@ -1042,7 +1032,7 @@ КомандыФормы - 2 + 13 КомандаУдалить 45 @@ -1053,7 +1043,7 @@ false - КомандаУдалитьExtendedTooltip + КомандаУдалитьРасширеннаяПодсказка 62 true true @@ -1085,7 +1075,7 @@ КомандаДалее - 3 + 19 <key>ru</key> <value>Далее >></value> @@ -1097,7 +1087,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>КомандаДалееExtendedTooltip</name> + <name>КомандаДалееРасширеннаяПодсказка</name> <id>63</id> <visible>true</visible> <enabled>true</enabled> @@ -1128,7 +1118,7 @@ </items> <items xsi:type="form:Button"> <name>Закрыть</name> - <id>4</id> + <id>23</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -1136,7 +1126,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>ЗакрытьExtendedTooltip</name> + <name>ЗакрытьРасширеннаяПодсказка</name> <id>64</id> <visible>true</visible> <enabled>true</enabled> @@ -1175,7 +1165,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>СправкаExtendedTooltip</name> + <name>СправкаРасширеннаяПодсказка</name> <id>65</id> <visible>true</visible> <enabled>true</enabled> @@ -1219,7 +1209,7 @@ </toolTip> <enableContentChange>true</enableContentChange> <extendedTooltip> - <name>КомандыФормыExtendedTooltip</name> + <name>КомандыФормыРасширеннаяПодсказка</name> <id>61</id> <visible>true</visible> <enabled>true</enabled> @@ -1240,7 +1230,7 @@ </items> <commandBarLocation>None</commandBarLocation> <autoCommandBar> - <name>Форма_КоманднаяПанель</name> + <name>ФормаКоманднаяПанель</name> <id>-1</id> <visible>true</visible> <enabled>true</enabled> @@ -1269,7 +1259,7 @@ <showCloseButton>true</showCloseButton> <attributes> <name>Объект</name> - <id>1</id> + <id>10</id> <valueType> <types>DataProcessorObject.УдалениеПомеченныхОбъектов</types> </valueType> @@ -1287,7 +1277,7 @@ <key>ru</key> <value>Режим удаления</value> - 2 + 14 String @@ -1321,7 +1311,7 @@ ru Пометка - 1 + 11 Boolean @@ -1338,7 +1328,7 @@ ru Значение - 2 + 17 String AnyRef @@ -1359,7 +1349,7 @@ ru Представление - 3 + 20 String @@ -1412,7 +1402,7 @@ ru Номер картинки - 1 + 12 Number @@ -1433,7 +1423,7 @@ ru Значение - 2 + 18 String AnyRef @@ -1454,7 +1444,7 @@ ru Представление - 3 + 21 String @@ -1473,7 +1463,7 @@ ru Пояснение для полного - 3 + 22 String @@ -1491,7 +1481,7 @@ ru Пояснение для выборочного - 4 + 24 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 69a184ea5..e1839ef91 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -2,23 +2,21 @@ РежимАгрегатов - 1 + 9 true true true - - - РежимАгрегатов - + + РежимАгрегатов OnChange РежимАгрегатовПриИзменении - РежимАгрегатовExtendedTooltip + РежимАгрегатовРасширеннаяПодсказка 22 true true @@ -34,7 +32,7 @@ РежимАгрегатовКонтекстноеМеню - 2 + 35 true true @@ -54,23 +52,21 @@ 12 РегламентноеОбновление - 7 + 39 true true true - - - РегламентноеОбновление - + + РегламентноеОбновление OnChange РегламентноеОбновлениеПриИзменении - РегламентноеОбновлениеExtendedTooltip + РегламентноеОбновлениеРасширеннаяПодсказка 24 true true @@ -86,7 +82,7 @@ РегламентноеОбновлениеКонтекстноеМеню - 8 + 40 true true @@ -111,7 +107,7 @@ false - ОбновитьExtendedTooltip + ОбновитьРасширеннаяПодсказка 25 true true @@ -141,14 +137,12 @@ true - - - Обновлено - + + Обновлено None - ОбновленоExtendedTooltip + ОбновленоРасширеннаяПодсказка 26 true true @@ -196,7 +190,7 @@ Группа обновления - ГруппаОбновленияExtendedTooltip + ГруппаОбновленияРасширеннаяПодсказка 23 true true @@ -223,23 +217,21 @@ 11 РегламентноеПерестроение - 5 + 37 true true true - - - РегламентноеПерестроение - + + РегламентноеПерестроение OnChange РегламентноеПерестроениеПриИзменении - РегламентноеПерестроениеExtendedTooltip + РегламентноеПерестроениеРасширеннаяПодсказка 28 true true @@ -255,7 +247,7 @@ РегламентноеПерестроениеКонтекстноеМеню - 6 + 38 true true @@ -280,7 +272,7 @@ false - ПерестроитьИспользованиеExtendedTooltip + ПерестроитьИспользованиеРасширеннаяПодсказка 29 true true @@ -310,14 +302,12 @@ true - - - Перестроение - + + Перестроение None - ПерестроениеExtendedTooltip + ПерестроениеРасширеннаяПодсказка 30 true true @@ -367,7 +357,7 @@ Группа перестроение - ГруппаПерестроениеExtendedTooltip + ГруппаПерестроениеРасширеннаяПодсказка 27 true true @@ -402,7 +392,7 @@ false - ОпределитьОптимальныеExtendedTooltip + ОпределитьОптимальныеРасширеннаяПодсказка 32 true true @@ -431,14 +421,12 @@ true - - - Оптимальность - + + Оптимальность None - ОптимальностьExtendedTooltip + ОптимальностьРасширеннаяПодсказка 33 true true @@ -488,7 +476,7 @@ Группа оптимальность - ГруппаОптимальностьExtendedTooltip + ГруппаОптимальностьРасширеннаяПодсказка 31 true true @@ -536,7 +524,7 @@ true Объект - 1 + 34 DataProcessorObject.УправлениеАгрегатамиПродаж @@ -554,7 +542,7 @@ ru Режим агрегатов - 2 + 36 Boolean diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 4b7e6f348..bb9c58c56 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -2,23 +2,21 @@ Пользователь - 7 + 12 true true true - - - Пользователь - + + Пользователь OnChange ПользовательПриИзменении - ПользовательExtendedTooltip + ПользовательРасширеннаяПодсказка 39 true true @@ -34,7 +32,7 @@ ПользовательКонтекстноеМеню - 8 + 11 true true @@ -70,17 +68,15 @@ true - - - Поиск - + + Поиск OnChange ПоискПриИзменении - ПоискExtendedTooltip + ПоискРасширеннаяПодсказка 41 true true @@ -131,7 +127,7 @@ false - ИскатьExtendedTooltip + ИскатьРасширеннаяПодсказка 42 true true @@ -172,7 +168,7 @@ Группа поиск - ГруппаПоискExtendedTooltip + ГруппаПоискРасширеннаяПодсказка 40 true true @@ -219,13 +215,11 @@ true - - - ОтфильтрованныеФормы.Value - + + ОтфильтрованныеФормы.Value - ЗначениеExtendedTooltip + ЗначениеРасширеннаяПодсказка 44 true true @@ -395,7 +389,7 @@ - ОтфильтрованныеФормыExtendedTooltip + ОтфильтрованныеФормыРасширеннаяПодсказка 43 true true @@ -461,7 +455,7 @@ false - ОбновитьExtendedTooltip + ОбновитьРасширеннаяПодсказка 36 true true @@ -500,7 +494,7 @@ false - СкопироватьExtendedTooltip + СкопироватьРасширеннаяПодсказка 37 true true @@ -539,7 +533,7 @@ false - УдалитьExtendedTooltip + УдалитьРасширеннаяПодсказка 38 true true @@ -591,7 +585,7 @@ true Объект - 1 + 10 DataProcessorObject.УправлениеНастройкамиФорм @@ -609,7 +603,7 @@ ru Формы - 2 + 13 ValueList @@ -629,7 +623,7 @@ ru Пользователь - 3 + 15 String @@ -647,7 +641,7 @@ ru Строка поиска - 4 + 14 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index f64e78706..449f28f61 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -12,23 +12,21 @@ 16 РазрешитьПолнотекстовыйПоиск - 1 + 22 true true true - - - РазрешитьПолнотекстовыйПоиск - + + РазрешитьПолнотекстовыйПоиск OnChange РазрешитьПолнотекстовыйПоискПриИзменении - РазрешитьПолнотекстовыйПоискExtendedTooltip + РазрешитьПолнотекстовыйПоискРасширеннаяПодсказка 9 true true @@ -44,7 +42,7 @@ РазрешитьПолнотекстовыйПоискКонтекстноеМеню - 2 + 24 true true @@ -61,20 +59,18 @@ СтатусИндекса - 3 + 26 true true true - - - СтатусИндекса - + + СтатусИндекса None - СтатусИндексаExtendedTooltip + СтатусИндексаРасширеннаяПодсказка 10 true true @@ -90,7 +86,7 @@ СтатусИндексаКонтекстноеМеню - 4 + 27 true true @@ -116,13 +112,11 @@ true - - - ДатаАктуальностиИндекса - + + ДатаАктуальностиИндекса - ДатаАктуальностиИндексаExtendedTooltip + ДатаАктуальностиИндексаРасширеннаяПодсказка 11 true true @@ -236,7 +230,7 @@ false - ОбновитьИндексExtendedTooltip + ОбновитьИндексРасширеннаяПодсказка 12 true true @@ -276,7 +270,7 @@ false - ОчиститьИндексExtendedTooltip + ОчиститьИндексРасширеннаяПодсказка 13 true true @@ -404,7 +398,7 @@ true Объект - 1 + 23 DataProcessorObject.УправлениеПолнотекстовымПоиском @@ -422,7 +416,7 @@ ru Разрешить полнотекстовый поиск - 2 + 25 Boolean diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index ce935c53f..ab104e8de 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -6,10 +6,10 @@ Страницы - 3 + 9 СтраницаОтменитьРегистрацию - 5 + 29 ПодтверждениеОтключения 36 @@ -18,10 +18,8 @@ true - - - ПодтверждениеОтключения - + + ПодтверждениеОтключения Right @@ -115,7 +113,7 @@ true СтраницаОтменитьРегистрациюРасширеннаяПодсказка - 6 + 32 true true @@ -147,10 +145,8 @@ true - - - АдресЭлектроннойПочты - + + АдресЭлектроннойПочты ru @@ -213,10 +209,8 @@ true - - - АдресСервера - + + АдресСервера АдресСервераРасширеннаяПодсказка @@ -270,10 +264,8 @@ true - - - ИмяИБ - + + ИмяИБ ИмяИБРасширеннаяПодсказка @@ -439,10 +431,8 @@ true - - - КодРегистрации - + + КодРегистрации ru @@ -578,7 +568,7 @@ СтраницыРасширеннаяПодсказка - 4 + 28 true true @@ -621,7 +611,7 @@ true Объект - 1 + 11 DataProcessorObject.УправлениеСистемойВзаимодействия @@ -639,7 +629,7 @@ ru Код регистрации - 2 + 33 String @@ -657,7 +647,7 @@ ru Адрес электронной почты - 3 + 10 String diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index c50b274c6..449a8b1b7 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -19,7 +19,7 @@ true - КомандаНовоеПисьмоExtendedTooltip + КомандаНовоеПисьмоРасширеннаяПодсказка 49 true true @@ -107,7 +107,7 @@ true - КомандаОтветитьExtendedTooltip + КомандаОтветитьРасширеннаяПодсказка 50 true true @@ -139,7 +139,7 @@ true - КомандаПолучитьПисьмаExtendedTooltip + КомандаПолучитьПисьмаРасширеннаяПодсказка 48 true true @@ -200,7 +200,7 @@ true - КомандаСоздатьПочтовыйЯщикIMAPExtendedTooltip + КомандаСоздатьПочтовыйЯщикIMAPРасширеннаяПодсказка 51 true true @@ -230,7 +230,7 @@ true - СправкаExtendedTooltip + СправкаРасширеннаяПодсказка 52 true true @@ -259,7 +259,7 @@ true - КомандаНастройкаПочтыExtendedTooltip + КомандаНастройкаПочтыРасширеннаяПодсказка 53 true true @@ -294,7 +294,7 @@ Группа командная панель - ГруппаКоманднаяПанельExtendedTooltip + ГруппаКоманднаяПанельРасширеннаяПодсказка 47 true true @@ -326,17 +326,15 @@ true - - - ПочтовыйЯщикIMAP - + + ПочтовыйЯщикIMAP OnChange ПочтовыйЯщикIMAPПриИзменении - ПочтовыйЯщикIMAPExtendedTooltip + ПочтовыйЯщикIMAPРасширеннаяПодсказка 56 true true @@ -583,7 +581,7 @@ СписокВходящие - 1 + 8 true true @@ -599,19 +597,17 @@ SetDeletionMark ДатаВходящие - 6 + 40 true true true - - - СписокВходящие.Дата - + + СписокВходящие.Дата - ДатаВходящиеExtendedTooltip + ДатаВходящиеРасширеннаяПодсказка 58 true true @@ -647,20 +643,18 @@ НаименованиеВходящие - 4 + 20 true true true - - - СписокВходящие.Description - + + СписокВходящие.Description true - НаименованиеВходящиеExtendedTooltip + НаименованиеВходящиеРасширеннаяПодсказка 59 true true @@ -676,7 +670,7 @@ НаименованиеВходящиеКонтекстноеМеню - 5 + 39 true true @@ -702,13 +696,11 @@ true - - - СписокВходящие.Отправитель - + + СписокВходящие.Отправитель - СписокВходящиеОтправительExtendedTooltip + СписокВходящиеОтправительРасширеннаяПодсказка 60 true true @@ -750,13 +742,11 @@ true - - - СписокВходящие.ПочтовыйЯщик - + + СписокВходящие.ПочтовыйЯщик - СписокВходящиеПочтовыйЯщикExtendedTooltip + СписокВходящиеПочтовыйЯщикРасширеннаяПодсказка 61 true true @@ -797,7 +787,7 @@ None СписокВходящиеКоманднаяПанель - 3 + 35 true true @@ -924,7 +914,7 @@ - СписокВходящиеExtendedTooltip + СписокВходящиеРасширеннаяПодсказка 57 true true @@ -940,7 +930,7 @@ СписокВходящиеКонтекстноеМеню - 2 + 26 true true @@ -998,7 +988,7 @@ Группа входящие - ГруппаВходящиеExtendedTooltip + ГруппаВходящиеРасширеннаяПодсказка 55 true true @@ -1248,13 +1238,11 @@ true - - - СписокИсходящие.Дата - + + СписокИсходящие.Дата - ДатаИсходящиеExtendedTooltip + ДатаИсходящиеРасширеннаяПодсказка 64 true true @@ -1296,13 +1284,11 @@ true - - - СписокИсходящие.Description - + + СписокИсходящие.Description - НаименованиеИсходящиеExtendedTooltip + НаименованиеИсходящиеРасширеннаяПодсказка 65 true true @@ -1344,13 +1330,11 @@ true - - - СписокИсходящие.Получатель - + + СписокИсходящие.Получатель - СписокИсходящиеПолучательExtendedTooltip + СписокИсходящиеПолучательРасширеннаяПодсказка 66 true true @@ -1392,13 +1376,11 @@ true - - - СписокИсходящие.Отправлено - + + СписокИсходящие.Отправлено - СписокИсходящиеОтправленоExtendedTooltip + СписокИсходящиеОтправленоРасширеннаяПодсказка 67 true true @@ -1559,7 +1541,7 @@ - СписокИсходящиеExtendedTooltip + СписокИсходящиеРасширеннаяПодсказка 63 true true @@ -1633,7 +1615,7 @@ Группа исходящие - ГруппаИсходящиеExtendedTooltip + ГруппаИсходящиеРасширеннаяПодсказка 62 true true @@ -1667,7 +1649,7 @@ Группа страницы - ГруппаСтраницыExtendedTooltip + ГруппаСтраницыРасширеннаяПодсказка 54 true true @@ -1723,7 +1705,7 @@ ru Список входящие - 1 + 9 DynamicList @@ -1767,7 +1749,7 @@ ru Список исходящие - 2 + 34 DynamicList @@ -1806,7 +1788,7 @@ ru Использовать IMAP - 3 + 36 Boolean @@ -1823,7 +1805,7 @@ ru Почтовый ящик - 4 + 21 String diff --git "a/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index c34556917..1e6ee24ee 100644 --- "a/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 43 true true @@ -62,10 +62,8 @@ true - - - Список.Date - + + Список.Date ДатаРасширеннаяПодсказка @@ -110,10 +108,8 @@ true - - - Список.Number - + + Список.Number НомерРасширеннаяПодсказка @@ -158,10 +154,8 @@ true - - - Список.Type - + + Список.Type true @@ -207,10 +201,8 @@ true - - - Список.Покупатель - + + Список.Покупатель ПокупательРасширеннаяПодсказка @@ -255,10 +247,8 @@ true - - - Список.Склад - + + Список.Склад СкладРасширеннаяПодсказка @@ -303,10 +293,8 @@ true - - - Список.Валюта - + + Список.Валюта ВалютаРасширеннаяПодсказка @@ -351,10 +339,8 @@ true - - - Список.ВидЦен - + + Список.ВидЦен ВидЦенРасширеннаяПодсказка @@ -399,10 +385,8 @@ true - - - Список.Организация - + + Список.Организация ОрганизацияРасширеннаяПодсказка @@ -447,10 +431,8 @@ true - - - Список.СостояниеЗаказа - + + Список.СостояниеЗаказа СостояниеЗаказаРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 3e7c12e79..15c427909 100644 --- "a/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -63,13 +63,11 @@ true - - - ЖурналДокументовСписок.Date - + + ЖурналДокументовСписок.Date - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 55 true true @@ -111,13 +109,11 @@ true - - - ЖурналДокументовСписок.Number - + + ЖурналДокументовСписок.Number - НомерExtendedTooltip + НомерРасширеннаяПодсказка 56 true true @@ -159,13 +155,11 @@ true - - - ЖурналДокументовСписок.Type - + + ЖурналДокументовСписок.Type - ТипExtendedTooltip + ТипРасширеннаяПодсказка 57 true true @@ -207,13 +201,11 @@ true - - - ЖурналДокументовСписок.Контрагент - + + ЖурналДокументовСписок.Контрагент - КонтрагентExtendedTooltip + КонтрагентРасширеннаяПодсказка 58 true true @@ -255,13 +247,11 @@ true - - - ЖурналДокументовСписок.РасчетныйСчет - + + ЖурналДокументовСписок.РасчетныйСчет - РасчетныйСчетExtendedTooltip + РасчетныйСчетРасширеннаяПодсказка 59 true true @@ -303,13 +293,11 @@ true - - - ЖурналДокументовСписок.Организация - + + ЖурналДокументовСписок.Организация - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 60 true true @@ -354,13 +342,11 @@ true - - - ЖурналДокументовСписок.Сумма - + + ЖурналДокументовСписок.Сумма - СуммаExtendedTooltip + СуммаРасширеннаяПодсказка 62 true true @@ -401,13 +387,11 @@ true - - - ЖурналДокументовСписок.Валюта - + + ЖурналДокументовСписок.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 63 true true @@ -454,7 +438,7 @@ Сумма документа - СуммаДокументаExtendedTooltip + СуммаДокументаРасширеннаяПодсказка 61 true true @@ -604,7 +588,7 @@ - ЖурналДокументовСписокExtendedTooltip + ЖурналДокументовСписокРасширеннаяПодсказка 54 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 47d539c14..f7b250dbe 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,20 +8,18 @@ 99 Номер - 2 + 10 true true true - - - Объект.Number - + + Объект.Number true - НомерExtendedTooltip + НомерРасширеннаяПодсказка 54 true true @@ -65,20 +63,18 @@ Дата - 3 + 15 true true true - - - Объект.Date - + + Объект.Date true - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 55 true true @@ -124,17 +120,15 @@ true - - - Объект.Организация - + + Объект.Организация OnChange ОрганизацияПриИзменении - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 56 true true @@ -186,17 +180,15 @@ true - - - Объект.Покупатель - + + Объект.Покупатель OnChange ПокупательПриИзменении - ПокупательExtendedTooltip + ПокупательРасширеннаяПодсказка 58 true true @@ -253,7 +245,7 @@ Группа покупатель - ГруппаПокупательExtendedTooltip + ГруппаПокупательРасширеннаяПодсказка 57 true true @@ -283,13 +275,11 @@ true - - - Объект.Склад - + + Объект.Склад - СкладExtendedTooltip + СкладРасширеннаяПодсказка 60 true true @@ -375,10 +365,8 @@ true - - - Объект.ВидЦен - + + Объект.ВидЦен true @@ -386,7 +374,7 @@ ВидЦенПриИзменении - ВидЦенExtendedTooltip + ВидЦенРасширеннаяПодсказка 62 true true @@ -432,13 +420,11 @@ true - - - Объект.Валюта - + + Объект.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 63 true true @@ -484,13 +470,11 @@ true - - - Объект.СостояниеЗаказа - + + Объект.СостояниеЗаказа - СостояниеЗаказаExtendedTooltip + СостояниеЗаказаРасширеннаяПодсказка 92 true true @@ -645,10 +629,8 @@ true - - - Объект.Товары.Товар - + + Объект.Товары.Товар OnChange @@ -702,10 +684,8 @@ true - - - Объект.Товары.Цена - + + Объект.Товары.Цена OnChange @@ -759,10 +739,8 @@ true - - - Объект.Товары.Количество - + + Объект.Товары.Количество OnChange @@ -817,10 +795,8 @@ true - - - Объект.Товары.Сумма - + + Объект.Товары.Сумма OnChange @@ -878,7 +854,7 @@ false - КомандаПодборExtendedTooltip + КомандаПодборРасширеннаяПодсказка 66 true true @@ -1034,7 +1010,7 @@ - ТоварыExtendedTooltip + ТоварыРасширеннаяПодсказка 67 true true @@ -1100,13 +1076,11 @@ true - - - Объект.Товары.TotalКоличество - + + Объект.Товары.TotalКоличество - ТоварыИтогКоличествоExtendedTooltip + ТоварыИтогКоличествоРасширеннаяПодсказка 74 true true @@ -1156,13 +1130,11 @@ true - - - Объект.Товары.TotalСумма - + + Объект.Товары.TotalСумма - ТоварыИтогСуммаExtendedTooltip + ТоварыИтогСуммаРасширеннаяПодсказка 75 true true @@ -1214,7 +1186,7 @@ Итоги - ИтогиExtendedTooltip + ИтогиРасширеннаяПодсказка 73 true true @@ -1246,7 +1218,7 @@ Товары - ГруппаТоварыExtendedTooltip + ГруппаТоварыРасширеннаяПодсказка 65 true true @@ -1279,10 +1251,8 @@ true - - - Объект.Автор - + + Объект.Автор АвторРасширеннаяПодсказка @@ -1332,7 +1302,7 @@ false - ОстаткиПоСкладуExtendedTooltip + ОстаткиПоСкладуРасширеннаяПодсказка 50 true true @@ -1453,7 +1423,7 @@ ru Объект - 1 + 13 DocumentObject.Заказ @@ -1478,7 +1448,7 @@ ru Это услуга? - 1 + 14 Boolean @@ -1495,7 +1465,7 @@ ru Сумма изменена - 2 + 11 Boolean @@ -1514,7 +1484,7 @@ ru Состояние заказа при создании - 2 + 12 EnumRef.СостоянияЗаказов diff --git "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 5e20242d9..639413eeb 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 43 true true @@ -62,10 +62,8 @@ true - - - Список.Date - + + Список.Date true @@ -112,10 +110,8 @@ true - - - Список.Number - + + Список.Number НомерРасширеннаяПодсказка @@ -161,10 +157,8 @@ true - - - Список.Организация - + + Список.Организация ОрганизацияРасширеннаяПодсказка @@ -209,10 +203,8 @@ true - - - Список.Покупатель - + + Список.Покупатель ПокупательРасширеннаяПодсказка @@ -258,10 +250,8 @@ true - - - Список.Склад - + + Список.Склад СкладРасширеннаяПодсказка @@ -307,10 +297,8 @@ true - - - Список.Валюта - + + Список.Валюта ВалютаРасширеннаяПодсказка @@ -355,10 +343,8 @@ true - - - Список.ВидЦен - + + Список.ВидЦен ВидЦенРасширеннаяПодсказка @@ -403,10 +389,8 @@ true - - - Список.СостояниеЗаказа - + + Список.СостояниеЗаказа СостояниеЗаказаРасширеннаяПодсказка @@ -451,10 +435,8 @@ true - - - Список.Автор - + + Список.Автор АвторРасширеннаяПодсказка diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 153871c2b..453066d05 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,17 +8,15 @@ true - - - Объект.Организация - + + Объект.Организация OnChange ОрганизацияПриИзменении - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 30 true true @@ -66,13 +64,11 @@ true - - - Объект.Number - + + Объект.Number - НомерExtendedTooltip + НомерРасширеннаяПодсказка 31 true true @@ -122,13 +118,11 @@ true - - - Объект.Date - + + Объект.Date - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 32 true true @@ -174,13 +168,11 @@ true - - - Объект.СодержаниеОперации - + + Объект.СодержаниеОперации - СодержаниеОперацииExtendedTooltip + СодержаниеОперацииРасширеннаяПодсказка 33 true true @@ -246,13 +238,11 @@ true - - - Объект.RegisterRecords.ТоварныеЗапасы.LineNumber - + + Объект.RegisterRecords.ТоварныеЗапасы.LineNumber - ТоварныеЗапасыНомерСтрокиExtendedTooltip + ТоварныеЗапасыНомерСтрокиРасширеннаяПодсказка 38 true true @@ -295,13 +285,11 @@ true - - - Объект.RegisterRecords.ТоварныеЗапасы.RecordType - + + Объект.RegisterRecords.ТоварныеЗапасы.RecordType - ТоварныеЗапасыВидДвиженияExtendedTooltip + ТоварныеЗапасыВидДвиженияРасширеннаяПодсказка 39 true true @@ -351,13 +339,11 @@ true - - - Объект.RegisterRecords.ТоварныеЗапасы.Active - + + Объект.RegisterRecords.ТоварныеЗапасы.Active - ТоварныеЗапасыАктивностьExtendedTooltip + ТоварныеЗапасыАктивностьРасширеннаяПодсказка 40 true true @@ -398,13 +384,11 @@ true - - - Объект.RegisterRecords.ТоварныеЗапасы.Товар - + + Объект.RegisterRecords.ТоварныеЗапасы.Товар - ТоварныеЗапасыТоварExtendedTooltip + ТоварныеЗапасыТоварРасширеннаяПодсказка 41 true true @@ -450,13 +434,11 @@ true - - - Объект.RegisterRecords.ТоварныеЗапасы.Склад - + + Объект.RegisterRecords.ТоварныеЗапасы.Склад - ТоварныеЗапасыСкладExtendedTooltip + ТоварныеЗапасыСкладРасширеннаяПодсказка 42 true true @@ -502,13 +484,11 @@ true - - - Объект.RegisterRecords.ТоварныеЗапасы.Количество - + + Объект.RegisterRecords.ТоварныеЗапасы.Количество - ТоварныеЗапасыКоличествоExtendedTooltip + ТоварныеЗапасыКоличествоРасширеннаяПодсказка 43 true true @@ -560,7 +540,7 @@ false - ПереключитьАктивностьExtendedTooltip + ПереключитьАктивностьРасширеннаяПодсказка 36 true true @@ -707,7 +687,7 @@ - ТоварныеЗапасыExtendedTooltip + ТоварныеЗапасыРасширеннаяПодсказка 37 true true @@ -772,7 +752,7 @@ Товарные запасы - ГруппаТоварныеЗапасыExtendedTooltip + ГруппаТоварныеЗапасыРасширеннаяПодсказка 35 true true @@ -798,7 +778,7 @@ true - ГруппаТабличныеЧастиExtendedTooltip + ГруппаТабличныеЧастиРасширеннаяПодсказка 34 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index eb78c9694..81b963282 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,17 +8,15 @@ true - - - Объект.Организация - + + Объект.Организация OnChange ОрганизацияПриИзменении - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 18 true true @@ -66,13 +64,11 @@ true - - - Объект.Number - + + Объект.Number - НомерExtendedTooltip + НомерРасширеннаяПодсказка 19 true true @@ -118,13 +114,11 @@ true - - - Объект.Date - + + Объект.Date - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 20 true true @@ -170,13 +164,11 @@ true - - - Объект.Поставщик - + + Объект.Поставщик - ПоставщикExtendedTooltip + ПоставщикРасширеннаяПодсказка 21 true true @@ -222,13 +214,11 @@ true - - - Объект.РасчетныйСчетПоставщика - + + Объект.РасчетныйСчетПоставщика - РасчетныйСчетПоставщикаExtendedTooltip + РасчетныйСчетПоставщикаРасширеннаяПодсказка 22 true true @@ -285,13 +275,11 @@ true - - - Объект.РасчетныйСчет - + + Объект.РасчетныйСчет - РасчетныйСчетExtendedTooltip + РасчетныйСчетРасширеннаяПодсказка 23 true true @@ -348,13 +336,11 @@ true - - - Объект.Валюта - + + Объект.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 24 true true @@ -400,13 +386,11 @@ true - - - Объект.Сумма - + + Объект.Сумма - СуммаExtendedTooltip + СуммаРасширеннаяПодсказка 25 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 0dfbfeb83..7853ef73c 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,17 +8,15 @@ true - - - Объект.Организация - + + Объект.Организация OnChange ОрганизацияПриИзменении - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 18 true true @@ -66,13 +64,11 @@ true - - - Объект.Number - + + Объект.Number - НомерExtendedTooltip + НомерРасширеннаяПодсказка 19 true true @@ -118,13 +114,11 @@ true - - - Объект.Date - + + Объект.Date - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 20 true true @@ -170,13 +164,11 @@ true - - - Объект.Покупатель - + + Объект.Покупатель - ПокупательExtendedTooltip + ПокупательРасширеннаяПодсказка 21 true true @@ -222,13 +214,11 @@ true - - - Объект.РасчетныйСчетПокупателя - + + Объект.РасчетныйСчетПокупателя - РасчетныйСчетПокупателяExtendedTooltip + РасчетныйСчетПокупателяРасширеннаяПодсказка 22 true true @@ -285,13 +275,11 @@ true - - - Объект.РасчетныйСчет - + + Объект.РасчетныйСчет - РасчетныйСчетExtendedTooltip + РасчетныйСчетРасширеннаяПодсказка 23 true true @@ -348,13 +336,11 @@ true - - - Объект.Валюта - + + Объект.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 24 true true @@ -400,13 +386,11 @@ true - - - Объект.Сумма - + + Объект.Сумма - СуммаExtendedTooltip + СуммаРасширеннаяПодсказка 25 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 60964fbb5..472eae0ae 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -2,20 +2,18 @@ Номер - 2 + 7 true true true - - - Объект.Number - + + Объект.Number true - НомерExtendedTooltip + НомерРасширеннаяПодсказка 39 true true @@ -64,13 +62,11 @@ true - - - Объект.Date - + + Объект.Date - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 40 true true @@ -119,17 +115,15 @@ true - - - Объект.Организация - + + Объект.Организация OnChange ОрганизацияПриИзменении - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 41 true true @@ -177,13 +171,11 @@ true - - - Объект.Склад - + + Объект.Склад - СкладExtendedTooltip + СкладРасширеннаяПодсказка 42 true true @@ -232,13 +224,11 @@ true - - - Объект.Валюта - + + Объект.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 43 true true @@ -287,13 +277,11 @@ true - - - Объект.Поставщик - + + Объект.Поставщик - ПоставщикExtendedTooltip + ПоставщикРасширеннаяПодсказка 44 true true @@ -360,13 +348,11 @@ true - - - Объект.Товары.LineNumber - + + Объект.Товары.LineNumber - ТоварыНомерСтрокиExtendedTooltip + ТоварыНомерСтрокиРасширеннаяПодсказка 48 true true @@ -410,17 +396,15 @@ true - - - Объект.Товары.Товар - + + Объект.Товары.Товар OnChange ТоварыТоварПриИзменении - ТоварыТоварExtendedTooltip + ТоварыТоварРасширеннаяПодсказка 49 true true @@ -471,13 +455,11 @@ true - - - Объект.Товары.Товар.Артикул - + + Объект.Товары.Товар.Артикул - ТоварыАртикулExtendedTooltip + ТоварыАртикулРасширеннаяПодсказка 50 true true @@ -524,17 +506,15 @@ true - - - Объект.Товары.Цена - + + Объект.Товары.Цена OnChange ТоварыЦенаПриИзменении - ТоварыЦенаExtendedTooltip + ТоварыЦенаРасширеннаяПодсказка 51 true true @@ -581,17 +561,15 @@ true - - - Объект.Товары.Количество - + + Объект.Товары.Количество OnChange ТоварыКоличествоПриИзменении - ТоварыКоличествоExtendedTooltip + ТоварыКоличествоРасширеннаяПодсказка 52 true true @@ -639,13 +617,11 @@ true - - - Объект.Товары.Сумма - + + Объект.Товары.Сумма - ТоварыСуммаExtendedTooltip + ТоварыСуммаРасширеннаяПодсказка 53 true true @@ -811,7 +787,7 @@ - ТоварыExtendedTooltip + ТоварыРасширеннаяПодсказка 47 true true @@ -875,13 +851,11 @@ true - - - Объект.Товары.TotalКоличество - + + Объект.Товары.TotalКоличество - ТоварыИтогКоличествоExtendedTooltip + ТоварыИтогКоличествоРасширеннаяПодсказка 55 true true @@ -932,13 +906,11 @@ true - - - Объект.Товары.TotalСумма - + + Объект.Товары.TotalСумма - ТоварыИтогСуммаExtendedTooltip + ТоварыИтогСуммаРасширеннаяПодсказка 56 true true @@ -991,7 +963,7 @@ Итоги - ИтогиExtendedTooltip + ИтогиРасширеннаяПодсказка 54 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 0676d7977..8fafc517f 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 34 true true @@ -67,14 +67,12 @@ true - - - Список.Date - + + Список.Date true - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 17 true true @@ -120,13 +118,11 @@ true - - - Список.Number - + + Список.Number - НомерExtendedTooltip + НомерРасширеннаяПодсказка 18 true true @@ -172,13 +168,11 @@ true - - - Список.Поставщик - + + Список.Поставщик - ПоставщикExtendedTooltip + ПоставщикРасширеннаяПодсказка 19 true true @@ -224,13 +218,11 @@ true - - - Список.Склад - + + Список.Склад - СкладExtendedTooltip + СкладРасширеннаяПодсказка 20 true true @@ -272,13 +264,11 @@ true - - - Список.Организация - + + Список.Организация - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 21 true true @@ -324,13 +314,11 @@ true - - - Список.Валюта - + + Список.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 22 true true @@ -494,7 +482,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 16 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" index 003c31cb2..a73acd005 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" @@ -21,7 +21,7 @@ Posted - Use + DontUse @@ -31,7 +31,7 @@ Ref - Use + DontUse @@ -41,7 +41,7 @@ DeletionMark - Use + DontUse @@ -52,7 +52,7 @@ ShowError - Use + DontUse @@ -62,7 +62,7 @@ Number - Use + DontUse @@ -75,7 +75,7 @@ ru - Use + DontUse ru Поступление товара @@ -92,9 +92,9 @@ true Document.ПриходТовара.Form.ФормаДокумента Document.ПриходТовара.Form.ФормаСписка + AccountingRegister.Основной AccumulationRegister.ТоварныеЗапасы AccumulationRegister.Взаиморасчеты - AccountingRegister.Основной true true @@ -119,7 +119,7 @@ Catalog.Контрагенты.EmptyRef - Use + DontUse Use @@ -143,7 +143,7 @@ Catalog.Склады.EmptyRef - Use + DontUse Use @@ -167,7 +167,7 @@ Catalog.Валюты.EmptyRef - Use + DontUse Use @@ -187,7 +187,7 @@ Catalog.Организации.EmptyRef - Use + DontUse Use @@ -227,7 +227,7 @@ LineNumber - Use + DontUse @@ -259,7 +259,7 @@ DontUse Use Use - Use + DontUse Цена @@ -288,7 +288,7 @@ DontUse Use Use - Use + DontUse Количество @@ -315,7 +315,7 @@ ShowError Use - Use + DontUse Сумма @@ -344,7 +344,7 @@ DontUse Use Use - Use + DontUse diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" index 3898349a4..1b4661838 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" @@ -12,7 +12,7 @@ true - ПечатьExtendedTooltip + ПечатьРасширеннаяПодсказка 10 true true @@ -41,7 +41,7 @@ true - ПечатьСразуExtendedTooltip + ПечатьСразуРасширеннаяПодсказка 11 true true @@ -71,7 +71,7 @@ true - ПредварительныйПросмотрExtendedTooltip + ПредварительныйПросмотрРасширеннаяПодсказка 12 true true @@ -101,7 +101,7 @@ true - ПараметрыСтраницыExtendedTooltip + ПараметрыСтраницыРасширеннаяПодсказка 13 true true @@ -164,7 +164,7 @@ Команды формы доставки - КомандыФормыДоставкиExtendedTooltip + КомандыФормыДоставкиРасширеннаяПодсказка 9 true true @@ -185,7 +185,7 @@ ТабличныйДокумент - 1 + 17 <key>ru</key> <value>Заявка на доставку</value> @@ -195,17 +195,15 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>ТабличныйДокумент</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>ТабличныйДокумент</segments> </dataPath> <titleLocation>None</titleLocation> <excludedCommands>CollapseAllGroups</excludedCommands> <excludedCommands>ExpandAllGroups</excludedCommands> <excludedCommands>ShowGroups</excludedCommands> <extendedTooltip> - <name>ТабличныйДокументExtendedTooltip</name> + <name>ТабличныйДокументРасширеннаяПодсказка</name> <id>14</id> <visible>true</visible> <enabled>true</enabled> @@ -221,7 +219,7 @@ </extendedTooltip> <contextMenu> <name>ТабличныйДокументКонтекстноеМеню</name> - <id>2</id> + <id>19</id> <visible>true</visible> <enabled>true</enabled> <userVisible> @@ -286,7 +284,7 @@ <key>ru</key> <value>Документ</value> - 1 + 18 SpreadsheetDocument diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index da91fcfc6..013208293 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -8,20 +8,18 @@ 40 Номер - 2 + 22 true true true - - - Объект.Number - + + Объект.Number true - НомерExtendedTooltip + НомерРасширеннаяПодсказка 54 true true @@ -65,20 +63,18 @@ Дата - 3 + 59 true true true - - - Объект.Date - + + Объект.Date true - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 55 true true @@ -124,17 +120,15 @@ true - - - Объект.Организация - + + Объект.Организация OnChange ОрганизацияПриИзменении - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 56 true true @@ -186,17 +180,15 @@ true - - - Объект.Покупатель - + + Объект.Покупатель OnChange ПокупательПриИзменении - ПокупательExtendedTooltip + ПокупательРасширеннаяПодсказка 58 true true @@ -253,7 +245,7 @@ Группа покупатель - ГруппаПокупательExtendedTooltip + ГруппаПокупательРасширеннаяПодсказка 57 true true @@ -283,13 +275,11 @@ true - - - Объект.Склад - + + Объект.Склад - СкладExtendedTooltip + СкладРасширеннаяПодсказка 60 true true @@ -333,7 +323,7 @@ true - ЛеваяКолонкаExtendedTooltip + ЛеваяКолонкаРасширеннаяПодсказка 53 true true @@ -367,10 +357,8 @@ true - - - Объект.ВидЦен - + + Объект.ВидЦен true @@ -378,7 +366,7 @@ ВидЦенПриИзменении - ВидЦенExtendedTooltip + ВидЦенРасширеннаяПодсказка 62 true true @@ -424,13 +412,11 @@ true - - - Объект.Валюта - + + Объект.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 63 true true @@ -474,7 +460,7 @@ true - ПраваяКолонкаExtendedTooltip + ПраваяКолонкаРасширеннаяПодсказка 61 true true @@ -503,7 +489,7 @@ true - ШапкаExtendedTooltip + ШапкаРасширеннаяПодсказка 52 true true @@ -554,13 +540,11 @@ true - - - Объект.Товары.LineNumber - + + Объект.Товары.LineNumber - ТоварыНомерСтрокиExtendedTooltip + ТоварыНомерСтрокиРасширеннаяПодсказка 68 true true @@ -604,10 +588,8 @@ true - - - Объект.Товары.Товар - + + Объект.Товары.Товар true @@ -615,7 +597,7 @@ ТоварыТоварПриИзменении - ТоварыТоварExtendedTooltip + ТоварыТоварРасширеннаяПодсказка 69 true true @@ -666,17 +648,15 @@ true - - - Объект.Товары.Цена - + + Объект.Товары.Цена OnChange ТоварыЦенаПриИзменении - ТоварыЦенаExtendedTooltip + ТоварыЦенаРасширеннаяПодсказка 70 true true @@ -723,17 +703,15 @@ true - - - Объект.Товары.Количество - + + Объект.Товары.Количество OnChange ТоварыКоличествоПриИзменении - ТоварыКоличествоExtendedTooltip + ТоварыКоличествоРасширеннаяПодсказка 71 true true @@ -781,17 +759,15 @@ true - - - Объект.Товары.Сумма - + + Объект.Товары.Сумма OnChange ТоварыСуммаПриИзменении - ТоварыСуммаExtendedTooltip + ТоварыСуммаРасширеннаяПодсказка 72 true true @@ -842,7 +818,7 @@ false - КомандаПодборExtendedTooltip + КомандаПодборРасширеннаяПодсказка 66 true true @@ -998,7 +974,7 @@ - ТоварыExtendedTooltip + ТоварыРасширеннаяПодсказка 67 true true @@ -1062,13 +1038,11 @@ true - - - Объект.Товары.TotalКоличество - + + Объект.Товары.TotalКоличество - ТоварыИтогКоличествоExtendedTooltip + ТоварыИтогКоличествоРасширеннаяПодсказка 74 true true @@ -1119,13 +1093,11 @@ true - - - Объект.Товары.TotalСумма - + + Объект.Товары.TotalСумма - ТоварыИтогСуммаExtendedTooltip + ТоварыИтогСуммаРасширеннаяПодсказка 75 true true @@ -1178,7 +1150,7 @@ Итоги - ИтогиExtendedTooltip + ИтогиРасширеннаяПодсказка 73 true true @@ -1213,7 +1185,7 @@ Товары - ГруппаТоварыExtendedTooltip + ГруппаТоварыРасширеннаяПодсказка 65 true true @@ -1247,13 +1219,11 @@ true - - - Объект.ОбоснованиеОтгрузки - + + Объект.ОбоснованиеОтгрузки - ОбоснованиеОтгрузкиExtendedTooltip + ОбоснованиеОтгрузкиРасширеннаяПодсказка 77 true true @@ -1301,7 +1271,7 @@ Прочее - ПрочееExtendedTooltip + ПрочееРасширеннаяПодсказка 76 true true @@ -1327,7 +1297,7 @@ true - ГруппаТабличныеЧастиExtendedTooltip + ГруппаТабличныеЧастиРасширеннаяПодсказка 64 true true @@ -1360,7 +1330,7 @@ false - ПересчитатьExtendedTooltip + ПересчитатьРасширеннаяПодсказка 51 true true @@ -1402,7 +1372,7 @@ false - ОстаткиПоСкладуExtendedTooltip + ОстаткиПоСкладуРасширеннаяПодсказка 50 true true @@ -1462,7 +1432,7 @@ ru Объект - 1 + 10 DocumentObject.РасходТовара @@ -1487,7 +1457,7 @@ ru Сумма изменена - 1 + 19 Boolean @@ -1504,7 +1474,7 @@ ru Это услуга? - 2 + 49 Boolean diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index dd4665320..4d1a3217c 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -43,7 +43,7 @@ Список - 1 + 16 true true @@ -67,14 +67,12 @@ true - - - Список.Date - + + Список.Date true - ДатаExtendedTooltip + ДатаРасширеннаяПодсказка 25 true true @@ -121,13 +119,11 @@ true - - - Список.Number - + + Список.Number - НомерExtendedTooltip + НомерРасширеннаяПодсказка 26 true true @@ -170,13 +166,11 @@ true - - - Список.Организация - + + Список.Организация - ОрганизацияExtendedTooltip + ОрганизацияРасширеннаяПодсказка 27 true true @@ -222,13 +216,11 @@ true - - - Список.Покупатель - + + Список.Покупатель - ПокупательExtendedTooltip + ПокупательРасширеннаяПодсказка 28 true true @@ -275,13 +267,11 @@ true - - - Список.Склад - + + Список.Склад - СкладExtendedTooltip + СкладРасширеннаяПодсказка 29 true true @@ -328,13 +318,11 @@ true - - - Список.Валюта - + + Список.Валюта - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 30 true true @@ -380,13 +368,11 @@ true - - - Список.ВидЦен - + + Список.ВидЦен - ВидЦенExtendedTooltip + ВидЦенРасширеннаяПодсказка 31 true true @@ -550,7 +536,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 24 true true @@ -580,7 +566,7 @@ false - Документ.РасходТовара.Команда.ПечатьРасходнойНакладнойExtendedTooltip + Документ.РасходТовара.Команда.ПечатьРасходнойНакладнойРасширеннаяПодсказка 23 true true @@ -666,7 +652,7 @@ false - ОтборНаСервереExtendedTooltip + ОтборНаСервереРасширеннаяПодсказка 22 true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\221\320\273\320\260\320\275\320\272\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Template.mxlx" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\221\320\273\320\260\320\275\320\272\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Template.mxlx" index e25c1fe84..b0a634a9c 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\221\320\273\320\260\320\275\320\272\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Template.mxlx" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\221\320\273\320\260\320\275\320\272\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Template.mxlx" @@ -1,4 +1,4 @@ - + ru @@ -24,6 +24,13 @@ + + 0 + 3 + + true + + 4 @@ -41,6 +48,12 @@ + + 5 + + true + + 6 @@ -70,6 +83,12 @@ + + 8 + + true + + 9 @@ -118,6 +137,12 @@ + + 11 + + true + + 12 diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270/Template.mxlx" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270/Template.mxlx" index 98f172895..3a74e1d9b 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270/Template.mxlx" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Templates/\320\234\320\260\320\272\320\265\321\202\320\237\320\265\321\207\320\260\321\202\320\270/Template.mxlx" @@ -1,4 +1,4 @@ - + ru @@ -52,6 +52,12 @@ + + 0 + + true + + 1 @@ -70,6 +76,13 @@ + + 2 + 3 + + true + + 4 @@ -190,6 +203,13 @@ + + 9 + 11 + + true + + 12 diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" index e0766b138..55245b5a6 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260.mdo" @@ -21,7 +21,7 @@ Posted - Use + DontUse @@ -31,7 +31,7 @@ Ref - Use + DontUse @@ -41,7 +41,7 @@ DeletionMark - Use + DontUse @@ -52,7 +52,7 @@ ShowError - Use + DontUse @@ -62,7 +62,7 @@ Number - Use + DontUse @@ -75,7 +75,7 @@ ru - Use + DontUse ru Продажа @@ -104,10 +104,10 @@ true Document.РасходТовара.Form.ФормаДокумента Document.РасходТовара.Form.ФормаСписка + AccountingRegister.Основной AccumulationRegister.Продажи AccumulationRegister.ТоварныеЗапасы AccumulationRegister.Взаиморасчеты - AccountingRegister.Основной true true @@ -132,7 +132,7 @@ Catalog.Контрагенты.EmptyRef - Use + DontUse Use @@ -156,7 +156,7 @@ Catalog.Склады.EmptyRef - Use + DontUse Use @@ -180,7 +180,7 @@ Catalog.Валюты.EmptyRef - Use + DontUse Use @@ -200,7 +200,7 @@ Catalog.ВидыЦен.EmptyRef - Use + DontUse Use @@ -224,7 +224,7 @@ - Use + DontUse Use @@ -244,7 +244,7 @@ Catalog.Организации.EmptyRef - Use + DontUse Use @@ -294,7 +294,7 @@ LineNumber - Use + DontUse @@ -325,7 +325,7 @@ DontUse Use Use - Use + DontUse Цена @@ -354,7 +354,7 @@ DontUse Use Use - Use + DontUse Количество @@ -380,7 +380,7 @@ ShowError Use - Use + DontUse Сумма @@ -408,7 +408,7 @@ DontUse Use Use - Use + DontUse diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" index 85422d8bd..7f5cf09e5 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" @@ -2,7 +2,7 @@ Список - 1 + 9 true true @@ -26,14 +26,12 @@ true - - - Список.Валюта - + + Список.Валюта true - ВалютаExtendedTooltip + ВалютаРасширеннаяПодсказка 14 true true @@ -48,7 +46,7 @@ - Валюта_КонтекстноеМеню + ВалютаКонтекстноеМеню 5 true true @@ -79,14 +77,12 @@ true - - - Список.Курс - + + Список.Курс true - КурсExtendedTooltip + КурсРасширеннаяПодсказка 15 true true @@ -101,7 +97,7 @@ - Курс_КонтекстноеМеню + КурсКонтекстноеМеню 7 true true @@ -122,7 +118,7 @@ None - Список_КоманднаяПанель + СписокКоманднаяПанель 3 true true @@ -250,7 +246,7 @@ - СписокExtendedTooltip + СписокРасширеннаяПодсказка 13 true true @@ -265,7 +261,7 @@ - Список_КонтекстноеМеню + СписокКонтекстноеМеню 2 true true @@ -310,7 +306,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 Обновить @@ -322,7 +318,7 @@ false - ОбновитьExtendedTooltip + ОбновитьРасширеннаяПодсказка 11 true true @@ -361,7 +357,7 @@ true - КомандыСпискаExtendedTooltip + КомандыСпискаРасширеннаяПодсказка 12 true true diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" index bd4580d44..ada7ed9b4 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" @@ -8,13 +8,11 @@ true - - - Запись.Объект - + + Запись.Объект - ТоварExtendedTooltip + ТоварРасширеннаяПодсказка 8 true true @@ -29,7 +27,7 @@ - Товар_КонтекстноеМеню + ТоварКонтекстноеМеню 5 true true @@ -60,13 +58,11 @@ true - - - Запись.ВидХарактеристики - + + Запись.ВидХарактеристики - ВидХарактеристикиExtendedTooltip + ВидХарактеристикиРасширеннаяПодсказка 9 true true @@ -81,7 +77,7 @@ - ВидХарактеристики_КонтекстноеМеню + ВидХарактеристикиКонтекстноеМеню 6 true true @@ -112,13 +108,11 @@ true - - - Запись.Значение - + + Запись.Значение - ЗначениеExtendedTooltip + ЗначениеРасширеннаяПодсказка 10 true true @@ -133,7 +127,7 @@ - Значение_КонтекстноеМеню + ЗначениеКонтекстноеМеню 7 true true @@ -171,7 +165,7 @@ - Форма_КоманднаяПанель + ФормаКоманднаяПанель -1 true true diff --git "a/fixtures/demo-configuration/src/Reports/\320\222\320\267\320\260\320\270\320\274\320\276\321\201\320\262\321\217\320\267\321\214\320\237\321\200\320\276\320\264\320\260\320\266\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" "b/fixtures/demo-configuration/src/Reports/\320\222\320\267\320\260\320\270\320\274\320\276\321\201\320\262\321\217\320\267\321\214\320\237\321\200\320\276\320\264\320\260\320\266\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" index f10588558..d382c833b 100644 --- "a/fixtures/demo-configuration/src/Reports/\320\222\320\267\320\260\320\270\320\274\320\276\321\201\320\262\321\217\320\267\321\214\320\237\321\200\320\276\320\264\320\260\320\266\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" +++ "b/fixtures/demo-configuration/src/Reports/\320\222\320\267\320\260\320\270\320\274\320\276\321\201\320\262\321\217\320\267\321\214\320\237\321\200\320\276\320\264\320\260\320\266\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" @@ -112,6 +112,7 @@ Товар InList + -1 c448d545-266b-4682-a661-c0fb430ab616 diff --git "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" index c0d7a16b3..0ec51cfff 100644 --- "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" +++ "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" @@ -1,5 +1,5 @@ - - + + false true true @@ -142,6 +142,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -236,6 +240,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -379,6 +387,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -505,6 +517,26 @@ View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -808,6 +840,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -983,10 +1019,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1393,6 +1457,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -1499,6 +1567,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -1605,6 +1677,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -1751,6 +1827,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2097,6 +2177,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2184,6 +2268,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2797,6 +2885,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2936,6 +3028,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -3201,6 +3297,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -3332,4 +3432,4 @@ true - \ No newline at end of file + diff --git "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" index 27b5b6cce..a3f2eb8e7 100644 --- "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" +++ "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" @@ -1,5 +1,5 @@ - - + + false true true @@ -142,6 +142,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -236,6 +240,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -386,6 +394,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -505,6 +517,26 @@ View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -775,6 +807,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -943,10 +979,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1391,6 +1455,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -1497,6 +1565,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -1610,6 +1682,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -1749,6 +1825,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2099,6 +2179,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2193,6 +2277,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -2854,6 +2942,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -3000,6 +3092,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -3258,6 +3354,10 @@ Edit true + + InteractiveDelete + true + InteractiveSetDeletionMark true @@ -3436,4 +3536,4 @@ true - \ No newline at end of file + diff --git "a/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" "b/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" index 19ca8b622..3f7920494 100644 --- "a/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" +++ "b/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" @@ -1,5 +1,5 @@ - - + + false true true @@ -107,10 +107,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -158,10 +186,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -321,10 +377,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -428,6 +512,26 @@ View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -636,10 +740,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -790,10 +922,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1108,10 +1268,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1178,10 +1366,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1276,10 +1492,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1421,10 +1665,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1678,10 +1950,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -1736,10 +2036,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -2255,10 +2583,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -2351,10 +2707,38 @@ Read true + + Update + true + + + Delete + true + View true + + Edit + true + + + InteractiveDelete + true + + + InteractiveSetDeletionMark + true + + + InteractiveClearDeletionMark + true + + + InteractiveDeleteMarked + true + InteractiveDeletePredefinedData true @@ -2641,4 +3025,4 @@ true - \ No newline at end of file + diff --git "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" index ffd9a579f..03484708f 100644 --- "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" @@ -34,13 +34,11 @@ true - - - СписокНастроек.Presentation - + + СписокНастроек.Presentation - ПредставлениеExtendedTooltip + ПредставлениеРасширеннаяПодсказка 25 true true @@ -227,7 +225,7 @@ - СписокНастроекExtendedTooltip + СписокНастроекРасширеннаяПодсказка 24 true true @@ -254,7 +252,7 @@ false - УдалитьExtendedTooltip + УдалитьРасширеннаяПодсказка 23 true true @@ -325,7 +323,7 @@ false - ЗагрузитьExtendedTooltip + ЗагрузитьРасширеннаяПодсказка 27 true true @@ -365,7 +363,7 @@ false - ОтменитьExtendedTooltip + ОтменитьРасширеннаяПодсказка 28 true true @@ -404,7 +402,7 @@ false - СправкаExtendedTooltip + СправкаРасширеннаяПодсказка 29 true true @@ -439,7 +437,7 @@ true - ГруппаExtendedTooltip + ГруппаРасширеннаяПодсказка 26 true true @@ -545,7 +543,7 @@ ru Ключ текущих настроек - 1 + 2 String diff --git "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" index aa196adea..bbf311155 100644 --- "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" @@ -6,7 +6,7 @@ СписокНастроек - 2 + 34 <key>ru</key> <value>Ранее сохраненные варианты</value> @@ -32,19 +32,17 @@ <excludedCommands>SetDeletionMark</excludedCommands> <items xsi:type="form:FormField"> <name>Наименование</name> - <id>4</id> + <id>33</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>СписокНастроек.Description</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>СписокНастроек.Description</segments> </dataPath> <extendedTooltip> - <name>НаименованиеExtendedTooltip</name> + <name>НаименованиеРасширеннаяПодсказка</name> <id>16</id> <visible>true</visible> <enabled>true</enabled> @@ -235,7 +233,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>СписокНастроекExtendedTooltip</name> + <name>СписокНастроекРасширеннаяПодсказка</name> <id>15</id> <visible>true</visible> <enabled>true</enabled> @@ -251,7 +249,7 @@ </extendedTooltip> <contextMenu> <name>СписокНастроекКонтекстноеМеню</name> - <id>3</id> + <id>32</id> <items xsi:type="form:Button"> <name>Удалить</name> <id>12</id> @@ -262,7 +260,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>УдалитьExtendedTooltip</name> + <name>УдалитьРасширеннаяПодсказка</name> <id>14</id> <visible>true</visible> <enabled>true</enabled> @@ -330,7 +328,7 @@ </items> <items xsi:type="form:FormField"> <name>ИмяСохраняемойНастройки</name> - <id>1</id> + <id>8</id> <title> <key>ru</key> <value>Имя сохраняемого варианта</value> @@ -340,15 +338,13 @@ <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:MultiLanguageDataPath"> - <paths xsi:type="form:DataPath"> - <segments>ИмяСохраняемойНастройки</segments> - </paths> + <dataPath xsi:type="form:DataPath"> + <segments>ИмяСохраняемойНастройки</segments> </dataPath> <defaultItem>true</defaultItem> <titleLocation>Top</titleLocation> <extendedTooltip> - <name>ИмяСохраняемойНастройкиExtendedTooltip</name> + <name>ИмяСохраняемойНастройкиРасширеннаяПодсказка</name> <id>17</id> <visible>true</visible> <enabled>true</enabled> @@ -402,7 +398,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>СохранитьExtendedTooltip</name> + <name>СохранитьРасширеннаяПодсказка</name> <id>19</id> <visible>true</visible> <enabled>true</enabled> @@ -442,7 +438,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>ОтменитьExtendedTooltip</name> + <name>ОтменитьРасширеннаяПодсказка</name> <id>20</id> <visible>true</visible> <enabled>true</enabled> @@ -481,7 +477,7 @@ </userVisible> <skipOnInput>false</skipOnInput> <extendedTooltip> - <name>СправкаExtendedTooltip</name> + <name>СправкаРасширеннаяПодсказка</name> <id>21</id> <visible>true</visible> <enabled>true</enabled> @@ -516,7 +512,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ГруппаExtendedTooltip</name> + <name>ГруппаРасширеннаяПодсказка</name> <id>18</id> <visible>true</visible> <enabled>true</enabled> @@ -565,7 +561,7 @@ <key>ru</key> <value>Список настроек</value> - 1 + 31 DynamicList From 26cd528951f0e8aef546b756674b29b0c9f062de Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 10 Jul 2024 22:08:27 +0300 Subject: [PATCH 06/86] =?UTF-8?q?fix(launch):=20#379=20=D0=97=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D0=BE=D0=BC=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=D0=BE=D0=BC=20=D0=BA=D0=BB=D0=B8?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 ++ .../Module.bsl" | 2 +- .../src/Configuration/Configuration.mdo | 10 ++++------ ...20\266\320\265\320\261\320\275\321\213\320\271.mdo" | 1 + ...20\275\320\260\321\200\320\270\320\265\320\262.mdo" | 1 + ...20\241\320\265\321\200\320\262\320\265\321\200.mdo" | 1 + ...20\265\321\200\320\262\320\265\321\200\320\260.mdo" | 1 + ...200_\320\256\320\242RecordSet_\320\234\320\236.mdo" | 1 + ...5\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" | 1 + 9 files changed, 13 insertions(+), 7 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 72e424900..f2e5e13f1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -48,7 +48,9 @@ КонецЦикла; +#Если НЕ ТолстыйКлиентОбычноеПриложение Тогда // Исключение для обычного приложения в файловом варианте Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим +#КонецЕсли КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 58d151e8c..f46829346 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -151,7 +151,7 @@ // Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах Процедура ПослеЧтенияСценариев(Сценарии) Экспорт - ЮТЛогирование.Информация("Загрузка сценариев завершена."); + ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев завершена. %1 сценариев.", Сценарии.Количество())); КонецПроцедуры diff --git a/fixtures/demo-configuration/src/Configuration/Configuration.mdo b/fixtures/demo-configuration/src/Configuration/Configuration.mdo index 64339fd74..6334cbe34 100644 --- a/fixtures/demo-configuration/src/Configuration/Configuration.mdo +++ b/fixtures/demo-configuration/src/Configuration/Configuration.mdo @@ -19,13 +19,14 @@ Russian Фирма "1С" 1.0.26.1 - true ru + true + true SettingsStorage.ХранилищеВариантовОтчетов Multimedia @@ -45,9 +46,7 @@ Multimedia - - Multimedia - + Language.Русский ru @@ -82,7 +81,6 @@ ru Русский - ru Subsystem.Предприятие @@ -289,8 +287,8 @@ AccumulationRegister.Взаиморасчеты AccumulationRegister.Продажи AccumulationRegister.ТоварныеЗапасы - ChartOfCharacteristicTypes.ВидыХарактеристик ChartOfCharacteristicTypes.ВидыСубконто + ChartOfCharacteristicTypes.ВидыХарактеристик ChartOfAccounts.Основной AccountingRegister.Основной diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 15c13e32b..dea909eb3 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -6,4 +6,5 @@ Мокито служебный true + true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" index efb8839f4..5ec9d54d3 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" @@ -6,5 +6,6 @@ Ошибка загрузки сценариев true + true true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index 9b2b68dad..2d9b50444 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -6,4 +6,5 @@ ЮТИсполнитель клиент сервер true + true diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 6b472ef2a..02ee1662d 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -3,4 +3,5 @@ ОМ_ЮТПодключаемыеМодулиСлужебныйВызовСервера true true + true diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236.mdo" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236.mdo" index 91efd201d..9453f2781 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236.mdo" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236.mdo" @@ -2,4 +2,5 @@ Обр_ЮТRecordSet_МО true + true diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" index 663eab4e3..cfb0c3021 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236.mdo" @@ -2,4 +2,5 @@ Обр_ЮТКонструкторОбъектаXDTO_МО true + true From 6fd1d78e60859a5d6a69db1e28b99da54147b51f Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 11 Jul 2024 00:46:35 +0300 Subject: [PATCH 07/86] =?UTF-8?q?fix(tests):=20#379=20=D0=98=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 12 ++++++++- .../Module.bsl" | 19 ++++++++++---- .../Module.bsl" | 7 +++++ .../Module.bsl" | 8 +++--- .../Module.bsl" | 5 ++-- .../Module.bsl" | 26 ++++++++++++++----- 7 files changed, 60 insertions(+), 19 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 4b30e7ced..ac1125fd0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -374,7 +374,7 @@ КонецЕсли; #КонецЕсли КонецЕсли; - + КонецПроцедуры // Описание параметров перехвата объекта. diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" index 8c0fe34fe..00e31989c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\320\265/Module.bsl" @@ -65,7 +65,7 @@ // Строка - Локаль интерфейса Функция ЛокальИнтерфейса() Экспорт -#Если Клиент Тогда +#Если ТонкийКлиент Или ВебКлиент Тогда Возврат ТекущийЯзык(); #Иначе Возврат ТекущийЯзык().КодЯзыка; @@ -103,4 +103,14 @@ КонецФункции +// Используется файловая база. +// +// Возвращаемое значение: +// Булево - Это файловая база +Функция ЭтоФайловаяБаза() Экспорт + + Возврат ОписаниеОкружения().ФайловаяБаза; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 151e965b4..f11fae597 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -272,13 +272,20 @@ Процедура ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля = Неопределено) Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); +#Если ТолстыйКлиентУправляемоеПриложение Тогда + ВыполнятьСервернуюОбработку = Истина; +#ИначеЕсли Клиент Тогда + ВыполнятьСервернуюОбработку = НЕ ЮТОкружение.ЭтоФайловаяБаза(); +#КонецЕсли Если ЭтоСобытиеПеред(ИмяСобытия) Тогда Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); #Если Клиент Тогда - СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); - ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки); + Если ВыполнятьСервернуюОбработку Тогда + СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); + ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки); + КонецЕсли; #КонецЕсли ВызватьОбработчикиТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля); @@ -287,8 +294,10 @@ ВызватьОбработчикиТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля); Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); #Если Клиент Тогда - СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); - ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки); + Если ВыполнятьСервернуюОбработку Тогда + СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); + ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки); + КонецЕсли; #КонецЕсли КонецЕсли; @@ -384,7 +393,7 @@ Если ЗначениеЗаполнено(ОбработчикСобытия) Тогда ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ОбработчикСобытия, Истина); - ИначеЕсли НЕ ЗначениеЗаполнено(ОбработчикиСобытия) Тогда + ИначеЕсли НЕ ЗначениеЗаполнено(ОбработчикиСобытия) Тогда ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия, ИмяСобытия, Ложь); Иначе Для Каждого ОбработчикСобытия Из ЮТСтроки.РазделитьСтроку(ОбработчикиСобытия, ",") Цикл diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" index 8de1011d3..05dd75339 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" @@ -31,6 +31,7 @@ .ДобавитьТестовыйНабор("Локализации") .ДобавитьТест("УстановкаЛокализации") .ДобавитьТест("НесуществующийСловарьПоЛокализации") + .После("СброситьЛокализацию") .ДобавитьТестовыйНабор("Некорректные параметры") .ДобавитьТест("НереализованныйПолЧеловека") ; @@ -134,6 +135,12 @@ ; КонецПроцедуры +Процедура СброситьЛокализацию() Экспорт + + ЮТест.Данные().Подражатель().УстановитьЛокализацию(""); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 029bf59db..47446e5e8 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -140,12 +140,13 @@ Контексты = ЮТФабрика.КонтекстыВызова(); Набор = ОписаниеНабораТестов("Тесты"); - Тест = ОписаниеТеста("Тест1","Сервер, КлиентУправляемоеПриложение"); + Тест = ОписаниеТеста("Тест1"); Набор.Тесты.Добавить(Тест); ОписаниеМодуля = ОписаниеМодуля(); ОписаниеМодуля.Метаданные.Сервер = Истина; ОписаниеМодуля.Метаданные.КлиентУправляемоеПриложение = Истина; + ОписаниеМодуля.Метаданные.КлиентОбычноеПриложение = Истина; ДобавитьКопиюНабора(ОписаниеМодуля, Набор); @@ -193,6 +194,7 @@ ИмяМодуля = "ТестовыйМодуль"; ИмяТеста = "ТестовыйТест"; + ТипКлиента = ?(ЮТест.Окружение().ОбычноеПриложение, "КлиентОбычноеПриложение", "КлиентУправляемоеПриложение"); ОписаниеМодуля = ОписаниеМодуля(ИмяМодуля); НаборТестов = ОписаниеНабораТестов(); @@ -210,7 +212,7 @@ .ИмеетДлину(1) .Свойство("[0].Тесты").ИмеетДлину(2); - УстановитьНовыйФильтр(, СтрШаблон("%1.%2.КлиентУправляемоеПриложение", ИмяМодуля, ИмяТеста)); + УстановитьНовыйФильтр(, СтрШаблон("%1.%2.%3", ИмяМодуля, ИмяТеста, ТипКлиента)); ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) @@ -390,7 +392,7 @@ КонецФункции -Функция ОписаниеТеста(ИмяТеста = Неопределено, КонтекстыВызова = "Сервер, КлиентУправляемоеПриложение", Теги = "") +Функция ОписаниеТеста(ИмяТеста = Неопределено, КонтекстыВызова = "Сервер, КлиентУправляемоеПриложение, КлиентОбычноеПриложение", Теги = "") Если ИмяТеста = Неопределено Тогда ИмяТеста = ЮТест.Данные().СлучайнаяСтрока(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 29b2c1d6d..026542b1f 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -102,6 +102,7 @@ МетаданныеМодуля.Вставить("Клиент", Ложь); МетаданныеМодуля.Вставить("Сервер", Истина); МетаданныеМодуля.Вставить("ВызовСервера", Ложь); + ТипКлиента = ?(ЮТест.Окружение().ОбычноеПриложение, "КлиентОбычноеПриложение", "КлиентУправляемоеПриложение"); ЮТФильтрацияСлужебный.УстановитьКонтекст(Новый Структура("filter", Новый Структура)); ОписаниеМодуля = ЮТЧитательСлужебный.ИсполняемыеСценарииМодуля(МетаданныеМодуля); @@ -128,14 +129,14 @@ .Свойство("Тесты[0].Имя").Равно("ИсполняемыеСценарииМодуля") .Свойство("Тесты[0].Представление").НеЗаполнено() .Свойство("Тесты[0].Теги").ИмеетДлину(0) - .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("Сервер", "КлиентУправляемоеПриложение")) + .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("Сервер", ТипКлиента)) ; ЮТест.ОжидаетЧто(НаборЗагрузкаТестов, "Набор 'ЗагрузкаТестов'") .Свойство("Имя").Равно("ЗагрузкаТестов") .Свойство("Тесты").ИмеетДлину(1) .Свойство("Тесты[0].Имя").Равно("ЗагрузитьТесты") - .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("КлиентУправляемоеПриложение")) + .Свойство("Тесты[0].КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(ТипКлиента)) ; ЮТест.ОжидаетЧто(НаборЭтоТестовыйМодуль, "Набор 'ЭтоТестовыйМодуль'") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index f52122978..9105ed1ba 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -73,12 +73,16 @@ Процедура ПослеВсехТестов() Экспорт ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов"); -#Если Сервер Тогда +#Если ТолстыйКлиентОбычноеПриложение Тогда ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(20); // Количество вызванных обработчиков событий -#Иначе + .ИмеетДлинуБольше(17) + .ИмеетДлинуМеньше(21); +#ИначеЕсли Клиент Тогда ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) .ИмеетДлину(18); // Количество вызванных обработчиков событий +#Иначе + ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) + .ИмеетДлину(20); // Количество вызванных обработчиков событий #КонецЕсли КонецПроцедуры @@ -143,7 +147,7 @@ КонецПроцедуры -#Если Сервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда Процедура ТранзакцияПоУмолчаниюАктивна() Экспорт ЮТест.ОжидаетЧто(ТранзакцияАктивна(), "Транзакция из настроек по умолчанию не активна") @@ -156,13 +160,11 @@ Окружение = ЮТест.Окружение(); - ЮТест.ОжидаетЧто(Окружение) + Утверждение = ЮТест.ОжидаетЧто(Окружение) .Заполнено() .ИмеетТип("Структура") .Свойство("ВстроенныйЯзык").Равно("ru") - .Свойство("ОбычноеПриложение").Равно(Ложь) .Свойство("ВебКлиент").Равно(Ложь) - .Свойство("ТолстыйКлиент").Равно(Ложь) .Свойство("ВерсияПлатформы") .Свойство("ФайловаяБаза") .Свойство("ОперационнаяСистемаКлиент") @@ -171,6 +173,16 @@ .Свойство("АрхитектураСервер") .Свойство("ИнформационнаяСреда") ; +#Если ТолстыйКлиентОбычноеПриложение Тогда + Утверждение.Свойство("ОбычноеПриложение").Равно(Истина) + .Свойство("ТолстыйКлиент").Равно(Истина); +#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда + Утверждение.Свойство("ОбычноеПриложение").Равно(Ложь) + .Свойство("ТолстыйКлиент").Равно(Истина); +#Иначе + Утверждение.Свойство("ОбычноеПриложение").Равно(Ложь) + .Свойство("ТолстыйКлиент").Равно(Ложь); +#КонецЕсли КонецПроцедуры From bfddc642287e90c0299674ae051325017771c862 Mon Sep 17 00:00:00 2001 From: Alexandr Yang Date: Fri, 19 Jul 2024 12:13:01 +0500 Subject: [PATCH 08/86] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0?= =?UTF-8?q?=20=D0=B2=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/test-data/data-generation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/features/test-data/data-generation.md b/documentation/docs/features/test-data/data-generation.md index fd8d6146e..d787aa02d 100644 --- a/documentation/docs/features/test-data/data-generation.md +++ b/documentation/docs/features/test-data/data-generation.md @@ -98,7 +98,7 @@ sidebar_position: 1 Товар = ЮТест.Данные().СоздатьЭлемент(Справочники.Товары); // На основании менеджера Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); // На основании имени менеджера - ПараметрыЗаписи = ЮТФабрика.ПараметрыЗаписи(); + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; Товар = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары", , , ПараметрыЗаписи); // Запись в режиме ОбменДанными.Загрузка = Истина ``` From c6f44136d219a971b91c99bcbaa453912af937ec Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 29 Jul 2024 13:36:49 +0300 Subject: [PATCH 09/86] =?UTF-8?q?fix(run):=20#379=20*=20=D0=98=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20*=20=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D0=B2=20=D0=BE=D0=B1=D1=8B?= =?UTF-8?q?=D1=87=D0=BD=D0=BE=D0=BC=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B8=20*=20=D0=9B=D0=BE=D0=B3=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=BA=D0=B8=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9=20*=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D1=8B=20=D0=B2=20=D1=82=D0=BE=D0=BB=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=BC=20=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5?= =?UTF-8?q?=D0=BC=D0=BE=D0=BC=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 23 +++++++++++-------- .../Module.bsl" | 3 ++- .../Module.bsl" | 22 +++++++++++------- ...0\260\321\200\320\270\320\265\320\262.mdo" | 1 - 4 files changed, 30 insertions(+), 19 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 445277f9b..2daf48423 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -119,25 +119,23 @@ // Булево - Этот модуль содержит тесты Функция ЭтоТестовыйМодуль(МетаданныеМодуля) Экспорт - Если МетаданныеМодуля.Глобальный Тогда + Если МетаданныеМодуля.Глобальный Или МетаданныеМодуля.ВызовСервера Тогда Возврат Ложь; КонецЕсли; -#Если Сервер Тогда - Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); -#КонецЕсли - #Если ТолстыйКлиентУправляемоеПриложение ИЛИ ТонкийКлиент Тогда Если МетаданныеМодуля.КлиентУправляемоеПриложение Тогда Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); КонецЕсли; -#КонецЕсли - -#Если ТолстыйКлиентОбычноеПриложение Тогда +#ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда Если МетаданныеМодуля.КлиентОбычноеПриложение Тогда Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); КонецЕсли; #КонецЕсли + +#Если Сервер Тогда + Возврат ЮТМетодыСлужебный.МетодМодуляСуществует(МетаданныеМодуля.Имя, ИмяМетодаСценариев()); +#КонецЕсли Если МетаданныеМодуля.Сервер Тогда //@skip-check unknown-method-property @@ -171,7 +169,14 @@ Для Каждого ОписаниеМодуля Из МодулиРасширения Цикл - Если ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) И ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда + ЮТЛогирование.Отладка("Анализ модуля: " + ОписаниеМодуля.Имя); + + Если НЕ ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) Тогда + ЮТЛогирование.Отладка(" Пропущен, не подходит под отбор"); + ИначеЕсли НЕ ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда + ЮТЛогирование.Отладка(" Пропущен, это не тестовый модуль"); + Иначе + ЮТЛогирование.Отладка(" Добавлен"); ТестовыеМодули.Добавить(ОписаниеМодуля); КонецЕсли; diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index a182735a5..dfd04dca4 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -33,9 +33,10 @@ Если ЭтоАдресВременногоХранилища(Параметры.АдресХранилища) Тогда АдресОтчета = Параметры.АдресХранилища; + Иначе + ЗагрузитьТестыПриОткрытии = Истина; КонецЕсли; - ЗагрузитьТестыПриОткрытии = Параметры.ЗагрузитьТесты; Для Каждого Формат Из ФорматыВыводаОшибки() Цикл Элементы.ФорматВыводаОшибки.СписокВыбора.Добавить(Формат.Ключ, Формат.Ключ); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index 81510f37d..bc993d99a 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -360,22 +360,28 @@ Файл = "1cv8"; #КонецЕсли ПутьЗапускаемогоКлиента = ЮТФайлы.ОбъединитьПути(КаталогПрограммы(), Файл); + Аргументы = Новый Массив; Если СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86 Или СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда ПутьЗапускаемогоКлиента = ПутьЗапускаемогоКлиента + ".exe"; КонецЕсли; +#Если ТолстыйКлиентОбычноеПриложение Тогда + Аргументы.Добавить("ENTERPRISE"); + Аргументы.Добавить("/RunModeOrdinaryApplication"); +#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда + Аргументы.Добавить("ENTERPRISE"); + Аргументы.Добавить("/RunModeManagedApplication"); +#КонецЕсли + + Аргументы.Добавить(СтрШаблон("/IBConnectionString ""%1""", СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""))); + Аргументы.Добавить(СтрШаблон("/C ""%1""", ПараметрыЗапускаЮнитТестов)); + Если ЗначениеЗаполнено(ИмяПользователя()) Тогда - Пользователь = СтрШаблон("/N""%1""", ИмяПользователя()); - Иначе - Пользователь = ""; + Аргументы.Добавить(СтрШаблон("/N""%1""", ИмяПользователя())); КонецЕсли; - ПараметрыЗапуска = СтрШаблон("""%1"" %2 /IBConnectionString ""%3"" /C""%4""", - ПутьЗапускаемогоКлиента, - Пользователь, - СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""), - ПараметрыЗапускаЮнитТестов); + ПараметрыЗапуска = СтрШаблон("""%1"" %2", ПутьЗапускаемогоКлиента, СтрСоединить(Аргументы, " ")); #КонецЕсли КонецЕсли; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" index 5ec9d54d3..0f494e43f 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262/\320\236\320\234_\320\236\321\210\320\270\320\261\320\272\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262.mdo" @@ -7,5 +7,4 @@ true true - true From 352f3189614e0e1577a92c5868da4d9d2c8331c6 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 29 Jul 2024 14:21:05 +0300 Subject: [PATCH 10/86] =?UTF-8?q?fix(events):=20#379=20=D0=98=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B4=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=D0=BD=D0=B0=D1=8F=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B0=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D1=82=D0=BE=D0=BB=D1=81=D1=82=D0=BE=D0=BC=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index f11fae597..0605ce34c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -272,7 +272,7 @@ Процедура ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия, ОбработчикиТестовогоМодуля = Неопределено) Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); -#Если ТолстыйКлиентУправляемоеПриложение Тогда +#Если ТонкийКлиент Тогда ВыполнятьСервернуюОбработку = Истина; #ИначеЕсли Клиент Тогда ВыполнятьСервернуюОбработку = НЕ ЮТОкружение.ЭтоФайловаяБаза(); From c3f9d3b069f93e91e438dee50286e1be787dc533 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 29 Jul 2024 14:59:35 +0300 Subject: [PATCH 11/86] =?UTF-8?q?fix(sonar):=20=D0=98=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index bc993d99a..ad31f59fc 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -367,11 +367,9 @@ КонецЕсли; #Если ТолстыйКлиентОбычноеПриложение Тогда - Аргументы.Добавить("ENTERPRISE"); - Аргументы.Добавить("/RunModeOrdinaryApplication"); + Аргументы.Добавить("ENTERPRISE /RunModeOrdinaryApplication"); #ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда - Аргументы.Добавить("ENTERPRISE"); - Аргументы.Добавить("/RunModeManagedApplication"); + Аргументы.Добавить("ENTERPRISE /RunModeManagedApplication"); #КонецЕсли Аргументы.Добавить(СтрШаблон("/IBConnectionString ""%1""", СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """"""))); From 4b2dc89fc2c771a953d85bcfe50434dbbffaa3d2 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Jun 2024 00:19:32 +0300 Subject: [PATCH 12/86] =?UTF-8?q?feat:=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE?= =?UTF-8?q?=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0=D0=B2=D0=BB=D0=B8=D0=B2=D0=B0=D1=82=D1=8C=20=D1=83?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D0=BC=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 107 ++++++++++++++++++ ...1\200\320\276\320\262\320\272\320\270.mdo" | 9 ++ .../src/Configuration/Configuration.mdo | 1 + .../Module.bsl" | 56 +++++++++ ...1\200\320\276\320\262\320\272\320\270.mdo" | 5 + tests/src/Configuration/Configuration.mdo | 2 + 6 files changed, 180 insertions(+) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" new file mode 100644 index 000000000..046e5c2f8 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" @@ -0,0 +1,107 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Установить фоновую блокировку. +// +// Параметры: +// Блокировка - БлокировкаДанных +// Длительность Длительность +// +// Возвращаемое значение: +// +Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность) Экспорт + + ОписаниеБлокировки = ОписаниеБлокировки(Блокировка); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеБлокировки, Длительность); + + Задание = ФоновыеЗадания.Выполнить("ЮТУправялемыеБлокировки.УстановитьБлокировку", Параметры); + + Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда + //@skip-check empty-except-statement + Попытка + ФоновыеЗадания.ОжидатьЗавершения(ЮТКоллекции.ЗначениеВМассиве(Задание), 1); + Исключение + // Исключение не интересно + КонецПопытки; + Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.УникальныйИдентификатор); + КонецЕсли; + + Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда + ВызватьИсключение Задание.ИнформацияОбОшибке; + ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда + ВызватьИсключение "Фоновое задание с блокировкой завершилось"; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьБлокировку(ОписаниеБлокировки, Длительность) Экспорт + + Блокировка = Новый БлокировкаДанных(); + + Для Каждого ОписаниеЭлемента Из ОписаниеБлокировки Цикл + Элемент = Блокировка.Добавить(); + ЗаполнитьЗначенияСвойств(Элемент, ОписаниеЭлемента, "Область, Режим"); + + Для Каждого ОписаниеПоля Из ОписаниеЭлемента.Поля Цикл + Элемент.УстановитьЗначение(ОписаниеПоля.Поле, ОписаниеПоля.Значение); + КонецЦикла; + КонецЦикла; + + НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + //@skip-check lock-out-of-try + Блокировка.Заблокировать(); + ЮТОбщий.Пауза(Длительность); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ОписаниеБлокировки(Блокировка) + + Описание = Новый Массив(); + + Для Каждого Элемент Из Блокировка Цикл + Описание.Добавить(ОписаниеЭлементаБлокировки(Элемент)); + КонецЦикла; + + Возврат Описание; + +КонецФункции + +Функция ОписаниеЭлементаБлокировки(ЭлементБлокировки) + + Описание = Новый Структура; + Описание.Вставить("Область", ЭлементБлокировки.Область); + Описание.Вставить("Режим", ЭлементБлокировки.Режим); + Описание.Вставить("Поля", Новый Массив); + + Для Каждого Поле Из ЭлементБлокировки.Поля Цикл + ОписаниеПоля = Новый Структура; + ОписаниеПоля.Вставить("Поле", Поле.Поле); + ОписаниеПоля.Вставить("Значение", Поле.Значение); + КонецЦикла; + + Возврат Описание; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" new file mode 100644 index 000000000..c289290a1 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" @@ -0,0 +1,9 @@ + + + ЮТУправялемыеБлокировки + + ru + Управялемые блокировки + + true + diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 4a6015a05..8d86b6953 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -137,6 +137,7 @@ CommonModule.ЮТТесты CommonModule.ЮТТестыСлужебный CommonModule.ЮТТипыДанныхСлужебный + CommonModule.ЮТУправялемыеБлокировки CommonModule.ЮТУтверждения CommonModule.ЮТУтвержденияИБ CommonModule.ЮТФабрика diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" new file mode 100644 index 000000000..5e6b15ce6 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" @@ -0,0 +1,56 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты.ВТранзакции() + .ДобавитьТест("УстановитьФоновуюБлокировку") + ; + +КонецПроцедуры + +Процедура УстановитьФоновуюБлокировку() Экспорт + + Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты); + + Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.КурсыВалют") + .Установить("Валюта", Валюта) + .Фикция("Период") + .Фикция("Курс"); +// Конструктор.Записать(); + + Блокировка = Новый БлокировкаДанных(); + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + ЭлементБлокировки.УстановитьЗначение("Валюта", Валюта); + + ЮТУправялемыеБлокировки.УстановитьФоновуюБлокировку(Блокировка, 30); + + ЮТест.ОжидаетЧто(Конструктор) + .Метод("Записать") + .ВыбрасываетИсключение("Конфликт блокировок при выполнении транзакции"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" new file mode 100644 index 000000000..1c0e48503 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" @@ -0,0 +1,5 @@ + + + ОМ_ЮТУправялемыеБлокировки + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index cabfbdade..359533405 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -9,6 +9,7 @@ + true Расш1_ 8.3.10 @@ -58,6 +59,7 @@ CommonModule.ОМ_ЮТТестовыеДанныеСлужебный CommonModule.ОМ_ЮТТесты CommonModule.ОМ_ЮТТипыДанныхСлужебный + CommonModule.ОМ_ЮТУправялемыеБлокировки CommonModule.ОМ_ЮТУтверждения CommonModule.ОМ_ЮТУтвержденияИБ CommonModule.ОМ_ЮТФильтрацияСлужебный From 5b4a2665d80353f1e6389078e7bd37b02370189e Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Jun 2024 00:20:04 +0300 Subject: [PATCH 13/86] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=2023=D0=B9=20=D0=BF=D0=BB?= =?UTF-8?q?=D0=B0=D1=82=D1=84=D0=BE=D1=80=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ObjectModule.bsl" | 2 +- .../Module.bsl" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index c7e577eec..0870bbabb 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -275,7 +275,7 @@ Возврат НачалоДня(ЮТест.Данные().СлучайнаяДата()); ИначеЕсли Тип.Имя = "dateTime" Тогда Возврат ЮТест.Данные().СлучайнаяДата(); - ИначеЕсли Тип.БазовыйТип.Имя = "AnyRef" Тогда + ИначеЕсли Тип.БазовыйТип.Имя = "AnyRef" Или Тип.БазовыйТип.Имя = "AnyDBRef" Тогда Возврат ЮТест.Данные().УникальнаяСтрока(); ИначеЕсли ЗначениеЗаполнено(Тип.Фасеты) И Тип.Фасеты[0].Вид = ВидФасетаXDTO.Перечисление Тогда Возврат СлучайноеЗначениеПеречисления(Тип); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 026542b1f..9e7a742be 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -89,7 +89,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(35); + .ИмеетДлину(36); КонецПроцедуры From d943b3acac2aea3506776a1a580226d533a40b30 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Jun 2024 12:21:10 +0300 Subject: [PATCH 14/86] =?UTF-8?q?refact:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 12 ++ .../Module.bsl" | 74 ++++++++++++ .../Module.bsl" | 107 ------------------ ...1\200\320\276\320\262\320\272\320\270.mdo" | 9 -- .../src/Configuration/Configuration.mdo | 1 - .../Module.bsl" | 25 ++++ .../Module.bsl" | 56 --------- ...1\200\320\276\320\262\320\272\320\270.mdo" | 5 - .../Module.bsl" | 2 +- tests/src/Configuration/Configuration.mdo | 1 - 10 files changed, 112 insertions(+), 180 deletions(-) delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 72fdc2768..66fc1b25f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -952,6 +952,18 @@ Возврат Обработка; КонецФункции + +// Установить фоновую блокировку. +// +// Параметры: +// Блокировка - БлокировкаДанных +// Длительность - Число - Длительность блокировки в секундах +Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность = 30) Экспорт + + ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьФоновуюБлокировку(Блокировка, Длительность); + +КонецПроцедуры + #КонецЕсли // Устанавливает значение реквизита ссылки diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index fdb0efeee..eb731b8bb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -227,6 +227,51 @@ КонецПроцедуры +Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность) Экспорт + + ОписаниеБлокировки = ОписаниеБлокировки(Блокировка); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеБлокировки, Длительность); + + Задание = ФоновыеЗадания.Выполнить("ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьБлокировку", Параметры); + + Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда + //@skip-check empty-except-statement + Попытка + ФоновыеЗадания.ОжидатьЗавершения(ЮТКоллекции.ЗначениеВМассиве(Задание), 1); + Исключение + // Исключение не интересно + КонецПопытки; + Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.УникальныйИдентификатор); + КонецЕсли; + + Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда + ВызватьИсключение Задание.ИнформацияОбОшибке; + ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда + ВызватьИсключение "Фоновое задание с блокировкой завершилось"; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьБлокировку(ОписаниеБлокировки, Длительность) Экспорт + + Блокировка = Новый БлокировкаДанных(); + + Для Каждого ОписаниеЭлемента Из ОписаниеБлокировки Цикл + Элемент = Блокировка.Добавить(); + ЗаполнитьЗначенияСвойств(Элемент, ОписаниеЭлемента, "Область, Режим"); + + Для Каждого ОписаниеПоля Из ОписаниеЭлемента.Поля Цикл + Элемент.УстановитьЗначение(ОписаниеПоля.Поле, ОписаниеПоля.Значение); + КонецЦикла; + КонецЦикла; + + НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + //@skip-check lock-out-of-try + Блокировка.Заблокировать(); + ЮТОбщий.Пауза(Длительность); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -445,4 +490,33 @@ КонецПроцедуры +Функция ОписаниеБлокировки(Блокировка) + + Описание = Новый Массив(); + + Для Каждого Элемент Из Блокировка Цикл + Описание.Добавить(ОписаниеЭлементаБлокировки(Элемент)); + КонецЦикла; + + Возврат Описание; + +КонецФункции + +Функция ОписаниеЭлементаБлокировки(ЭлементБлокировки) + + Описание = Новый Структура; + Описание.Вставить("Область", ЭлементБлокировки.Область); + Описание.Вставить("Режим", ЭлементБлокировки.Режим); + Описание.Вставить("Поля", Новый Массив); + + Для Каждого Поле Из ЭлементБлокировки.Поля Цикл + ОписаниеПоля = Новый Структура; + ОписаниеПоля.Вставить("Поле", Поле.Поле); + ОписаниеПоля.Вставить("Значение", Поле.Значение); + КонецЦикла; + + Возврат Описание; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" deleted file mode 100644 index 046e5c2f8..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" +++ /dev/null @@ -1,107 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// Copyright 2021-2024 BIA-Technologies Limited Liability Company -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//©///////////////////////////////////////////////////////////////////////////©// - -#Область СлужебныйПрограммныйИнтерфейс - -// Установить фоновую блокировку. -// -// Параметры: -// Блокировка - БлокировкаДанных -// Длительность Длительность -// -// Возвращаемое значение: -// -Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность) Экспорт - - ОписаниеБлокировки = ОписаниеБлокировки(Блокировка); - Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеБлокировки, Длительность); - - Задание = ФоновыеЗадания.Выполнить("ЮТУправялемыеБлокировки.УстановитьБлокировку", Параметры); - - Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда - //@skip-check empty-except-statement - Попытка - ФоновыеЗадания.ОжидатьЗавершения(ЮТКоллекции.ЗначениеВМассиве(Задание), 1); - Исключение - // Исключение не интересно - КонецПопытки; - Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.УникальныйИдентификатор); - КонецЕсли; - - Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда - ВызватьИсключение Задание.ИнформацияОбОшибке; - ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда - ВызватьИсключение "Фоновое задание с блокировкой завершилось"; - КонецЕсли; - -КонецПроцедуры - -Процедура УстановитьБлокировку(ОписаниеБлокировки, Длительность) Экспорт - - Блокировка = Новый БлокировкаДанных(); - - Для Каждого ОписаниеЭлемента Из ОписаниеБлокировки Цикл - Элемент = Блокировка.Добавить(); - ЗаполнитьЗначенияСвойств(Элемент, ОписаниеЭлемента, "Область, Режим"); - - Для Каждого ОписаниеПоля Из ОписаниеЭлемента.Поля Цикл - Элемент.УстановитьЗначение(ОписаниеПоля.Поле, ОписаниеПоля.Значение); - КонецЦикла; - КонецЦикла; - - НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); - //@skip-check lock-out-of-try - Блокировка.Заблокировать(); - ЮТОбщий.Пауза(Длительность); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция ОписаниеБлокировки(Блокировка) - - Описание = Новый Массив(); - - Для Каждого Элемент Из Блокировка Цикл - Описание.Добавить(ОписаниеЭлементаБлокировки(Элемент)); - КонецЦикла; - - Возврат Описание; - -КонецФункции - -Функция ОписаниеЭлементаБлокировки(ЭлементБлокировки) - - Описание = Новый Структура; - Описание.Вставить("Область", ЭлементБлокировки.Область); - Описание.Вставить("Режим", ЭлементБлокировки.Режим); - Описание.Вставить("Поля", Новый Массив); - - Для Каждого Поле Из ЭлементБлокировки.Поля Цикл - ОписаниеПоля = Новый Структура; - ОписаниеПоля.Вставить("Поле", Поле.Поле); - ОписаниеПоля.Вставить("Значение", Поле.Значение); - КонецЦикла; - - Возврат Описание; - -КонецФункции - -#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" deleted file mode 100644 index c289290a1..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" +++ /dev/null @@ -1,9 +0,0 @@ - - - ЮТУправялемыеБлокировки - - ru - Управялемые блокировки - - true - diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 8d86b6953..4a6015a05 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -137,7 +137,6 @@ CommonModule.ЮТТесты CommonModule.ЮТТестыСлужебный CommonModule.ЮТТипыДанныхСлужебный - CommonModule.ЮТУправялемыеБлокировки CommonModule.ЮТУтверждения CommonModule.ЮТУтвержденияИБ CommonModule.ЮТФабрика diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 144d1d2b5..0bec6d07c 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -50,6 +50,7 @@ .ДобавитьТест("СлучайноеВремя") .ДобавитьТест("СлучайнаяДатаПосле") .ДобавитьТест("СлучайнаяДатаДо") + .ДобавитьСерверныйТест("УстановитьФоновуюБлокировку") ; КонецПроцедуры @@ -602,4 +603,28 @@ КонецПроцедуры +#Если Сервер Тогда +Процедура УстановитьФоновуюБлокировку() Экспорт + + Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты); + + Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.КурсыВалют") + .Установить("Валюта", Валюта) + .Фикция("Период") + .Фикция("Курс"); + + Блокировка = Новый БлокировкаДанных(); + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + ЭлементБлокировки.УстановитьЗначение("Валюта", Валюта); + + ЮТест.Данные().УстановитьФоновуюБлокировку(Блокировка); + + ЮТест.ОжидаетЧто(Конструктор) + .Метод("Записать") + .ВыбрасываетИсключение("Конфликт блокировок при выполнении транзакции"); + +КонецПроцедуры +#КонецЕсли + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" deleted file mode 100644 index 5e6b15ce6..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/Module.bsl" +++ /dev/null @@ -1,56 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// Copyright 2021-2024 BIA-Technologies Limited Liability Company -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//©///////////////////////////////////////////////////////////////////////////©// - -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ЮТТесты.ВТранзакции() - .ДобавитьТест("УстановитьФоновуюБлокировку") - ; - -КонецПроцедуры - -Процедура УстановитьФоновуюБлокировку() Экспорт - - Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты); - - Конструктор = ЮТест.Данные().КонструкторОбъекта("РегистрСведений.КурсыВалют") - .Установить("Валюта", Валюта) - .Фикция("Период") - .Фикция("Курс"); -// Конструктор.Записать(); - - Блокировка = Новый БлокировкаДанных(); - ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют"); - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; - ЭлементБлокировки.УстановитьЗначение("Валюта", Валюта); - - ЮТУправялемыеБлокировки.УстановитьФоновуюБлокировку(Блокировка, 30); - - ЮТест.ОжидаетЧто(Конструктор) - .Метод("Записать") - .ВыбрасываетИсключение("Конфликт блокировок при выполнении транзакции"); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" deleted file mode 100644 index 1c0e48503..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270/\320\236\320\234_\320\256\320\242\320\243\320\277\321\200\320\260\320\262\321\217\320\273\320\265\320\274\321\213\320\265\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.mdo" +++ /dev/null @@ -1,5 +0,0 @@ - - - ОМ_ЮТУправялемыеБлокировки - true - diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 9e7a742be..026542b1f 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -89,7 +89,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(36); + .ИмеетДлину(35); КонецПроцедуры diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 359533405..7d24eeb93 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -59,7 +59,6 @@ CommonModule.ОМ_ЮТТестовыеДанныеСлужебный CommonModule.ОМ_ЮТТесты CommonModule.ОМ_ЮТТипыДанныхСлужебный - CommonModule.ОМ_ЮТУправялемыеБлокировки CommonModule.ОМ_ЮТУтверждения CommonModule.ОМ_ЮТУтвержденияИБ CommonModule.ОМ_ЮТФильтрацияСлужебный From 39c5aea252149e7fdece35c12fdb3a5069062d4a Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 29 Jul 2024 22:57:50 +0300 Subject: [PATCH 15/86] =?UTF-8?q?fix(tests):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=82=D0=B5=D1=81=D1=82=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B0=D0=BD=D0=B3=D0=BB=D0=B8=D0=B9=D1=81?= =?UTF-8?q?=D0=BA=D0=BE=D0=B9=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 0bec6d07c..94eb16220 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -620,9 +620,13 @@ ЮТест.Данные().УстановитьФоновуюБлокировку(Блокировка); + ОжидаемаяОшибка = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), + "Lock conflict during the transaction", + "Конфликт блокировок при выполнении транзакции"); + ЮТест.ОжидаетЧто(Конструктор) .Метод("Записать") - .ВыбрасываетИсключение("Конфликт блокировок при выполнении транзакции"); + .ВыбрасываетИсключение(ОжидаемаяОшибка); КонецПроцедуры #КонецЕсли From 7c4c51fcfce99780cfedfa6965590c80d69508fd Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 29 Jul 2024 23:04:42 +0300 Subject: [PATCH 16/86] =?UTF-8?q?fix(sonar):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index eb731b8bb..0f6f36b0c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -265,7 +265,13 @@ КонецЦикла; КонецЦикла; - НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + // BSLLS:BeginTransactionBeforeTryCatch-off + // BSLLS:PairingBrokenTransaction-off + // BSLLS:PairingBrokenTransaction-off + НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + // BSLLS:BeginTransactionBeforeTryCatch-on + // BSLLS:PairingBrokenTransaction-on + // BSLLS:PairingBrokenTransaction-on //@skip-check lock-out-of-try Блокировка.Заблокировать(); ЮТОбщий.Пауза(Длительность); From f47586656d08b1959707f6042daef01a2ebae8ba Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 29 Jul 2024 23:45:40 +0300 Subject: [PATCH 17/86] =?UTF-8?q?doc:=20#225=20=D0=BE=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= =?UTF-8?q?=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/features/test-data/data-manipulations.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/documentation/docs/features/test-data/data-manipulations.md b/documentation/docs/features/test-data/data-manipulations.md index d4ab387af..d4db6f36b 100644 --- a/documentation/docs/features/test-data/data-manipulations.md +++ b/documentation/docs/features/test-data/data-manipulations.md @@ -1,6 +1,15 @@ # Дополнительные методы работы с данными -* [`ЮТест.Данные().Удалить`](/api/ЮТТестовыеДанные#удалить) - Выполняет удаление переданных записей из базы -* [`ЮТест.Данные().УстановитьЗначениеРеквизита`](/api/ЮТТестовыеДанные#установитьзначениереквизита) - Устанавливает значение реквизита ссылки -* [`ЮТест.Данные().УстановитьЗначенияРеквизитов`](/api/ЮТТестовыеДанные#установитьзначенияреквизитов) - Устанавливает значения реквизитов ссылки +* [`ЮТест.Данные().Удалить`](/api/ЮТТестовыеДанные#удалить) - Выполняет удаление переданных записей из базы. +* [`ЮТест.Данные().УстановитьЗначениеРеквизита`](/api/ЮТТестовыеДанные#установитьзначениереквизита) - Устанавливает значение реквизита ссылки. +* [`ЮТест.Данные().УстановитьЗначенияРеквизитов`](/api/ЮТТестовыеДанные#установитьзначенияреквизитов) - Устанавливает значения реквизитов ссылки. +* [`ЮТест.Данные().УстановитьФоновуюБлокировку`](/api/ЮТТестовыеДанные#установитьфоновуюблокировку) - Позволяет установить фоновую блокировку данных. + ```bsl + Блокировка = Новый БлокировкаДанных(); + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + ЭлементБлокировки.УстановитьЗначение("Валюта", Валюта); + + ЮТест.Данные().УстановитьФоновуюБлокировку(Блокировка); + ``` * [`ЮТЗапросы`](/api/ЮТЗапросы) - Расширяет возможности тестирования, позволяет в упрощенной форме получать данны из информационной базы как с сервера, так и с клиента. From df544f90144fc9e454a67dc08df11c15d3c453b0 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Thu, 1 Aug 2024 00:26:33 +0300 Subject: [PATCH 18/86] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D0=B0=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8E=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/cook-book/Forms/form-on-server.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 documentation/docs/cook-book/Forms/form-on-server.md diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md new file mode 100644 index 000000000..8d3cb4ff6 --- /dev/null +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -0,0 +1,119 @@ +--- +tags: [Формы, НаСервере] +sidebar_position: 2 +--- + +# Тестирование Серверных методов по работе с Формой + +Иногда нам хочется протестировать серверный метод который предназначен для работы с формой, например, добавление элементов на форму. + +Вот один из способов реализовать такой тест: +
+Код целиком + +Модуль: +```bsl +Процедура ДействияНадФормой(Форма = Неопределено) Экспорт + +#Если Клиент Тогда + + ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(%1)"); + Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы); + Форма.Закрыть(); + +#Иначе + + Результат = НашТестируемыйМетод(Форма); + ЮТест.ОжидаетЧто(Результат, "Создание декорации надпись") + .Свойство("Вид").Равно(ВидДекорацииФормы.Надпись); + +#КонецЕсли + +КонецПроцедуры +``` + +Форма: +```bsl +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Выполнить(СтрШаблон(Параметры.Метод, ЭтотОбъект)); + +КонецПроцедуры +``` +
+ +---- + +## Подготовка +1. Регистрируем наш тестовый метод как **Клиентский тест**. + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты.ДобавитьКлиентскийТест("ДействияНадФормой"); + +КонецПроцедуры +``` + +2. Добавляем экспортный метод который будет реализовывать тест, в качестве входного параметра укажем **Форму**. + +```bsl +Процедура ДействияНадФормой(Форма = Неопределено) Экспорт + +КонецПроцедуры +``` + +3. Создаем в расширении **Общую форму** на которой мы будем проверять наш метод, в модуль формы добавляем обработчик события **ПриСозданииНаСервере**. + +## Реализация + +Работа нашего нашего теста будет состоять из 3-х шагов: +```mermaid +flowchart LR + init(1. Инициализация) --> run(2. Вызов теста с передачей формы как параметра) + run --> check(3. Тест) +``` + +1. Сначала мы открываем форму и передаем в параметрах адрес нашего тестового метода. +2. В обработчике модуля формы **ПриСозданииНаСервере** делаем обратный вызов нашего теста с передачей этой формы в качестве параметра. +3. Вызываем тестируемый метод с нашей формой и проверяем результат. + +```bsl +Процедура ДействияНадФормой(Форма = Неопределено) Экспорт + +#Если Клиент Тогда // Шаг 1 + + // указываем путь к нашему тестовому методу в качестве параметра открытия формы + ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(%1)"); + + // открываем форму + Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы); + + Форма.Закрыть(); + +#Иначе // Шаг 3 +// в эту ветку мы попадаем уже после вызова тестового метода из обработчика модуля формы ПриСозданииНаСервере и имеем в своем распоряжении Форму + + // вызываем метод который мы хотим протестировать + Результат = НашТестируемыйМетод(Форма); + + // Проверяем результат: + // Допустим наш метод добавляет на форму Декорацию надпись и возвращает созданный элемент формы. + ЮТест.ОжидаетЧто(Результат, "Создание декорации надпись") + .Свойство("Вид").Равно(ВидДекорацииФормы.Надпись); + +#КонецЕсли + +КонецПроцедуры +``` + +В модуле формы в обработчике **ПриСозданииНаСервере** прописываем обратный вызов переданного в форму теста: +```bsl +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Выполнить(СтрШаблон(Параметры.Метод, ЭтотОбъект)); // Шаг 2 + +КонецПроцедуры +``` From e09adce2081fd3245e26df0265335750afd71cc6 Mon Sep 17 00:00:00 2001 From: Nenashev Anatoliy Date: Thu, 1 Aug 2024 15:13:35 +0300 Subject: [PATCH 19/86] =?UTF-8?q?#390=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=20=D0=9F=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=D1=8B=D0=97=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D0=B2=20=D0=AE?= =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B5=D0=94=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5.=D0=A3=D1=81=D1=82=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=D0=97=D0=BD=D0=B0=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=D0=A0=D0=B5=D0=BA=D0=B2=D0=B8=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 66fc1b25f..cd3e60732 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -989,7 +989,7 @@ // ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи = Неопределено) Экспорт - ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов); + ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи); КонецПроцедуры From f83575f200987bb12c4cbb37157f532c09744891 Mon Sep 17 00:00:00 2001 From: edkuznetsov <31954121+edkuznetsov@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:35:30 +0300 Subject: [PATCH 20/86] Update documentation/docs/cook-book/Forms/form-on-server.md Co-authored-by: Koryakin Aleksey --- documentation/docs/cook-book/Forms/form-on-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index 8d3cb4ff6..e442b1cf7 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -5,7 +5,7 @@ sidebar_position: 2 # Тестирование Серверных методов по работе с Формой -Иногда нам хочется протестировать серверный метод который предназначен для работы с формой, например, добавление элементов на форму. +Иногда нам хочется протестировать серверный метод, который предназначен для работы с формой, например, добавление элементов на форму. Вот один из способов реализовать такой тест:
From ae2e13549230b7ddffbd3173f65c6942fc7438d2 Mon Sep 17 00:00:00 2001 From: edkuznetsov <31954121+edkuznetsov@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:35:40 +0300 Subject: [PATCH 21/86] Update documentation/docs/cook-book/Forms/form-on-server.md Co-authored-by: Koryakin Aleksey --- documentation/docs/cook-book/Forms/form-on-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index e442b1cf7..ae4c0f1de 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -11,7 +11,7 @@ sidebar_position: 2
Код целиком -Модуль: +Тест: ```bsl Процедура ДействияНадФормой(Форма = Неопределено) Экспорт From 162586f4d4e48404a4e60ac119ca57c615b5247e Mon Sep 17 00:00:00 2001 From: edkuznetsov <31954121+edkuznetsov@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:36:01 +0300 Subject: [PATCH 22/86] Update documentation/docs/cook-book/Forms/form-on-server.md Co-authored-by: Koryakin Aleksey --- documentation/docs/cook-book/Forms/form-on-server.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index ae4c0f1de..5ee0b74d5 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -46,7 +46,8 @@ sidebar_position: 2 ---- ## Подготовка -1. Регистрируем наш тестовый метод как **Клиентский тест**. +1. Создаем клиент-серверный тестовый модуль +2. Регистрируем наш тестовый метод как **Клиентский тест**. ```bsl Процедура ИсполняемыеСценарии() Экспорт From e8c1f2dbf4501afcc1697c8ce74b3fbb34fe3db3 Mon Sep 17 00:00:00 2001 From: edkuznetsov <31954121+edkuznetsov@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:36:14 +0300 Subject: [PATCH 23/86] Update documentation/docs/cook-book/Forms/form-on-server.md Co-authored-by: Koryakin Aleksey --- documentation/docs/cook-book/Forms/form-on-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index 5ee0b74d5..852b52adb 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -17,7 +17,7 @@ sidebar_position: 2 #Если Клиент Тогда - ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(%1)"); + ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(ЭтотОбъект)"); Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы); Форма.Закрыть(); From bf32d313b4799ef1f514ae19845a8f502ea4124c Mon Sep 17 00:00:00 2001 From: edkuznetsov <31954121+edkuznetsov@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:36:20 +0300 Subject: [PATCH 24/86] Update documentation/docs/cook-book/Forms/form-on-server.md Co-authored-by: Koryakin Aleksey --- documentation/docs/cook-book/Forms/form-on-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index 852b52adb..172444305 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -37,7 +37,7 @@ sidebar_position: 2 &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Выполнить(СтрШаблон(Параметры.Метод, ЭтотОбъект)); + Выполнить(Параметры.Метод); КонецПроцедуры ``` From d77bd22835286cfa187b30cedf5d3d5b176bd518 Mon Sep 17 00:00:00 2001 From: Koryakin Aleksey Date: Thu, 1 Aug 2024 16:04:38 +0300 Subject: [PATCH 25/86] =?UTF-8?q?=D0=92=D0=BA=D0=BB=D1=8E=D1=87=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8=20SQ?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=83=D0=BB=20=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D0=B2=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B8=D0=B7=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sq.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index a53b60523..482401e3e 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -7,7 +7,6 @@ on: jobs: SonarQualityGate: runs-on: ubuntu-latest - if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name steps: - name: Checkout PR @@ -71,4 +70,4 @@ jobs: sonar_branch_plugin: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - \ No newline at end of file + From 7e96b98597d314de934bba0be19e18179ec19875 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Fri, 2 Aug 2024 23:10:45 +0300 Subject: [PATCH 26/86] =?UTF-8?q?+=20=D1=84=D0=B8=D0=BA=D1=81=D1=8B=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/cook-book/Forms/form-on-server.md | 47 +++++++++---------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index 172444305..1506e1865 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -5,7 +5,8 @@ sidebar_position: 2 # Тестирование Серверных методов по работе с Формой -Иногда нам хочется протестировать серверный метод, который предназначен для работы с формой, например, добавление элементов на форму. +Иногда нам хочется протестировать серверный метод, который предназначен для работы с формой, например, добавление элементов на форму. +Основная проблема в таком тесте, это получить форму на сервере, т.к. создать форму на сервере не получиться и с клиента ее нельзя передать. Вот один из способов реализовать такой тест:
@@ -14,21 +15,15 @@ sidebar_position: 2 Тест: ```bsl Процедура ДействияНадФормой(Форма = Неопределено) Экспорт - #Если Клиент Тогда - ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(ЭтотОбъект)"); Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы); Форма.Закрыть(); - #Иначе - Результат = НашТестируемыйМетод(Форма); ЮТест.ОжидаетЧто(Результат, "Создание декорации надпись") .Свойство("Вид").Равно(ВидДекорацииФормы.Надпись); - #КонецЕсли - КонецПроцедуры ``` @@ -36,9 +31,7 @@ sidebar_position: 2 ```bsl &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Выполнить(Параметры.Метод); - КонецПроцедуры ```
@@ -53,7 +46,6 @@ sidebar_position: 2 Процедура ИсполняемыеСценарии() Экспорт ЮТТесты.ДобавитьКлиентскийТест("ДействияНадФормой"); - КонецПроцедуры ``` @@ -61,7 +53,6 @@ sidebar_position: 2 ```bsl Процедура ДействияНадФормой(Форма = Неопределено) Экспорт - КонецПроцедуры ``` @@ -71,9 +62,24 @@ sidebar_position: 2 Работа нашего нашего теста будет состоять из 3-х шагов: ```mermaid -flowchart LR - init(1. Инициализация) --> run(2. Вызов теста с передачей формы как параметра) - run --> check(3. Тест) +sequenceDiagram + participant Тест + participant Форма + rect rgb(191, 223, 255) + note right of Тест: Клиент + Тест->>+Форма: Открываем форму и передаем адрес теста + end + rect rgb(191, 255, 223) + note left of Форма: Сервер + Форма-->>-Тест: ПриСозданииНаСервере.Вызываем тест с передачей формы в параметре + Тест->>Тестируемый метод: Выполнение тест с формой + Тестируемый метод -->> Тест: Результат + Тест ->>Тест: Проверка + end + rect rgb(191, 223, 255) + note right of Тест: Клиент + Тест->>+Форма: Закрытие формы + end ``` 1. Сначала мы открываем форму и передаем в параметрах адрес нашего тестового метода. @@ -82,30 +88,21 @@ flowchart LR ```bsl Процедура ДействияНадФормой(Форма = Неопределено) Экспорт - #Если Клиент Тогда // Шаг 1 - // указываем путь к нашему тестовому методу в качестве параметра открытия формы ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(%1)"); - // открываем форму Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы); - Форма.Закрыть(); - #Иначе // Шаг 3 // в эту ветку мы попадаем уже после вызова тестового метода из обработчика модуля формы ПриСозданииНаСервере и имеем в своем распоряжении Форму - // вызываем метод который мы хотим протестировать Результат = НашТестируемыйМетод(Форма); - // Проверяем результат: // Допустим наш метод добавляет на форму Декорацию надпись и возвращает созданный элемент формы. ЮТест.ОжидаетЧто(Результат, "Создание декорации надпись") .Свойство("Вид").Равно(ВидДекорацииФормы.Надпись); - #КонецЕсли - КонецПроцедуры ``` @@ -113,8 +110,6 @@ flowchart LR ```bsl &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Выполнить(СтрШаблон(Параметры.Метод, ЭтотОбъект)); // Шаг 2 - КонецПроцедуры -``` +``` \ No newline at end of file From 70e764d990a7cbd3d6d701315557adfd1b779242 Mon Sep 17 00:00:00 2001 From: ekuznetsov Date: Fri, 2 Aug 2024 23:43:49 +0300 Subject: [PATCH 27/86] =?UTF-8?q?+=20=D1=84=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/cook-book/Forms/form-on-server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/docs/cook-book/Forms/form-on-server.md b/documentation/docs/cook-book/Forms/form-on-server.md index 1506e1865..ecfe146ee 100644 --- a/documentation/docs/cook-book/Forms/form-on-server.md +++ b/documentation/docs/cook-book/Forms/form-on-server.md @@ -90,7 +90,7 @@ sequenceDiagram Процедура ДействияНадФормой(Форма = Неопределено) Экспорт #Если Клиент Тогда // Шаг 1 // указываем путь к нашему тестовому методу в качестве параметра открытия формы - ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(%1)"); + ПараметрыФормы = Новый Структура("Метод", "yaxunit_ОбщегоНазначения.ДействияНадФормой(ЭтотОбъект)"); // открываем форму Форма = ОткрытьФорму("ОбщаяФорма.НашаОбщаяФорма", ПараметрыФормы); Форма.Закрыть(); @@ -110,6 +110,6 @@ sequenceDiagram ```bsl &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Выполнить(СтрШаблон(Параметры.Метод, ЭтотОбъект)); // Шаг 2 + Выполнить(Параметры.Метод); // Шаг 2 КонецПроцедуры ``` \ No newline at end of file From 84a09ddc2b5991a8470cf731e59f9e0f76811903 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 5 Aug 2024 17:33:19 +0300 Subject: [PATCH 28/86] =?UTF-8?q?perf:=20=D0=9E=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0=20=D0=97=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=D0=92=D0=9C=D0=B0=D1=81=D1=81=D0=B8=D0=B2=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 43 +++--- .../Module.bsl" | 138 +++++++++++++++++- 2 files changed, 159 insertions(+), 22 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 1de44fced..53deba409 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -65,30 +65,35 @@ Значение10 = "_!%*") Экспорт ФлагПустогоЗначения = "_!%*"; - Значения = Неопределено; - Для Инд = - 10 По - 1 Цикл - - //@skip-check server-execution-safe-mode - Значение = Вычислить("Значение" + ( - Инд)); // BSLLS:ExecuteExternalCodeInCommonModule-off - - Если Значение = ФлагПустогоЗначения И Значения = Неопределено Тогда - Продолжить; - КонецЕсли; - - Если Значения = Неопределено Тогда - Значения = Новый Массив(- Инд); + Значения = Новый Массив(10); + Значения[0] = Значение1; + Значения[1] = Значение2; + Значения[2] = Значение3; + Значения[3] = Значение4; + Значения[4] = Значение5; + Значения[5] = Значение6; + Значения[6] = Значение7; + Значения[7] = Значение8; + Значения[8] = Значение9; + Значения[9] = Значение10; + + Для Инд = -9 По 0 Цикл + Если Значения[-Инд] <> ФлагПустогоЗначения Тогда + Результат = Новый Массив(1 - Инд); + Прервать; КонецЕсли; - - Если Значение = ФлагПустогоЗначения Тогда - Значение = ЗначениеПоУмолчанию; + КонецЦикла; + + Для Инд = 0 По Результат.ВГраница() Цикл + Если Значения[Инд] <> ФлагПустогоЗначения Тогда + Результат[Инд] = Значения[Инд]; + Иначе + Результат[Инд] = ЗначениеПоУмолчанию; КонецЕсли; - - Значения[ - Инд - 1] = Значение; - КонецЦикла; - Возврат Значения; + Возврат Результат; КонецФункции // BSLLS:DuplicateStringLiteral-on diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 02cc3add6..af59c3952 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -36,6 +36,9 @@ .ДобавитьТест("ВСтруктуру") .ДобавитьТест("ПредставлениеМассива") .ДобавитьТест("ОбъединитьМассивы") + .ДобавитьТест("ЗначениеВМассиве_Производительность1") + .ДобавитьТест("ЗначениеВМассиве_Производительность2") + .ДобавитьТест("ЗначениеВМассиве_Производительность3") ; КонецПроцедуры @@ -308,12 +311,13 @@ Значение7 = ЮТест.Данные().СлучайнаяСтрока(); Значение8 = ЮТест.Данные().СлучайнаяСтрока(); Значение9 = ЮТест.Данные().СлучайнаяСтрока(); + Значение10 = ЮТест.Данные().СлучайнаяСтрока(); - Результат = ЮТКоллекции.ЗначениеВМассиве(Значение1, Значение2, Значение3, Значение4, , Значение6, Значение7, Значение8, Значение9); + Результат = ЮТКоллекции.ЗначениеВМассиве(Значение1, Значение2, Значение3, Значение4, , Значение6, Значение7, Значение8, Значение9, Значение10); ЮТест.ОжидаетЧто(Результат, "Массив значений после добавления") .ИмеетТип("Массив") - .ИмеетДлину(9) + .ИмеетДлину(10) .Элемент(0).Равно(Значение1) .Элемент(1).Равно(Значение2) .Элемент(2).Равно(Значение3) @@ -322,7 +326,50 @@ .Элемент(5).Равно(Значение6) .Элемент(6).Равно(Значение7) .Элемент(7).Равно(Значение8) - .Элемент(8).Равно(Значение9); + .Элемент(8).Равно(Значение9) + .Элемент(9).Равно(Значение10); + + ЮТест.ОжидаетЧто(ЮТКоллекции.ЗначениеВМассиве(Значение1), "Один элемент") + .ИмеетТип("Массив") + .ИмеетДлину(1) + .Элемент(0).Равно(Значение1); + + ЮТест.ОжидаетЧто(ЮТКоллекции.ЗначениеВМассиве(Значение1, , Значение3), "Пропуск элемента") + .ИмеетТип("Массив") + .ИмеетДлину(3) + .Элемент(0).Равно(Значение1) + .Элемент(1).Равно(Неопределено) + .Элемент(2).Равно(Значение3); + +КонецПроцедуры + +Процедура ЗначениеВМассиве_Производительность1() Экспорт + + Итерация = 10000; + + Для Инд = 1 По Итерация Цикл + ЮТКоллекции.ЗначениеВМассиве(1); + КонецЦикла; + +КонецПроцедуры + +Процедура ЗначениеВМассиве_Производительность2() Экспорт + + Итерация = 10000; + + Для Инд = 1 По Итерация Цикл + ЗначениеВМассиве2(1); + КонецЦикла; + +КонецПроцедуры + +Процедура ЗначениеВМассиве_Производительность3() Экспорт + + Итерация = 10000; + + Для Инд = 1 По Итерация Цикл + ЗначениеВМассиве3(1); + КонецЦикла; КонецПроцедуры @@ -463,4 +510,89 @@ КонецФункции +Функция ЗначениеВМассиве2(Значение1, + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") + + Результат = Неопределено; + + ДобавитьЗначениеВМассив(Результат, Значение10, 9); + ДобавитьЗначениеВМассив(Результат, Значение9, 8); + ДобавитьЗначениеВМассив(Результат, Значение8, 7); + ДобавитьЗначениеВМассив(Результат, Значение7, 6); + ДобавитьЗначениеВМассив(Результат, Значение6, 5); + ДобавитьЗначениеВМассив(Результат, Значение5, 4); + ДобавитьЗначениеВМассив(Результат, Значение4, 3); + ДобавитьЗначениеВМассив(Результат, Значение3, 2); + ДобавитьЗначениеВМассив(Результат, Значение2, 1); + ДобавитьЗначениеВМассив(Результат, Значение1, 0); + + Возврат Результат; + +КонецФункции + +Функция ЗначениеВМассиве3(Значение1, + Значение2 = "_!%*", + Значение3 = "_!%*", + Значение4 = "_!%*", + Значение5 = "_!%*", + Значение6 = "_!%*", + Значение7 = "_!%*", + Значение8 = "_!%*", + Значение9 = "_!%*", + Значение10 = "_!%*") + + Значения = Новый Массив(10); + Значения[0] = Значение1; + Значения[1] = Значение2; + Значения[2] = Значение3; + Значения[3] = Значение4; + Значения[4] = Значение5; + Значения[5] = Значение6; + Значения[6] = Значение7; + Значения[7] = Значение8; + Значения[8] = Значение9; + Значения[9] = Значение10; + + Для Инд = -9 По 0 Цикл + Если Значения[-Инд] <> "_!%*" Тогда + Результат = Новый Массив(1 - Инд); + Прервать; + КонецЕсли; + КонецЦикла; + + Для Инд = 0 По Результат.ВГраница() Цикл + Если Значения[Инд] <> "_!%*" Тогда + Результат[Инд] = Значения[Инд]; + Иначе + Результат[Инд] = Неопределено; + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Процедура ДобавитьЗначениеВМассив(Результат, Значение, Индекс) + + Если Результат = Неопределено И Значение = "_!%*" Тогда + Возврат; + ИначеЕсли Результат <> Неопределено И Значение = "_!%*" Тогда + Результат[Индекс] = Неопределено; + ИначеЕсли Результат <> Неопределено Тогда + Результат[Индекс] = Значение; + Иначе + Результат = Новый Массив(Индекс + 1); + Результат[Индекс] = Значение; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти From 017937b14db16e3d6eebc1d40bddd36707b68f96 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 5 Aug 2024 17:42:06 +0300 Subject: [PATCH 29/86] =?UTF-8?q?perf:=20=D0=9E=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=20=D0=B2=D1=8B=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D1=85=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 39 +++++++++++-------- .../Module.bsl" | 8 ++-- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index afd0a06e8..a6dc69d7d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -143,13 +143,13 @@ ТипИсточника = ТипЗнч(Источник); Если ЮТТипыДанныхСлужебный.ЭтоСтруктура(ТипИсточника) Тогда - Приемник = СкопироватьСтруктуру(Источник); + Приемник = СкопироватьСтруктуру(Источник, Истина); ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипИсточника) Тогда - Приемник = СкопироватьСоответствие(Источник); + Приемник = СкопироватьСоответствие(Источник, Истина); ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМассива(ТипИсточника) Тогда - Приемник = СкопироватьМассив(Источник); + Приемник = СкопироватьМассив(Источник, Истина); ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда - Приемник = СкопироватьСписокЗначений(Источник); + Приемник = СкопироватьСписокЗначений(Источник, Истина); Иначе СкопироватьПрисвоением = Истина; @@ -177,15 +177,15 @@ // // Параметры: // Источник - Структура, ФиксированнаяСтруктура - копируемая структура -// +// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов // Возвращаемое значение: // Структура - копия исходной структуры. -Функция СкопироватьСтруктуру(Источник) Экспорт +Функция СкопироватьСтруктуру(Источник, Рекурсивно = Истина) Экспорт Результат = Новый Структура; Для Каждого КлючИЗначение Из Источник Цикл - Результат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение)); + Результат.Вставить(КлючИЗначение.Ключ, ?(Рекурсивно, СкопироватьРекурсивно(КлючИЗначение.Значение), КлючИЗначение.Значение)); КонецЦикла; Возврат Результат; @@ -197,19 +197,24 @@ // Параметры: // Источник - Соответствие из Произвольный // - ФиксированноеСоответствие из Произвольный +// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов // // Возвращаемое значение: // Соответствие Из Произвольный - копия исходного соответствия. // -Функция СкопироватьСоответствие(Источник) Экспорт +Функция СкопироватьСоответствие(Источник, Рекурсивно = Истина) Экспорт Результат = Новый Соответствие; Для Каждого КлючИЗначение Из Источник Цикл - НовыйКлюч = СкопироватьРекурсивно(КлючИЗначение.Ключ); - НовоеЗначение = СкопироватьРекурсивно(КлючИЗначение.Значение); - Результат.Вставить(НовыйКлюч, НовоеЗначение); + Если Рекурсивно Тогда + НовыйКлюч = СкопироватьРекурсивно(КлючИЗначение.Ключ); + НовоеЗначение = СкопироватьРекурсивно(КлючИЗначение.Значение); + Результат.Вставить(НовыйКлюч, НовоеЗначение); + Иначе + Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + КонецЕсли; КонецЦикла; @@ -222,10 +227,11 @@ // Параметры: // Источник - Массив Из Произвольный // - ФиксированныйМассив из Произвольный +// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов // // Возвращаемое значение: // Массив Из Произвольный - копия исходного массива. -Функция СкопироватьМассив(Источник) Экспорт +Функция СкопироватьМассив(Источник, Рекурсивно = Истина) Экспорт Если НЕ ЗначениеЗаполнено(Источник) Тогда Возврат Новый Массив; @@ -235,7 +241,7 @@ Результат = Новый Массив(Размер); Для Инд = 0 По Размер - 1 Цикл - Результат[Инд] = СкопироватьРекурсивно(Источник[Инд]); + Результат[Инд] = ?(Рекурсивно, СкопироватьРекурсивно(Источник[Инд]), Источник[Инд]); КонецЦикла; Возврат Результат; @@ -246,18 +252,19 @@ // // Параметры: // Источник - СписокЗначений Из Произвольный +// Рекурсивно - Булево - Создание "глубокой" копии, с копирование вложенных элементов // // Возвращаемое значение: // СписокЗначений Из Произвольный // -Функция СкопироватьСписокЗначений(Источник) Экспорт +Функция СкопироватьСписокЗначений(Источник, Рекурсивно = Истина) Экспорт Результат = Новый СписокЗначений; Для Каждого ЭлементСписка Из Источник Цикл - НовоеЗначение = СкопироватьРекурсивно(ЭлементСписка.Значение); - Результат.Добавить(НовоеЗначение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка); + Значение = ?(Рекурсивно, СкопироватьРекурсивно(ЭлементСписка.Значение), ЭлементСписка.Значение); + Результат.Добавить(Значение, ЭлементСписка.Представление, ЭлементСписка.Пометка, ЭлементСписка.Картинка); КонецЦикла; diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index dfd04dca4..df101e779 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -633,7 +633,7 @@ КонецЦикла; Если ТестыКЗапуску.Количество() Тогда - ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор); + ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор, Ложь); ЗапускаемыйНабор.Тесты = ТестыКЗапуску; НаборыКЗапуску.Добавить(ЗапускаемыйНабор); КонецЕсли; @@ -642,7 +642,7 @@ Если НаборыКЗапуску.Количество() Тогда - ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль); + ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль, Ложь); ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску; МодулиКЗапуску.Добавить(ЗапускаемыйМодуль); @@ -674,7 +674,7 @@ КонецЦикла; Если ТестыКЗапуску.Количество() Тогда - ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор); + ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор, Ложь); ЗапускаемыйНабор.Тесты = ТестыКЗапуску; НаборыКЗапуску.Добавить(ЗапускаемыйНабор); КонецЕсли; @@ -683,7 +683,7 @@ Если НаборыКЗапуску.Количество() Тогда - ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль); + ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль, Ложь); ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску; МодулиКЗапуску.Добавить(ЗапускаемыйМодуль); From b72e34d95a9bb704225cb5ab89d5eaed591499aa Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 5 Aug 2024 23:19:51 +0300 Subject: [PATCH 30/86] =?UTF-8?q?perf(run):=20=D0=BE=D0=BF=D1=82=D0=B8?= =?UTF-8?q?=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B0=20=D0=B1=D0=B5=D0=B7=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 +- .../Module.bsl" | 59 ++++++++++++------- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index f6ca10c5f..e48b95dd0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -20,6 +20,10 @@ Процедура ВыполнитьМодульноеТестирование() Экспорт + Если НЕ ЮТПараметрыЗапускаСлужебный.ЕстьПараметрыЗапускаТестов() Тогда + Возврат; + КонецЕсли; + ПараметрыИсполнения = ПараметрыИсполнения(); ПараметрыИсполнения.АргументыЗапуска = ПараметрЗапуска; @@ -184,12 +188,12 @@ Процедура ОбработчикАнализПараметровЗапуска(ПараметрыЗапуска, ДополнительныеПараметры) Экспорт ЮТЛогирование.Информация("Анализ параметров запуска"); - ДополнительныеПараметры.ПараметрыЗапуска = ПараметрыЗапуска; Если НЕ ПараметрыЗапуска.ВыполнятьМодульноеТестирование Тогда Возврат; КонецЕсли; + ДополнительныеПараметры.ПараметрыЗапуска = ПараметрыЗапуска; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 5c9c46221..7d5dbaa3f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -49,6 +49,17 @@ КонецФункции +Функция ЕстьПараметрыЗапускаТестов() Экспорт + + Если ПустаяСтрока(ПараметрЗапуска) Тогда + Возврат Ложь; + КонецЕсли; + + ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска); + Возврат ПараметрыЗапускаПредприятия.Свойство(КлючЗапуска()); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -74,27 +85,9 @@ Возврат Параметры; КонецЕсли; - ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";"); - - ПараметрыЗапуска = Новый Структура; - - Для Каждого Пара Из ПарыКлючЗначение Цикл - - Если ПустаяСтрока(Пара) Тогда - Продолжить; - КонецЕсли; - - КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "="); - - Если КлючЗначение.Количество() = 1 Тогда - ПараметрыЗапуска.Вставить(КлючЗначение[0], Истина); - Иначе - ПараметрыЗапуска.Вставить(КлючЗначение[0], КлючЗначение[1]); - КонецЕсли; - - КонецЦикла; + ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрыЗапускаСтрокой); - ЗначениеКлючаЗапуска = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, КлючЗапуска(), Ложь); + ЗначениеКлючаЗапуска = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь); Если ТипЗнч(ЗначениеКлючаЗапуска) = Тип("Булево") Тогда @@ -122,6 +115,32 @@ КонецФункции +Функция ПараметрыЗапускаПредприятия(ПараметрыЗапускаСтрокой) + + ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";"); + + ПараметрыЗапускаПредприятия = Новый Структура; + + Для Каждого Пара Из ПарыКлючЗначение Цикл + + Если ПустаяСтрока(Пара) Тогда + Продолжить; + КонецЕсли; + + КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "="); + + Если КлючЗначение.Количество() = 1 Тогда + ПараметрыЗапускаПредприятия.Вставить(КлючЗначение[0], Истина); + Иначе + ПараметрыЗапускаПредприятия.Вставить(КлючЗначение[0], КлючЗначение[1]); + КонецЕсли; + + КонецЦикла; + + Возврат ПараметрыЗапускаПредприятия; + +КонецФункции + Функция ПрочитатьКонфигурационныйФайл(ПутьКФайлу) #Если НЕ ВебКлиент Тогда From 1e0872e8ec06d05631dcf847cab3213f29a0e6c9 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Tue, 6 Aug 2024 00:02:32 +0300 Subject: [PATCH 31/86] =?UTF-8?q?perf:=20=D0=9E=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 91 +++++++++++++------ 1 file changed, 61 insertions(+), 30 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index df101e779..881214134 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -21,6 +21,9 @@ &НаКлиенте Перем ИсполняемыеТестовыеМодули; +&НаКлиенте +Перем ДанныеПоИдентификаторам; + &НаКлиенте Перем ПараметрыЗапускаТестирования; @@ -488,6 +491,8 @@ ИсполняемыеТестовыеМодули = Результат; ПараметрыЗапускаТестирования = ПараметрыЗапуска; + ДанныеПоИдентификаторам = Новый Структура("Тесты, Наборы, Модули", Новый Соответствие, Новый Соответствие, Новый Соответствие); + Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл @@ -504,6 +509,8 @@ ЗаполнитьОшибки(СтрокаНабора, Набор); Набор.Вставить("Идентификатор", СтрокаНабора.ПолучитьИдентификатор()); + ДанныеПоИдентификаторам.Наборы.Вставить(Набор.Идентификатор, Набор); + ДанныеПоИдентификаторам.Модули.Вставить(Набор.Идентификатор, ТестовыйМодуль); Для Каждого Тест Из Набор.Тесты Цикл @@ -513,6 +520,7 @@ СтрокаТеста.Теги = СтрСоединить(Тест.Теги, ", "); Тест.Вставить("Идентификатор", СтрокаТеста.ПолучитьИдентификатор()); + ДанныеПоИдентификаторам.Тесты.Вставить(Тест.Идентификатор, Тест); КонецЦикла; @@ -613,41 +621,64 @@ Возврат МодулиКЗапуску; КонецЕсли; - Для Каждого Модуль Из ИсполняемыеТестовыеМодули Цикл + Наборы = Новый Массив; + Тесты = Новый Массив; + ЗапускаемыеМодули = Новый Соответствие(); + ЗапускаемыеНаборы = Новый Соответствие(); + + Для Каждого Идендификатор Из ВыделенныеСтроки Цикл - НаборыКЗапуску = Новый Массив(); + Если ДанныеПоИдентификаторам.Наборы[Идендификатор] <> Неопределено Тогда + Наборы.Добавить(ДанныеПоИдентификаторам.Наборы[Идендификатор]); + ЗапускаемыеМодули.Вставить(ДанныеПоИдентификаторам.Модули[Идендификатор]); + КонецЕсли; - Для Каждого Набор Из Модуль.НаборыТестов Цикл - - Если ВыделенныеСтроки.Найти(Набор.Идентификатор) <> Неопределено Тогда - НаборыКЗапуску.Добавить(Набор); - Продолжить; - КонецЕсли; - - ТестыКЗапуску = Новый Массив(); - - Для Каждого Тест Из Набор.Тесты Цикл - Если ВыделенныеСтроки.Найти(Тест.Идентификатор) <> Неопределено Тогда - ТестыКЗапуску.Добавить(Тест); - КонецЕсли; - КонецЦикла; - - Если ТестыКЗапуску.Количество() Тогда - ЗапускаемыйНабор = ЮТКоллекции.СкопироватьСтруктуру(Набор, Ложь); - ЗапускаемыйНабор.Тесты = ТестыКЗапуску; - НаборыКЗапуску.Добавить(ЗапускаемыйНабор); - КонецЕсли; - - КонецЦикла; + КонецЦикла; + + Для Каждого Идендификатор Из ВыделенныеСтроки Цикл - Если НаборыКЗапуску.Количество() Тогда - - ЗапускаемыйМодуль = ЮТКоллекции.СкопироватьСтруктуру(Модуль, Ложь); - ЗапускаемыйМодуль.НаборыТестов = НаборыКЗапуску; - МодулиКЗапуску.Добавить(ЗапускаемыйМодуль); - + Тест = ДанныеПоИдентификаторам.Тесты[Идендификатор]; + Если Тест = Неопределено Тогда + Продолжить; КонецЕсли; + ИдентификаторНабора = ДеревоТестов.НайтиПоИдентификатору(Идендификатор).ПолучитьРодителя().ПолучитьИдентификатор(); + Набор = ДанныеПоИдентификаторам.Наборы[ИдентификаторНабора]; + Модуль = ДанныеПоИдентификаторам.Модули[ИдентификаторНабора]; + + Если Набор <> Неопределено И Наборы.Найти(Набор) = Неопределено Тогда + Тесты.Добавить(Новый Структура("Тест, Набор", Тест, Набор)); + ЗапускаемыеМодули.Вставить(Модуль); + ЗапускаемыеНаборы.Вставить(Набор); + КонецЕсли; + + КонецЦикла; + + Для Каждого Набор Из ЮТКоллекции.ВыгрузитьЗначения(ЗапускаемыеНаборы, "Ключ") Цикл + Копия = ЮТКоллекции.СкопироватьСтруктуру(Набор, Ложь); + Копия.Тесты = Новый Массив; + ЗапускаемыеНаборы.Вставить(Набор, Копия); + Наборы.Добавить(Копия); + КонецЦикла; + + Для Каждого Тест Из Тесты Цикл + ЗапускаемыйНабор = ЗапускаемыеНаборы[Тест.Набор]; + ЗапускаемыйНабор.Тесты.Добавить(Тест.Тест); + КонецЦикла; + + Для Каждого Модуль Из ЮТКоллекции.ВыгрузитьЗначения(ЗапускаемыеМодули, "Ключ") Цикл + Копия = ЮТКоллекции.СкопироватьСтруктуру(Модуль, Ложь); + Копия.НаборыТестов = Новый Массив; + ЗапускаемыеМодули.Вставить(Модуль, Копия); + МодулиКЗапуску.Добавить(Копия); + КонецЦикла; + + Для Каждого Набор Из Наборы Цикл + + Модуль = ДанныеПоИдентификаторам.Модули[Набор.Идентификатор]; + ЗапускаемыйМодуль = ЗапускаемыеМодули[Модуль]; + ЗапускаемыйМодуль.НаборыТестов.Добавить(Набор); + КонецЦикла; Возврат МодулиКЗапуску; From 4ac0174f832281bc7fafc8e6b6a6d72dbd2f549c Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 5 Aug 2024 22:10:35 +0300 Subject: [PATCH 32/86] =?UTF-8?q?perf(ui):=20=D0=9E=D0=BF=D1=82=D0=B8?= =?UTF-8?q?=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20UI=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConditionalAppearance.dcssca" | 55 ------ .../Form.form" | 162 +++++++++--------- 2 files changed, 85 insertions(+), 132 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/ConditionalAppearance.dcssca" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/ConditionalAppearance.dcssca" index 6913bcce3..3283943fb 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/ConditionalAppearance.dcssca" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/ConditionalAppearance.dcssca" @@ -1,60 +1,5 @@ - - - - ДеревоТестовПрогресс - - - - - ДеревоТестов.Набор - Equal - false - - - - - Видимость - false - - - - - ru - Скрытие колонок. Тест - - - - - - - ДеревоТестовИконка - - - ДеревоТестовСостояние - - - - - ДеревоТестов.Набор - Equal - true - - - - - Видимость - false - - - - - ru - Скрытие колонок. Набор - - - diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index 1df9b1f5a..efc9a8859 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -468,20 +468,19 @@ ДеревоТестовГруппаСостояние 87 - ДеревоТестовИконка - 54 + ДеревоТестовСостояние + 48 true true true - ДеревоТестов.Иконка + ДеревоТестов.Состояние - None - ДеревоТестовИконкаРасширеннаяПодсказка - 56 + ДеревоТестовСостояниеРасширеннаяПодсказка + 50 true true @@ -495,8 +494,8 @@ - ДеревоТестовИконкаКонтекстноеМеню - 55 + ДеревоТестовСостояниеКонтекстноеМеню + 49 true true @@ -504,32 +503,39 @@ true - PictureField + InputField Enter - true Left true - - 5 + true true - true + true + true + true + true + + Arial + 8.0 + true + - ДеревоТестовСостояние - 48 + ДеревоТестовИконка + 54 true true true - ДеревоТестов.Состояние + ДеревоТестов.Иконка + None - ДеревоТестовСостояниеРасширеннаяПодсказка - 50 + ДеревоТестовИконкаРасширеннаяПодсказка + 56 true true @@ -543,8 +549,8 @@ - ДеревоТестовСостояниеКонтекстноеМеню - 49 + ДеревоТестовИконкаКонтекстноеМеню + 55 true true @@ -552,18 +558,15 @@ true - InputField + PictureField Enter - true Left true - + + 5 true true - true - true - true - true + true true @@ -596,55 +599,6 @@ true - - ДеревоТестовПрогресс - 99 - true - true - - true - - - ДеревоТестов.Прогресс - - - ДеревоТестовПрогрессРасширеннаяПодсказка - 101 - true - true - - true - - Label - true - true - - Left - - - - ДеревоТестовПрогрессКонтекстноеМеню - 100 - true - true - - true - - true - - PictureField - Enter - true - Left - true - - true - 2 - true - true - Stretch - - true true @@ -652,7 +606,7 @@ <key>ru</key> - <value>Дерево тестов группа1</value> + <value>Статус</value> 30 @@ -674,6 +628,60 @@ Vertical true + true + + + + ДеревоТестовПрогресс + 99 + + <key>ru</key> + <value>Прогресс</value> + + true + true + + true + + + ДеревоТестов.Прогресс + + + ДеревоТестовПрогрессРасширеннаяПодсказка + 101 + true + true + + true + + Label + true + true + + Left + + + + ДеревоТестовПрогрессКонтекстноеМеню + 100 + true + true + + true + + true + + PictureField + Enter + true + Left + true + + true + 2 + true + true + Stretch From 5316ee7a150522288255c32d252762870acfb232 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Tue, 6 Aug 2024 12:31:20 +0300 Subject: [PATCH 33/86] =?UTF-8?q?feat(ui):=20=D0=92=D0=BE=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D0=B5=D0=BC=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Form.form" | 6 +++- .../Module.bsl" | 34 +++++++++++++++++-- .../Form.form" | 4 +++ .../Module.bsl" | 32 +++++++++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index efc9a8859..822eae5ad 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -896,7 +896,7 @@ ДеревоТестовКонтекстноеМенюЗапуститьВыделенныеТестыРасширеннаяПодсказка - 131 + 45 true true @@ -1529,6 +1529,10 @@ OnOpen ПриОткрытии + + BeforeClose + ПередЗакрытием + Use true true diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 881214134..468cf5927 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -18,15 +18,21 @@ #Область ОписаниеПеременных +// Содержит описания исполняемыъх тестовых модулей (наборов и тестов) &НаКлиенте Перем ИсполняемыеТестовыеМодули; +// Хранит параметры запуска тестов &НаКлиенте Перем ДанныеПоИдентификаторам; &НаКлиенте Перем ПараметрыЗапускаТестирования; +// Флаг необходимости отображения вопроса перед закрытием формы +&НаКлиенте +Перем НеЗадаватьВопросПриЗакрытии; + #КонецОбласти #Область ОбработчикиСобытийФормы @@ -39,8 +45,7 @@ Иначе ЗагрузитьТестыПриОткрытии = Истина; КонецЕсли; - - + Для Каждого Формат Из ФорматыВыводаОшибки() Цикл Элементы.ФорматВыводаОшибки.СписокВыбора.Добавить(Формат.Ключ, Формат.Ключ); КонецЦикла; @@ -59,6 +64,21 @@ ПереключитьВыводОшибки(); + НеЗадаватьВопросПриЗакрытии = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если ЗавершениеРаботы Или НеЗадаватьВопросПриЗакрытии Тогда + Возврат; + КонецЕсли; + + Отказ = Истина; + Обработчик = Новый ОписаниеОповещения("ОбработкаПодтвержденияЗакрытия", ЭтотОбъект); + ПоказатьВопрос(Обработчик, "Закрыть окно работы с тестами?", РежимДиалогаВопрос.ДаНет); + КонецПроцедуры #КонецОбласти @@ -1033,4 +1053,14 @@ #КонецОбласти +&НаКлиенте +Процедура ОбработкаПодтвержденияЗакрытия(Ответ, ДополнительныеПараметры) Экспорт + + Если Ответ = КодВозвратаДиалога.Да Тогда + НеЗадаватьВопросПриЗакрытии = Истина; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" index 32d8eb4c1..3b49cf773 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" @@ -1258,6 +1258,10 @@ OnOpen ПриОткрытии + + BeforeClose + ПередЗакрытием + Use true Vertical diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index ad31f59fc..4c379b094 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -17,8 +17,15 @@ //©///////////////////////////////////////////////////////////////////////////©// #Область ОписаниеПеременных + +// Список поддерживаемых форматов отчетов &НаКлиенте Перем ПоддерживаемыеФорматыОтчетов; + +// Флаг необходимости отображения вопроса перед закрытием формы +&НаКлиенте +Перем НеЗадаватьВопросПриЗакрытии; + #КонецОбласти #Область ОбработчикиСобытийФормы @@ -51,6 +58,21 @@ Элементы.ФорматОтчета.СписокВыбора.Добавить(Формат.Ключ, Формат.Значение.Представление); КонецЦикла; + НеЗадаватьВопросПриЗакрытии = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если ЗавершениеРаботы Или НеЗадаватьВопросПриЗакрытии Тогда + Возврат; + КонецЕсли; + + Отказ = Истина; + Обработчик = Новый ОписаниеОповещения("ОбработкаПодтвержденияЗакрытия", ЭтотОбъект); + ПоказатьВопрос(Обработчик, "Закрыть окно работы с тестами?", РежимДиалогаВопрос.ДаНет); + КонецПроцедуры #КонецОбласти @@ -582,4 +604,14 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработкаПодтвержденияЗакрытия(Ответ, ДополнительныеПараметры) Экспорт + + Если Ответ = КодВозвратаДиалога.Да Тогда + НеЗадаватьВопросПриЗакрытии = Истина; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти From 5d6e09587dfe6625b7278cfad5015bc50779c4ce Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Tue, 6 Aug 2024 12:46:22 +0300 Subject: [PATCH 34/86] =?UTF-8?q?feat(ui):=20=D0=92=D1=8B=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D1=82=D1=8C=20=D0=B8=D0=BC=D1=8F=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B0=20=D0=BD=D0=B0=D0=B4=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Form.form" | 406 +++++++++++------- 1 file changed, 259 insertions(+), 147 deletions(-) diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index 822eae5ad..0af923c9d 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -462,125 +462,77 @@ - ДеревоТестовГруппаПрогресс - 102 - - ДеревоТестовГруппаСостояние - 87 - - ДеревоТестовСостояние - 48 + ДеревоТестовГруппаСостояние + 87 + + ДеревоТестовСостояние + 48 + true + true + + true + + + ДеревоТестов.Состояние + + + ДеревоТестовСостояниеРасширеннаяПодсказка + 50 true true true - - ДеревоТестов.Состояние - - - ДеревоТестовСостояниеРасширеннаяПодсказка - 50 - true - true - - true - - Label - true - true - - Left - - - - ДеревоТестовСостояниеКонтекстноеМеню - 49 - true - true - - true - - true - - InputField - Enter - Left - true - - true - true - true - true - true - true - - Arial - 8.0 - true - + Label + true + true + + Left - - - ДеревоТестовИконка - 54 + + + ДеревоТестовСостояниеКонтекстноеМеню + 49 true true true - - ДеревоТестов.Иконка - - None - - ДеревоТестовИконкаРасширеннаяПодсказка - 56 - true - true - - true - - Label - true - true - - Left - - - - ДеревоТестовИконкаКонтекстноеМеню - 55 - true - true - - true - - true - - PictureField - Enter - Left - true - - 5 - true - true - true - - + true + + InputField + Enter + Left + true + + true + true + true + true + true + true + + Arial + 8.0 + true + + + + + ДеревоТестовИконка + 54 true true true - - <key>ru</key> - <value>Дерево тестов группа состояние</value> - + + ДеревоТестов.Иконка + + None - ДеревоТестовГруппаСостояниеРасширеннаяПодсказка - 88 + ДеревоТестовИконкаРасширеннаяПодсказка + 56 true true @@ -593,10 +545,25 @@ Left - ColumnGroup - - InCell - true + + ДеревоТестовИконкаКонтекстноеМеню + 55 + true + true + + true + + true + + PictureField + Enter + Left + true + + 5 + true + true + true true @@ -606,12 +573,11 @@ <key>ru</key> - <value>Статус</value> + <value>Состояние</value> - 30 - ДеревоТестовГруппаПрогрессРасширеннаяПодсказка - 103 + ДеревоТестовГруппаСостояниеРасширеннаяПодсказка + 88 true true @@ -626,7 +592,7 @@ ColumnGroup - Vertical + InCell true true @@ -950,24 +916,126 @@ ГруппаДанныеОшибок 83 - - ФорматВыводаОшибки - 26 + + ГруппаПредставлениеТекущегоТеста + 155 + + ИконкаТекущегоТеста + 160 + true + true + + true + + + Items.ДеревоТестов.CurrentData.Иконка + + None + + ИконкаТекущегоТестаРасширеннаяПодсказка + 162 + true + true + + true + + Label + true + true + + Left + + + + ИконкаТекущегоТестаКонтекстноеМеню + 161 + true + true + + true + + true + + PictureField + Enter + true + Left + true + + 2 + 2 + 1 + 1 + + Style.FormBackColor + + + + + ПредставлениеТекущегоТеста + 152 + true + true + + true + + + Items.ДеревоТестов.CurrentData.Представление + + None + + ПредставлениеТекущегоТестаРасширеннаяПодсказка + 154 + true + true + + true + + Label + true + true + + Left + + + + ПредставлениеТекущегоТестаКонтекстноеМеню + 153 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + + Style.NormalTextFont + true + false + false + false + + + true true true - - ФорматВыводаОшибки - - - OnChange - ФорматВыводаОшибкиПриИзменении - + + <key>ru</key> + <value>Группа1</value> + - ФорматВыводаОшибкиРасширеннаяПодсказка - 24 + ГруппаПредставлениеТекущегоТестаРасширеннаяПодсказка + 156 true true @@ -980,24 +1048,13 @@ Left - - ФорматВыводаОшибкиКонтекстноеМеню - 25 - true - true - - true - - true - - RadioButtonField - Right - Enter - true - Left - true - - Tumbler + UsualGroup + + HorizontalIfPossible + true + true + Auto + DontUse @@ -1339,8 +1396,58 @@ - РаботаСОшибкой - 110 + КомандыОтображенияОшибок + 150 + + ФорматВыводаОшибки + 26 + true + true + + true + + + ФорматВыводаОшибки + + + OnChange + ФорматВыводаОшибкиПриИзменении + + + ФорматВыводаОшибкиРасширеннаяПодсказка + 24 + true + true + + true + + Label + true + true + + Left + + + + ФорматВыводаОшибкиКонтекстноеМеню + 25 + true + true + + true + + true + + RadioButtonField + Right + Enter + true + Left + true + + Tumbler + + Сравнить 112 @@ -1364,6 +1471,7 @@ Left + UsualButton Form.Command.Сравнить Auto true @@ -1382,8 +1490,8 @@ true - РаботаСОшибкойРасширеннаяПодсказка - 111 + КомандыОтображенияОшибокРасширеннаяПодсказка + 151 true true @@ -1396,9 +1504,13 @@ Left - CommandBar - + UsualGroup + Right + true + true + Auto + DontUse true From f8fc993541dc2ce5e147ec408a99ca08de111224 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Wed, 7 Aug 2024 12:46:34 +0300 Subject: [PATCH 35/86] =?UTF-8?q?feat:=20=D0=97=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D0=B0=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 78 +++-- .../Module.bsl" | 67 ++++ ...0\273\320\270\320\265\320\275\321\202.mdo" | 10 + .../Picture.svg" | 5 + ...0\274\320\277\320\276\321\200\321\202.mdo" | 8 + .../Picture.svg" | 5 + ...1\200\320\276\320\271\320\272\320\270.mdo" | 8 + .../Picture.svg" | 4 + ...0\276\320\262\320\260\321\202\321\214.mdo" | 8 + .../Picture.svg" | 6 + ...0\272\321\202\321\203\321\200\320\260.mdo" | 8 + .../src/Configuration/Configuration.mdo | 5 + .../Form.form" | 286 ++++++++++++++++-- .../Module.bsl" | 155 +++++++++- .../Module.bsl" | 59 +--- ...0\265\321\200\320\262\320\270\321\201.mdo" | 1 + 16 files changed, 609 insertions(+), 104 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202.mdo" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.mdo" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.mdo" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/Picture.svg" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 7d5dbaa3f..5af42d291 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -21,7 +21,10 @@ // ПараметрыЗапуска // Возвращает загруженные параметры запуска тестирования // Параметры: -// ПараметрыЗапускаСтрокой - Строка - Параметры запуска приложения +// ПараметрыЗапускаСтрокой - Строка - Строка с параметрами запуска. +// Содержит ключ запуска и строку с конфигурационным файлом. +// Формат строки "RunUnitTests=/путь/к/конфигурационному/файлу", +// где ключ указывается обязательно, а путь - по желанию // Обработчик - ОписаниеОповещения // // Возвращаемое значение: @@ -30,7 +33,8 @@ Попытка - Параметры = ПрочитатьПараметрыЗапуска(ПараметрыЗапускаСтрокой, Обработчик); + ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрыЗапускаСтрокой); + Параметры = ПрочитатьПараметрыЗапуска(ПараметрыЗапускаПредприятия, Обработчик); Исключение @@ -60,6 +64,26 @@ КонецФункции +Функция ПараметрыЗапускаИзФайла(ИмяФайла, Обработчик) Экспорт + + Параметры = Новый Структура(КлючЗапуска(), ИмяФайла); + Возврат ПрочитатьПараметрыЗапуска(Параметры, Обработчик); + +КонецФункции + +Функция ФайлПараметровЗапускаТестирования() Экспорт + + ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрЗапуска); + ИмяФайла = ПараметрыЗапускаПредприятия.Свойство(КлючЗапуска()); + + Если ЗначениеЗаполнено(ИмяФайла) И ТипЗнч(ИмяФайла) = Тип("Строка") Тогда + Возврат ИмяФайла; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -67,50 +91,52 @@ // ПрочитатьПараметрыЗапуска // Читает параметры из строки запуска // Параметры: -// ПараметрыЗапускаСтрокой - Строка - Строка с параметрами запуска. -// Содержит ключ запуска и строку с конфигурационным файлом. -// Формат строки "RunUnitTests=/путь/к/конфигурационному/файлу", -// где ключ указывается обязательно, а путь - по желанию +// ПараметрыЗапускаПредприятия - Структура - Структура параметров запуска предприятия полученная из `ПараметрЗапуска` // Обработчик - ОписаниеОповещения // // Возвращаемое значение: // см. ЮТФабрика.ПараметрыЗапуска -Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик) +Функция ПрочитатьПараметрыЗапуска(ПараметрыЗапускаПредприятия, Обработчик) + + ПараметрыТестирования = ЮТФабрика.ПараметрыЗапуска(); + ЗагруженныеПараметрыТестирования = ПереданныеПараметрыТестирования(ПараметрыЗапускаПредприятия); - Параметры = ЮТФабрика.ПараметрыЗапуска(); - ЮТСобытияСлужебный.УстановитьПараметрыЗапускаПоУмолчанию(Параметры); + ВыполнятьТестирование = ЮТКоллекции.ЗначениеСтруктуры(ЗагруженныеПараметрыТестирования, "ВыполнятьМодульноеТестирование", Ложь); - Если Не ЗначениеЗаполнено(ПараметрыЗапускаСтрокой) Тогда - ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметры); - Возврат Параметры; + Если ВыполнятьТестирование Тогда + ЮТСобытияСлужебный.УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыТестирования); + ДополнитьПараметрыПрочитанными(ПараметрыТестирования, ЗагруженныеПараметрыТестирования); КонецЕсли; - ПараметрыЗапускаПредприятия = ПараметрыЗапускаПредприятия(ПараметрыЗапускаСтрокой); + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметрытестирования); + Возврат Параметрытестирования; - ЗначениеКлючаЗапуска = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь); +КонецФункции + +Функция ПереданныеПараметрыТестирования(ПараметрыЗапускаПредприятия) + + ПараметрЗапускаТестов = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаПредприятия, КлючЗапуска(), Ложь); + + ТипПараметра = ТипЗнч(ПараметрЗапускаТестов); - Если ТипЗнч(ЗначениеКлючаЗапуска) = Тип("Булево") Тогда + Если ТипПараметра = Тип("Булево") Тогда - Параметры.ВыполнятьМодульноеТестирование = ЗначениеКлючаЗапуска; + Параметры = Новый Структура("ВыполнятьМодульноеТестирование, showReport, closeAfterTests"); + Параметры.ВыполнятьМодульноеТестирование = ПараметрЗапускаТестов; Параметры.showReport = Истина; Параметры.closeAfterTests = Ложь; - ИначеЕсли ТипЗнч(ЗначениеКлючаЗапуска) = Тип("Строка") Тогда + ИначеЕсли ТипПараметра <> Тип("Строка") Или НЕ ЗначениеЗаполнено(ПараметрЗапускаТестов) Тогда - Параметры.ВыполнятьМодульноеТестирование = Истина; - КонфигурационныйФайл = ЗначениеКлючаЗапуска; + Параметры = Новый Структура; - КонецЕсли; - - Если ЗначениеЗаполнено(КонфигурационныйФайл) Тогда + Иначе - ПараметрыИзФайла = ПрочитатьКонфигурационныйФайл(КонфигурационныйФайл); - ДополнитьПараметрыПрочитанными(Параметры, ПараметрыИзФайла); + Параметры = ПрочитатьКонфигурационныйФайл(ПараметрЗапускаТестов); + Параметры.Вставить("ВыполнятьМодульноеТестирование", Истина); КонецЕсли; - ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметры); - Возврат Параметры; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" new file mode 100644 index 000000000..dbfa86858 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -0,0 +1,67 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ВыбратьСохраняемыйФайл(Фильтр, ИмяФайла, Оповещение) Экспорт + + ВыбратьФайл(РежимДиалогаВыбораФайла.Сохранение, Фильтр, ИмяФайла, Оповещение); + +КонецПроцедуры + +Процедура ВыбратьЗагружаемыйФайл(Фильтр, ИмяФайла, Оповещение) Экспорт + + ВыбратьФайл(РежимДиалогаВыбораФайла.Открытие, Фильтр, ИмяФайла, Оповещение); + +КонецПроцедуры + +Процедура ВыбратьКаталог(ИмяФайла, Оповещение) Экспорт + + ВыбратьФайл(РежимДиалогаВыбораФайла.ВыборКаталога, Неопределено, ИмяФайла, Оповещение); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ПослеВыбораФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт + + Если ВыбранныеФайлы <> Неопределено Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.Оповещение, ВыбранныеФайлы[0]); + КонецЕсли; + +КонецПроцедуры + +Процедура ВыбратьФайл(Режим, Фильтр, ИмяФайла, Оповещение) + + ДиалогВыбораФайла = Новый ДиалогВыбораФайла(Режим); + + Если ЗначениеЗаполнено(Фильтр) Тогда + ДиалогВыбораФайла.Фильтр = Фильтр; + КонецЕсли; + ДиалогВыбораФайла.МножественныйВыбор = Ложь; + ДиалогВыбораФайла.ПолноеИмяФайла = ИмяФайла; + + ПараметрыОбработчика = Новый Структура("Оповещение", Оповещение); + Обработчик = Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтотОбъект, ПараметрыОбработчика); + ДиалогВыбораФайла.Показать(Обработчик); + +КонецПроцедуры + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" new file mode 100644 index 000000000..254afc9c3 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\271\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -0,0 +1,10 @@ + + + ЮТПользовательскийИнтерфейсСлужебныйКлиент + + ru + Пользовательский интерфейс + + true + true + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/Picture.svg" new file mode 100644 index 000000000..c50165162 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/Picture.svg" @@ -0,0 +1,5 @@ + + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202.mdo" new file mode 100644 index 000000000..5769d4452 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202.mdo" @@ -0,0 +1,8 @@ + + + ЮТИмпорт + + ru + Импорт + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" new file mode 100644 index 000000000..f6ef41ec4 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" @@ -0,0 +1,5 @@ + + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.mdo" new file mode 100644 index 000000000..f2e8091e2 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270.mdo" @@ -0,0 +1,8 @@ + + + ЮТНастройки + + ru + Настройки + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.svg" new file mode 100644 index 000000000..bd3c0a391 --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.svg" @@ -0,0 +1,4 @@ + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.mdo" new file mode 100644 index 000000000..0328ec8bd --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.mdo" @@ -0,0 +1,8 @@ + + + ЮТРедактировать + + ru + Редактировать + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/Picture.svg" new file mode 100644 index 000000000..1ac4a20fe --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/Picture.svg" @@ -0,0 +1,6 @@ + + + + + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260.mdo" new file mode 100644 index 000000000..a99b2f9ce --- /dev/null +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260.mdo" @@ -0,0 +1,8 @@ + + + ЮТСтруктура + + ru + Структура + + diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 4a6015a05..2d0004623 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -33,12 +33,16 @@ Subsystem.ЮТПодключаемыеМодули Subsystem.ЮТПубличный CommonPicture.ЮТЗапустить + CommonPicture.ЮТИмпорт + CommonPicture.ЮТНастройки CommonPicture.ЮТНеизвестный CommonPicture.ЮТОшибка CommonPicture.ЮТПерезапуститьУпавшие CommonPicture.ЮТПодсистема CommonPicture.ЮТПропущен + CommonPicture.ЮТРедактировать CommonPicture.ЮТСравнить + CommonPicture.ЮТСтруктура CommonPicture.ЮТУпал CommonPicture.ЮТУспешно CommonPicture.ЮТЭлементыТестов @@ -116,6 +120,7 @@ CommonModule.ЮТПодражательСлужебный CommonModule.ЮТПодражательСлужебныйВызовСервера CommonModule.ЮТПодражательСлужебныйПовтИсп + CommonModule.ЮТПользовательскийИнтерфейсСлужебныйКлиент CommonModule.ЮТПредикаты CommonModule.ЮТПредикатыСлужебныйКлиентСервер CommonModule.ЮТПреобразованияСлужебный diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index 0af923c9d..b19eaeaf2 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -228,17 +228,51 @@ Compact - - ФормаСформироватьНастройки - 17 + + ГруппаТесты + 173 + + ТестыПерезагрузить + 175 + true + true + + true + + + ТестыПерезагрузитьРасширеннаяПодсказка + 176 + true + true + + true + + Label + true + true + + Left + + + Form.Command.ТестыПерезагрузить + Auto + true + true + UserCmds + Auto + true true true + + <key>ru</key> + <value>Тесты</value> + - ФормаСформироватьНастройкиРасширеннаяПодсказка - 115 + ГруппаТестыРасширеннаяПодсказка + 174 true true @@ -251,12 +285,138 @@ Left - Form.Command.СформироватьНастройки - Auto - true - true - UserCmds - Auto + Popup + + + CommonPicture.ЮТСтруктура + + PictureAndText + + + + ГруппаПараметры + 165 + + НастройкиЗагрузить + 167 + true + true + + true + + + НастройкиЗагрузитьРасширеннаяПодсказка + 168 + true + true + + true + + Label + true + true + + Left + + + Form.Command.НастройкиЗагрузить + Auto + true + true + UserCmds + Auto + + + НастройкиРедактировать + 169 + true + true + + true + + + НастройкиРедактироватьРасширеннаяПодсказка + 170 + true + true + + true + + Label + true + true + + Left + + + Form.Command.НастройкиРедактировать + Auto + true + true + UserCmds + Auto + + + НастройкиПерезагрузить + 171 + true + true + + true + + + НастройкиПерезагрузитьРасширеннаяПодсказка + 172 + true + true + + true + + Label + true + true + + Left + + + Form.Command.НастройкиПерезагрузить + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Параметры</value> + + + ГруппаПараметрыРасширеннаяПодсказка + 166 + true + true + + true + + Label + true + true + + Left + + + Popup + + + CommonPicture.ЮТНастройки + + PictureAndText + true true @@ -1646,7 +1806,6 @@ ПередЗакрытием Use - true true Vertical true @@ -1726,7 +1885,7 @@ ru Время выполнения - 7 + 46 String @@ -1744,7 +1903,7 @@ ru Иконка - 8 + 17 Picture @@ -1761,7 +1920,7 @@ ru Ошибки - 9 + 47 ValueTable @@ -1892,7 +2051,7 @@ ru Сообщение - 10 + 57 String @@ -2070,6 +2229,24 @@ true + + ИмяФайлаПараметров + + <key>ru</key> + <value>Имя файла параметров</value> + + 132 + + String + + + + true + + + true + + Сравнить @@ -2092,21 +2269,21 @@ <associatedTableElementId>59</associatedTableElementId> </formCommands> <formCommands> - <name>СформироватьНастройки</name> + <name>НастройкиРедактировать</name> <title> <key>ru</key> - <value>Сформировать настройки</value> + <value>Редактировать настройки</value> 2 true - StdPicture.ReportSettings + CommonPicture.ЮТРедактировать - СформироватьНастройки + НастройкиРедактировать TextPicture @@ -2196,6 +2373,75 @@ TextPicture DontUse + + НастройкиЗагрузить + + <key>ru</key> + <value>Загрузить настройки</value> + + 7 + + true + + + CommonPicture.ЮТИмпорт + + + + НастройкиЗагрузить + + + TextPicture + DontUse + + + НастройкиПерезагрузить + + <key>ru</key> + <value>Перезагрузить настройки</value> + + 8 + + true + + + StdPicture.Refresh + + + + НастройкиПерезагрузить + + + DontUse + + + ТестыПерезагрузить + + <key>ru</key> + <value>Перезагрузить дерево тестов</value> + + 9 + + true + + + StdPicture.Refresh + + + + ТестыПерезагрузить + + + DontUse + + + Команда1 + 10 + + true + + DontUse + АдресХранилища diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 468cf5927..43269c532 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -45,11 +45,13 @@ Иначе ЗагрузитьТестыПриОткрытии = Истина; КонецЕсли; - + Для Каждого Формат Из ФорматыВыводаОшибки() Цикл Элементы.ФорматВыводаОшибки.СписокВыбора.Добавить(Формат.Ключ, Формат.Ключ); КонецЦикла; + ИмяФайлаПараметров = СохраненноеИмяФайлаПараметров(); + КонецПроцедуры &НаКлиенте @@ -58,11 +60,14 @@ Если ЗначениеЗаполнено(АдресОтчета) Тогда ДанныеОтчета = ДанныеОтчета(АдресОтчета); ПослеЗагрузкиТестов(ДанныеОтчета.РезультатыТестирования, ДанныеОтчета.ПараметрыЗапуска); + ИмяФайлаПараметров = ЮТПараметрыЗапускаСлужебный.ФайлПараметровЗапускаТестирования(); ИначеЕсли ЗагрузитьТестыПриОткрытии Тогда + ЗагрузитьПараметрыТестирования(); ЗагрузитьТесты(); КонецЕсли; ПереключитьВыводОшибки(); + ОбновитьЗаголовок(); НеЗадаватьВопросПриЗакрытии = Ложь; @@ -122,13 +127,6 @@ КонецПроцедуры -&НаКлиенте -Процедура СформироватьНастройки(Команда) - - ОткрытьФорму("Обработка.ЮТЮнитТесты.Форма.СозданиеНастройки", , ЭтотОбъект); - -КонецПроцедуры - &НаКлиенте Процедура ЗамерВремениВыполнения(Команда) @@ -137,6 +135,8 @@ КонецПроцедуры +#Область ЗапускТестов + &НаКлиенте Процедура ЗапуститьВсеТесты(Команда) @@ -165,6 +165,44 @@ #КонецОбласти +#Область Настройки + +&НаКлиенте +Процедура НастройкиРедактировать(Команда) + + ОткрытьФорму("Обработка.ЮТЮнитТесты.Форма.СозданиеНастройки", , ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиЗагрузить(Команда) + + Обработчик = Новый ОписаниеОповещения("ОбработчикВыбораФайлаПараметров", ЭтотОбъект); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьЗагружаемыйФайл("*.json", ИмяФайлаПараметров, Обработчик); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиПерезагрузить(Команда) + + ЗагрузитьПараметрыТестирования(); + + Обработчик = Новый ОписаниеОповещения("ОбработчикВопросаПерезагрузитьТесты", ЭтотОбъект); + ПоказатьВопрос(Обработчик, "Перезагрузить тесты?", РежимДиалогаВопрос.ДаНет); + +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура ТестыПерезагрузить(Команда) + + ЗагрузитьТесты(); + +КонецПроцедуры + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции #Область ВыводОтчета @@ -499,9 +537,13 @@ &НаКлиенте Процедура ЗагрузитьТесты() - ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); - Обработчик = Новый ОписаниеОповещения("ПослеЗагрузкиТестов", ЭтотОбъект, ПараметрыЗапуска); - ЮТИсполнительСлужебныйКлиент.ЗагрузитьИсполняемыеТесты(ПараметрыЗапуска, Обработчик); + Если ПараметрыЗапускаТестирования = Неопределено Тогда + ПараметрыЗапускаТестирования = ЮТФабрика.ПараметрыЗапуска(); + КонецЕсли; + + Обработчик = Новый ОписаниеОповещения("ПослеЗагрузкиТестов", ЭтотОбъект, ПараметрыЗапускаТестирования); + ЮТИсполнительСлужебныйКлиент.ЗагрузитьИсполняемыеТесты(ПараметрыЗапускаТестирования, Обработчик); + ПоказатьОповещениеПользователя("Дерево тестов", , "Тесты загружены", БиблиотекаКартинок.ЮТСтруктура); КонецПроцедуры @@ -512,6 +554,7 @@ ПараметрыЗапускаТестирования = ПараметрыЗапуска; ДанныеПоИдентификаторам = Новый Структура("Тесты, Наборы, Модули", Новый Соответствие, Новый Соответствие, Новый Соответствие); + ДеревоТестов.ПолучитьЭлементы().Очистить(); Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл @@ -1063,4 +1106,94 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработчикВыбораФайлаПараметров(ИмяФайла, ДополнительныеПараметры) Экспорт + + ИмяФайлаПараметров = ИмяФайла; + ЗагрузитьПараметрыТестирования(); + СохранитьИмяФайлаПараметров(ИмяФайлаПараметров); + + Обработчик = Новый ОписаниеОповещения("ОбработчикВопросаПерезагрузитьТесты", ЭтотОбъект); + ПоказатьВопрос(Обработчик, "Перезагрузить тесты?", РежимДиалогаВопрос.ДаНет); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикВопросаПерезагрузитьТесты(Ответ, ДополнительныеПараметры) Экспорт + + Если Ответ = КодВозвратаДиалога.Да Тогда + ЗагрузитьТесты(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьЗаголовок() + + ЗаголовокПоУмолчанию = "YAxUnit"; + + Если ЗначениеЗаполнено(ИмяФайлаПараметров) Тогда + Заголовок = СтрШаблон("%1: %2", ЗаголовокПоУмолчанию, ИмяФайлаПараметров); + Иначе + Заголовок = ЗаголовокПоУмолчанию; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузитьПараметрыТестирования() + + Если ЗначениеЗаполнено(ИмяФайлаПараметров) Тогда + ПараметрыЗапускаТестирования = ЮТПараметрыЗапускаСлужебный.ПараметрыЗапускаИзФайла(ИмяФайлаПараметров, Неопределено); + ПоказатьОповещениеПользователя("Настройки тестирования", , "Настройки загружены", БиблиотекаКартинок.ЮТНастройки); + ОбновитьЗаголовок(); + КонецЕсли; + +КонецПроцедуры + +#Область СохраняемыеПараметры + +&НаСервереБезКонтекста +Функция СохраненноеИмяФайлаПараметров() + + Возврат ЗначениеИзХранилищаОбщихНастроек(КлючОбъекта(), КлючИмяФайлаПараметров()); + +КонецФункции + +&НаСервереБезКонтекста +Процедура СохранитьИмяФайлаПараметров(Знач ИмяФайла) + + ХранилищеОбщихНастроек.Сохранить(КлючОбъекта(), КлючИмяФайлаПараметров(), ИмяФайла); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ЗначениеИзХранилищаОбщихНастроек(Знач КлючОбъекта, Знач КлючНастройки, Знач ОжидаемыйТип = Неопределено) + + Значение = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастройки); + + Если ОжидаемыйТип <> Неопределено Тогда + Значение = ОжидаемыйТип.ПривестиЗначение(Значение); + КонецЕсли; + + Возврат Значение; + +КонецФункции + +&НаСервереБезКонтекста +Функция КлючИмяФайлаПараметров() + + Возврат "ИмяФайлаПараметров"; + +КонецФункции + +&НаСервереБезКонтекста +Функция КлючОбъекта() + + Возврат "YAxUnit"; + +КонецФункции + +#КонецОбласти + #КонецОбласти diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index 4c379b094..ee05da949 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -82,15 +82,16 @@ &НаКлиенте Процедура ФайлКонфигурацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - ВыбратьФайл("*.json|*.json", ФайлКонфигурации, Новый ОписаниеОповещения("УстановитьФайлКонфигурации", ЭтотОбъект)); + Обработчик = Новый ОписаниеОповещения("УстановитьФайлКонфигурации", ЭтотОбъект); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьСохраняемыйФайл("*.json|*.json", ФайлКонфигурации, Обработчик); КонецПроцедуры &НаКлиенте Процедура КаталогПроектаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "КаталогПроекта"); - ВыбратьКаталог(КаталогПроекта, Оповещение); + Обработчик = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "КаталогПроекта"); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьКаталог(КаталогПроекта, Обработчик); КонецПроцедуры @@ -111,16 +112,16 @@ &НаКлиенте Процедура ВыводЛогаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаЛога"); - ВыбратьФайл("*.log|*.log|*.txt|*.txt|All files(*.*)|*.*", ИмяФайлаЛога, Оповещение); + Обработчик = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаЛога"); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьСохраняемыйФайл("*.log|*.log|*.txt|*.txt|All files(*.*)|*.*", ИмяФайлаЛога, Обработчик); КонецПроцедуры &НаКлиенте Процедура ИмяФайлаКодаВозвратаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаКодаВозврата"); - ВыбратьФайл("All files(*.*)|*.*", ИмяФайлаКодаВозврата, Оповещение); + Обработчик = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаКодаВозврата"); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьСохраняемыйФайл("All files(*.*)|*.*", ИмяФайлаКодаВозврата, Обработчик); КонецПроцедуры @@ -133,11 +134,11 @@ Возврат; КонецЕсли; - Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаОтчета"); + Обработчик = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаОтчета"); Если ОписаниеФормата.ЗаписьВКаталог Тогда - ВыбратьКаталог(ИмяФайлаОтчета, Оповещение); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьКаталог(ИмяФайлаОтчета, Обработчик); Иначе - ВыбратьФайл(ОписаниеФормата.ФильтрВыбораФайла, ИмяФайлаОтчета, Оповещение); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьСохраняемыйФайл(ОписаниеФормата.ФильтрВыбораФайла, ИмяФайлаОтчета, Обработчик); КонецЕсли; КонецПроцедуры @@ -188,7 +189,7 @@ Если ПустаяСтрока(ФайлКонфигурации) Тогда Обработчик = Новый ОписаниеОповещения("СохранитьПараметрыПослеВыбораФайла", ЭтотОбъект); - ВыбратьФайл("*.json|*.json", ФайлКонфигурации, Обработчик); + ЮТПользовательскийИнтерфейсСлужебныйКлиент.ВыбратьСохраняемыйФайл("*.json|*.json", ФайлКонфигурации, Обработчик); Иначе СохранитьПараметрыПослеВыбораФайла(ФайлКонфигурации); КонецЕсли; @@ -436,42 +437,6 @@ КонецПроцедуры -&НаКлиенте -Процедура ВыбратьФайл(Фильтр, ИмяФайла, Оповещение) - - ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); - ДиалогВыбораФайла.Фильтр = Фильтр; - ДиалогВыбораФайла.МножественныйВыбор = Ложь; - ДиалогВыбораФайла.ПолноеИмяФайла = ИмяФайла; - - ПараметрыОбработчика = Новый Структура("Оповещение", Оповещение); - Обработчик = Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтотОбъект, ПараметрыОбработчика); - ДиалогВыбораФайла.Показать(Обработчик); - -КонецПроцедуры - -&НаКлиенте -Процедура ВыбратьКаталог(ИмяФайла, Оповещение) - - ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); - ДиалогВыбораФайла.МножественныйВыбор = Ложь; - ДиалогВыбораФайла.ПолноеИмяФайла = ИмяФайла; - - ПараметрыОбработчика = Новый Структура("Оповещение", Оповещение); - Обработчик = Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтотОбъект, ПараметрыОбработчика); - ДиалогВыбораФайла.Показать(Обработчик); - -КонецПроцедуры - -&НаКлиенте -Процедура ПослеВыбораФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт - - Если ВыбранныеФайлы <> Неопределено Тогда - ВыполнитьОбработкуОповещения(ДополнительныеПараметры.Оповещение, ВыбранныеФайлы[0]); - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Процедура СохранитьКонфигурациюЗапуска() diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index d494eb644..8bd8c0c51 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -41,6 +41,7 @@ CommonModule.ЮТОтчетСлужебныйКлиентСервер CommonModule.ЮТПодключаемыеМодулиСлужебный CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера + CommonModule.ЮТПользовательскийИнтерфейсСлужебныйКлиент CommonModule.ЮТПроверкиСлужебный CommonModule.ЮТРазрешениеЗависимостейСлужебныйВызовСервера CommonModule.ЮТРазрешениеЗависимостейСлужебныйКлиент From dbfe311da186c7352d434d653155acd21b89e36e Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Thu, 8 Aug 2024 21:22:24 +0300 Subject: [PATCH 36/86] feat(ui): convert pictures to png --- .../yaxunit/src/CommonPictures/convert-to-png.sh | 1 + .../Picture.png" | Bin 0 -> 493 bytes .../Picture.png" | Bin 0 -> 305 bytes .../Picture.png" | Bin 0 -> 693 bytes .../Picture.png" | Bin 0 -> 405 bytes .../Picture.png" | Bin 0 -> 450 bytes .../Picture.png" | Bin 0 -> 558 bytes .../Picture.png" | Bin 0 -> 458 bytes .../Picture.png" | Bin 0 -> 475 bytes .../Picture.png" | Bin 0 -> 271 bytes .../Picture.png" | Bin 0 -> 486 bytes .../Picture.png" | Bin 0 -> 518 bytes .../Picture.png" | Bin 0 -> 356 bytes .../Picture.png" | Bin 0 -> 1500 bytes 14 files changed, 1 insertion(+) create mode 100644 exts/yaxunit/src/CommonPictures/convert-to-png.sh create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\230\320\274\320\277\320\276\321\200\321\202/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\270\321\202\321\214/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\320\260/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\320\277\320\260\320\273/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.png" create mode 100644 "exts/yaxunit/src/CommonPictures/\320\256\320\242\320\255\320\273\320\265\320\274\320\265\320\275\321\202\321\213\320\242\320\265\321\201\321\202\320\276\320\262/Picture.png" diff --git a/exts/yaxunit/src/CommonPictures/convert-to-png.sh b/exts/yaxunit/src/CommonPictures/convert-to-png.sh new file mode 100644 index 000000000..3acabc82e --- /dev/null +++ b/exts/yaxunit/src/CommonPictures/convert-to-png.sh @@ -0,0 +1 @@ +inkscape --export-type="png" **/*.svg \ No newline at end of file diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..b0d0a2d3080f5bb2c2a367c183e6868a894c3f7f GIT binary patch literal 493 zcmVpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10eVS9 zK~yM_V`N}pU{LCIaN*_P%=+@<%c{F2hgUK%GW=&C0GJsV7#PGnmCqO2CK){b_`-wx zuw*!oqr{o_dmcX{q?tjX%jW;5KcD}9{PXGm(n}lu=}+|hrZv%ZwL+JJ1TH;H$Q(un zMh0IkXU1J=i#cNr0{l5xnD43gI<+V?IB?+A2m_p~>LE^@^!4NSFPA_4{t`n_Y`M1Yf9L)gKmIWM-TLFt z-`odf2VP(^oP~jbfq|Ws{nN^eTltn>*!1PqmpAvm{rH-Eul(p4eBNMWU|?WS?zVH{ j=HSly`s2$QViP$4!s(anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt=mJT^vI!dXp0*iWHVFIHSjy;VJ@Bf?AwCn$g#3sffu2=tri+Eq^E!fWJuW->-Dxt-2(`TtY z5;OmuO-M+XaCGSpd*;KpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10zyed zK~y-6m6J_N)KM74f9L-)85n^i;RmQdvWSv!QCk;5JFOrvNf^wjVA@Ps&YdC2l~7|^ z2!)FwHKr$Pj)m@x>?s<8xs554!?2Yjm%#HyP z%w4-O&@IU}V*PpqeysTvFEA_06j*f0!TWe@2Sot`{eMPoEz*h%Q z3S@JaFAw}$2WPXnwsN4piUfbs4ffAhiC3H(omChs;p?y$^TQe7XVJ*4Uv|Ue`^?u{ zm32hMQ4zg!!xMXJQet5S_!;xVM_wuw|1C2I^f>2Ym1xUnfv;9tK4iro2Qj{havy+m zE+$hCB9ltRe|z=3R%BNis&-X7x3skUw+r6L$ldKGIbg~;S6KIq*rQ;_2ZcL60=pF1 zBtSeKFPdx$BRw*5ce_`JiYI`kP^4=a4EE0(eml}j&G1Ms-&K~Ep)DmE6I3TF6oqW1Ai;Q-ELG^ehBIWf+}tzJ(xHb0JQGfd0}C3 zc^Zov@YM(!BeWdQ3!uPmfex6gi^%@2uW}{dI+Gn9J8AGhri%b3yNT&^`s%>+Mr>Vz b&3xy7iNphp1J%2y00000NkvXXu0mjfjZQBC literal 0 HcmV?d00001 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\265\320\270\320\267\320\262\320\265\321\201\321\202\320\275\321\213\320\271/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..3909d6c9b73def3132b2ab648560a724f4c75555 GIT binary patch literal 405 zcmV;G0c!qpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10U}96 zK~y-6#gV^Cf>9WUpZDYFRD+S)5O@P_UP0H;4YUQ7UqcWil1I>?B_ecb=nf(%*P@0Z zh_;%d!7->-6FuMC6v+3_aOpQ5p7%Mw_Z;}|NZg@4I9|qiJEBqn9fREK$Q)U_{xMb1 zYIRCZcm(pm05CuX=x2mVt+w?!$$Mde6Ws>#qV#g}K`!fgMbKxUG*Vd$^Cr??xkGp- zpy&Jk5EwSwom-#`TAV6q)T?Kam6TNkROBJdM^>0jv)x^B!V|)h!f9h~<2=m7{sMrt z-8sqX8%jY`s{8fLP8^rqz_>C>0k}#UhPX%kH5&$j<3v<$5-&+>5PW~Vh)U1M=z1oB zmtEXN^kR&;oJpX8^Z`|PO%tTX+QWsJhyR)%3Nu|ompdIq00000NkvXXu0mjfX`HMQ literal 0 HcmV?d00001 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\236\321\210\320\270\320\261\320\272\320\260/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..8d69b93c99cf250c9869084b8017fb21a799ef4e GIT binary patch literal 450 zcmV;z0X_bSP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10Z&Op zK~y-6t&qJ=0#Oi!zqwZo7Sd^u*onr*#OPx{r>KpE#26cR7-@)sSWqa@*oaSJgGL%c zqCp#^5|$kccafjn!szMl+?ns38Tg}QvhaF%y6E_@GG<6TiH1F^uZp#z#tR7< sjuupGPDN6{npb`TYGS0|JO7)$0QAdrK7jyaX8-^I07*qoM6N<$f*DW0RsaA1 literal 0 HcmV?d00001 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..83f9e8c86873c70ba8ce74eca14e98120a6fa52f GIT binary patch literal 558 zcmV+}0@3}6P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10lP^= zK~yM_oshw66HySxzj?chZG%W7mFAFikz7=SNRQcEJXI~yLTUOBR4=A@u#G|+(o2k? z3a!^3iaiu86hY~s6k6IQSMg#*P}J$7aJQ2E5vN+YF6@=z}L32N&~J#1A~x_`2uJ6sHJS zmI9^7;Ze+)-cKpNU=8|%E!i^%i_APFBsK>Y;y3>Ch4{^mAOJY&;syw}Ns85IF43nv zXeF9U^y!_zN^)|z{#ND%BdAH*(kCv>#<_e%U}nQ3-;I^z0n^=2)1|5}_+59Ow{yM!f~r3{3{~v({;Pj)WRUs9%674)zTW*>RqcQ)!fIeE z*29H(NGB{YA!tav18@xhs`qCVNQ81b7XZLaPc@=4h`t4C$3q&#T>C*Vol>ADd0q|i wyAc2?6L)S2aE2L|iSXW&JRg3!yxH#m2JJGg77fdBvi literal 0 HcmV?d00001 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\321\200\320\276\320\277\321\203\321\211\320\265\320\275/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..50c5865de0a7759587f250d36c02c0a7930f96ee GIT binary patch literal 458 zcmV;*0X6=KP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ar;x zK~y-6rIXJ}0#Ovkf9KA$GV)IgK``hMBnXO#1g%w>w(K?RDe5&^tF;m(A)-YgJwi|v zD5Pn+a%OG|r$3B$qUh}I<@lEE6C->cU&8TP2&w4@ z&)6y}yZwitR?WcGL>kAt01~)*6OnZwisN1Cv*_}V33N4)M!PLw5l?T+!SHt4PAr3` z8^8#Qtn3Z$XAHvNubG%l)Nfz_DZJi+%QW$p-YYXTBOYCSx-jU+)W(E#hBY^Dp9uX@GynxidC-LEC5C+371e2iD#E0L4 zu+abl$D|S9DeRbx2GiJ)B(7bazT9Iejk+e?JBXCLz1U3h8~^|S07*qoM6N<$g3DyU AF8}}l literal 0 HcmV?d00001 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\240\320\265\320\264\320\260\320\272\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..061d98af7c839552948bee7a6e00f7b4e01863fa GIT binary patch literal 475 zcmV<10VMv3P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10cc4? zK~y-6&5_Sa0#OvkzjGCX+O>*$fOah+)KwDm8ZFE~q8xOfa3R`dCMx-d|){74`&@=f2gCvM`28y~N!vL^i8ZM7nVUJg;H9%v~?4S z#vU1b8ICTr1?Zd@HK$~r`Wk$~C@2z|Q!?8C@NnOH4o6}g5MKbi=aj5{x4-XanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*#rT^vI!daq8p$a~0u$K|}J z^wR&SOG_ApjTmA(|6QJHu}{Y|bA_OX$KLraekJLr`3poAUHbiba*BTD%uOvTwru`d z7bVVdX6}QydL{7IA|5IOh@P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10dq-2 zK~y-6#gZ{@6G0e-zc;&BLAxhNEZSTkMcj}+HOdW8P`rUjC?U=!q%_$OOyM(txC2PB zQqYq=a=3uKkr1ArhP4-gvJDbXnquC(|C^`LsQWbElnXW??)UrC#s&aUh!hkS1%gvqrmFTk zJ9(;@hf+u?&zT#apXVd(`oqF7{|DN*TDn)Rm1Qcm!WY5nUou5(*kgnr6vuBWKg;rE z;xNAbo^C{~AcIwYxRt>mzo{}^f8ZsZI3O|XTOB+PMzb`?lHa_=JKX@u|NltJeD7Ll zWM&^~*fz$goa=-zlhDYpJ(pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10h38Y zK~y-6rIJ5S6JZ?3KfkjEm)7e5Z$NaGggUr8!HCR_H#8xUMQ-3Vv^O!34rl79Aui&? z&fvitAmt4hk`}uVu=jPir_Ws~D8}FTJkR&<^Mn5!n?HEDGg-Q3x^1uqJaxxsn7%$# zZSS~O|9&UIi+KE6A_eMq2u>v4oFw7FZv+nf@itd;BZ;riPlmq+j z&df+xb|;IT;F{_7%(mbt>xEmGA_vSdMOiQ05*#_gM(yV3TTfuHUQz3`;!!*6HV2p@ zOi|Wt4qEZ34Rp$9whmBp1W#1n1jyd6?u-|*ZrBHC#iKT|bSCI#**g$a@I_I9bXB$% zTye`A?*KRlp8LW~(YIdngR@Q6eLQHzqepWt&b z4bve|HyFCMI~BDY=o`FJk^M4PuzZ>{F8tE0z8i0t@ripZ64FMNG(VRSfRiLVkk|x% z`~iGf1^WoqS=pT|7E5Al2G0sf&M+P3`GdXFq;c^VhyOOe0Pj+%vt4nJI{*Lx07*qo IM6N<$f?{vt)&Kwi literal 0 HcmV?d00001 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.png" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\243\321\201\320\277\320\265\321\210\320\275\320\276/Picture.png" new file mode 100644 index 0000000000000000000000000000000000000000..3158068d621793b96872729d94caef16586056a2 GIT binary patch literal 356 zcmV-q0h|7bP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10P#sg zK~y-6)sL}G0zni-&zm8ZBov4rVMigMqoT7hBNDZD!yiaPqko{WGA4$ALo78x8(Mq+ zLMmFFc@|=_$-2T;##_$hoO>Vq`$$n>Z`9i{aB3v9Qc?8M|eqO6x!O8+o%=#(8I*ceXJ2C;0>^3vV+m$>FR300002P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11!+k{ zK~z|U&6rzkR8HZndlxvF9%Qrq4c3o3|Te zeP&#Ti!c?q9{7J5sNvuckOiPqq$%2}E*9O@YcR|M>I)Gb=N_xTB-SZ%82HtTXJE7# zGh^cX`1Efhfff&1^v~K;8FedLN~=`N)Ixe0OxW63eKi&@0%d9Op+E^`&Kdx5F*;km zLU=*L)m3S{ZbatEqPE@H!hU*g04XzY?Iw4`LGKn+f^OFmQGGw?#x>>!Ru=mZ<;y8| zN}XpwhI_M2!uYHuN2Z+GRjht4*jPLUas|R?S-Dnm*C)^ZvSzWboO9|!4=FuxR6k6N!5*bJsOSVm=wYd=j_6uyzhzdhh zxyv%#1QchWa&P_5b+@F44CI(0ycfuDmsE=_Iwifc!w0X4u@gx5KE>EgavmTwb0xKA9 z`<$@AkQ_8)e6sAFQ7upRr-m1L4b%>4YA@2fGtkd^FB4D1A|sXpOZ%svACB$6+9=N| z_;T^Ym|uZC16ljL4AO&*!&4KRFZqN^HBowj7bl_86QA~Xj*lAs!=M=`$U#MMNX!b( z@7z(y8busbCvfgKllN8b@Dw`WWWkfeK*0v-2I@3i{dGUqk3po*Z+KBRuruh!Uk06v zQd)?ZoIWErS(sPT!bx(y%0WRF-eAE-{VySjLx|-4s&X!L4aR=YD;skI^Tsu6WJtVw zm=`A<$Ly0m+vi?#Jgdfof?U%V-$2T;twB3m3&B4$`TJ23RJ_^%0000 Date: Thu, 8 Aug 2024 21:48:51 +0300 Subject: [PATCH 37/86] =?UTF-8?q?doc:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D0=BD=D1=88=D0=BE?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/images/report-ui.png | Bin 192159 -> 198364 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/documentation/docs/images/report-ui.png b/documentation/docs/images/report-ui.png index 12d9e46b93af71d856672288590a97760549e2f1..5de05d992bfe47fa195f796e642b43cf0ff8932a 100644 GIT binary patch literal 198364 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 z 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 z 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%0Dm84MatS=(yFeLl5lW|X> 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 literal 192159 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 From 78b137a2869a98e2cc33fec6340c1a80aad295ce Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Fri, 9 Aug 2024 00:30:30 +0300 Subject: [PATCH 38/86] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BE=20=D1=82=D0=B5=D0=BA=D1=83=D1=89=D0=B5=D0=BC=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=B5/=D0=BD=D0=B0=D0=B1=D0=BE=D1=80=D0=B5/?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/events.md | 8 ++ .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 8 +- .../Module.bsl" | 18 +-- .../Module.bsl" | 6 +- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 2 +- .../Module.bsl" | 6 +- .../Module.bsl" | 26 ++-- .../Module.bsl" | 129 ++++++++++++++++++ .../Module.bsl" | 88 +++--------- .../Module.bsl" | 33 +++++ .../Module.bsl" | 64 ++++++++- 16 files changed, 289 insertions(+), 113 deletions(-) diff --git a/documentation/docs/features/events.md b/documentation/docs/features/events.md index e81c8b366..558b614ca 100644 --- a/documentation/docs/features/events.md +++ b/documentation/docs/features/events.md @@ -53,6 +53,14 @@ sidebar_position: 6 КонецПроцедуры ``` +Также внутри событий можно получить информацию о текущем тесте, наборе или модуле. + +```bsl +ОписаниеТеста = ЮТест.ОписаниеТекущегоТеста(); +ОписаниеНабора = ЮТест.ОписаниеТекущегоТестовогоНабора(); +ОписаниеМодуля = ЮТест.ОписаниеТекущегоТестовогоМодуля(); +``` + ## События в движке YAxUnit также использует события для работы внутренних механизмов: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 9dac1a2f8..e1ced1cfe 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -21,7 +21,7 @@ // Разрешить зависимости. // // Параметры: -// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // Обработчик - ОписаниеОповещения Процедура РазрешитьЗависимости(ТестовыеМодули, Обработчик) Экспорт diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index c7eeda147..06f9151ae 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -26,7 +26,7 @@ // ИдентификаторТестовогоМодуля - Строка - Идентификатор тестового модуля, см. ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов // // Возвращаемое значение: -// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов +// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов Функция ВыполнитьГруппуНаборовТестов(Знач ИдентификаторыТестовыхНаборов, Знач ИдентификаторТестовогоМодуля) Экспорт Хранилище = ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов(); @@ -45,7 +45,7 @@ // Сохранить информацию о тестовых сценариях. // // Параметры: -// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля Процедура СохранитьИнформациюОТестовыхСценариях(Знач ТестовыеМодули) Экспорт ЮТИсполнительСлужебныйСервер.СохранитьИнформациюОТестовыхСценариях(ТестовыеМодули); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index e48b95dd0..57d07ab9d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -336,7 +336,7 @@ Функция ИсполняемыйТестовыйМодуль(ТестовыйМодуль) - ИсполняемыйТестовыйМодуль = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль); + ИсполняемыйТестовыйМодуль = ЮТФабрикаСлужебный.НовоеОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль); КонтекстыПриложения = ЮТФабрикаСлужебный.КонтекстыПриложения(); КонтекстыМодуля = ЮТФабрикаСлужебный.КонтекстыМодуля(ТестовыйМодуль.Метаданные); @@ -388,14 +388,14 @@ Для Каждого Контекст Из Тест.КонтекстВызова Цикл Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда - ИсполняемыйНабор = ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор); + ИсполняемыйНабор = ЮТФабрикаСлужебный.НовоеОписаниеИсполняемогоНабораТестов(ТестовыйНабор); ИсполняемыйНабор.Режим = Контекст; НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор); Иначе ИсполняемыйНабор = НаборыКонтекстов[Контекст]; КонецЕсли; - ИсполняемыйТест = ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); + ИсполняемыйТест = ЮТФабрикаСлужебный.НовоеОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); Если Тест.Свойство("Ошибки") И Тест.Ошибки.Количество() > 0 Тогда ИсполняемыйТест.Ошибки = ЮТКоллекции.СкопироватьМассив(Тест.Ошибки); КонецЕсли; @@ -456,7 +456,7 @@ // Записать код возврата. // // Параметры: -// РезультатыТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// РезультатыТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // Параметры - см. ЮТФабрика.ПараметрыЗапуска Процедура ЗаписатьКодВозврата(РезультатыТестирования, Параметры) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 6baee4f3d..c3ed27fb2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -20,11 +20,11 @@ // Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер) // Параметры: -// Наборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // // Возвращаемое значение: -// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении +// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт Если Наборы.Количество() = 0 Тогда @@ -63,7 +63,7 @@ // Возвращает идентификатор тестового модуля. // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // // Возвращаемое значение: // Строка @@ -76,8 +76,8 @@ // Возвращает идентификатор тестового набора. // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля -// ТестовыйНабор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыйНабор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов // // Возвращаемое значение: // Строка - Идентификатор тестового набора @@ -90,9 +90,9 @@ // Возврашает мдентификатор теста. // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля -// ТестовыйНабор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// ТестовыйНабор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста // // Возвращаемое значение: // Строка - Идентификатор теста diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 26f4edad3..7604f36f3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -240,9 +240,9 @@ // // Возвращаемое значение: // - Неопределено -// - См. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// - См. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// - См. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// - См. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// - См. ЮТФабрика.ОписаниеИсполняемогоТеста Функция КонтекстИсполненияТекущегоУровня() Экспорт Уровни = ЮТФабрика.УровниИсполнения(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index f46829346..57e1b4df0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -157,7 +157,7 @@ // Обработка события "ПослеФормированияИсполняемыхНаборовТестов" // Параметры: -// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов +// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт Количество = 0; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d2d5d568b..99d802cc8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JSON\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -34,7 +34,7 @@ // Формирует отчет в формате JSON // // Параметры: -// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета // Возвращаемое значение: // ДвоичныеДанные - Данные отчета diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index be6dc7f9e..ca237855e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -34,7 +34,7 @@ // Формирует отчет в формате jUnit // // Параметры: -// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // Формат - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета // // Возвращаемое значение: @@ -53,7 +53,7 @@ // Формирует отчет (xml-файл) и возвращает его в виде двоичных данных // // Параметры: -// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // Возвращаемое значение: // ДвоичныеДанные - полученный отчет Функция СформироватьОтчетОТестировании(РезультатТестирования) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 203bf989c..d4e7d158d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -21,7 +21,7 @@ // СформироватьОтчет // Формирует отчет о результатах тестирования по заданным параметрам // Параметры: -// РезультатВыполнения - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// РезультатВыполнения - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // ПараметрыЗапуска - Структура - Параметры запуска, см. ЮТФабрика.ПараметрыЗапуска // Обработчик - ОписаниеОповещения Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index db58b8ae2..e3717a9cb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -60,7 +60,7 @@ // Регистрирует ошибку выполнения теста // Параметры: -// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста // Ошибка - ИнформацияОбОшибке Процедура ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка) Экспорт @@ -80,7 +80,7 @@ // Регистрирует ошибку выполнения теста // Параметры: -// Объект - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста // Сообщение - Строка Процедура ЗарегистрироватьПростуюОшибкуВыполнения(Объект, Сообщение) Экспорт @@ -91,7 +91,7 @@ // Регистрирует ошибку режима выполнения теста // Параметры: -// Объект - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// Объект - см. ЮТФабрика.ОписаниеИсполняемогоТеста // Ошибка - Строка Процедура ЗарегистрироватьОшибкуРежимаВыполнения(Объект, Ошибка) Экспорт diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 0605ce34c..1c8dcad51 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -93,8 +93,8 @@ // Вызов события "ПередТестовымНабором" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов Процедура ПередТестовымНабором(ТестовыйМодуль, Набор) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); @@ -105,9 +105,9 @@ // Вызов события "ПередКаждымТестом" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); @@ -118,9 +118,9 @@ // Вызов события "ПослеКаждогоТеста" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); @@ -131,8 +131,8 @@ // Вызов события "ПослеТестовогоНабора" // // Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов Процедура ПослеТестовогоНабора(ТестовыйМодуль, Набор) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); @@ -154,7 +154,7 @@ // Перед выполнением тестов. // // Параметры: -// ИсполняемыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// ИсполняемыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // Отказ - Булево - Отказ от загрузки тестов из модуля Процедура ПередВыполнениемТестов(ИсполняемыеМодули, Отказ) Экспорт @@ -171,7 +171,7 @@ // После выполнения тестов. // // Параметры: -// РезультатТестирования - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// РезультатТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования); @@ -236,7 +236,7 @@ // Вызов события "ПослеФормированияИсполняемыхНаборовТестов" // Параметры: -// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов +// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 75e7bce85..d92a453c8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -318,6 +318,129 @@ КонецФункции +#Область СтруктурыДанных + +// Описание исполняемого тестового модуля. +// Содержит всю необходимую информацию для прогона тестов, а также данные результата +// +// Возвращаемое значение: +// Структура - Описание тестового модуля: +// * Метаданные - см. ОписаниеМетаданныеМодуля +// * Теги - Массив из Строка - Коллекция тегов набора +// * НаборыТестов - Массив из см. ОписаниеИсполняемогоНабораТестов +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки +// * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Зависимости- Массив Из см. НовоеОписаниеЗависимости - Зависимости тестового модуля +Функция ОписаниеИсполняемогоТестовогоМодуля() Экспорт + + Описание = БазовоеОписаниеИсполняемогоОбъекта(); + + Описание.Вставить("Метаданные"); + Описание.Вставить("НаборыТестов"); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// ОписаниеИсполняемогоНабораТестов +// Возвращает описание исполняемого тестового набора. +// Содержит данные необходимые для выполнения прогона тестов +// +// Возвращаемое значение: +// Структура - Описание исполняемого набора тестов: +// * Имя - Строка - Имя набора +// * Представление - Строка - Представление набора +// * Теги - Массив из Строка - Тэги набора +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста +// * Режим - Строка - Режим исполнения набора, см. ЮТФабрика.КонтекстыВызова +// * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора +// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) +// * ДатаСтарта - Число - Дата запуска набора +// * Длительность - Число - Продолжительность выполнения набора +// * НастройкиВыполнения - Структура - Настройки исполнения теста +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора +Функция ОписаниеИсполняемогоНабораТестов() Экспорт + + Описание = БазовоеОписаниеИсполняемогоОбъекта(); + + Описание.Вставить("Имя", ""); + Описание.Вставить("Представление", ""); + Описание.Вставить("Режим", ""); + Описание.Вставить("Тесты"); + Описание.Вставить("Выполнять", Ложь); + Описание.Вставить("ДатаСтарта", 0); + Описание.Вставить("Длительность", 0); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// ОписаниеИсполняемогоТеста +// Возвращает описание исполняемого теста +// Содержит данные необходимые для выполнения прогона тестов +// +// Возвращаемое значение: +// Структура - Описание исполняемого теста: +// * Имя - Строка - Имя/представление теста +// * Метод - Строка - Имя тестового метода +// * ПолноеИмяМетода - Строка - Полное имя тестового метода, ИмяМодуля.ИмяМетода +// * Теги - Массив из Строка - Теги теста +// * Режим - Строка - Режим исполнения теста, см. ЮТФабрика.КонтекстыВызова +// * ДатаСтарта - Число - Дата запуска теста +// * Длительность - Число - Продолжительность выполнения теста +// * Статус - Строка - Статус выполнения теста, см. ЮТФабрика.СтатусыИсполненияТеста +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки +// * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста +// * НомерВНаборе - Число - Порядковый номер теста в наборе +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста +Функция ОписаниеИсполняемогоТеста() Экспорт + + Описание = БазовоеОписаниеИсполняемогоОбъекта(); + Описание.Вставить("Имя", ""); + Описание.Вставить("Метод", ""); + Описание.Вставить("ПолноеИмяМетода", ""); + Описание.Вставить("Режим", ""); + Описание.Вставить("ДатаСтарта", 0); + Описание.Вставить("Длительность", 0); + Описание.Вставить("Статус", ""); + Описание.Вставить("Параметры"); + Описание.Вставить("НомерВНаборе", 0); + + //@skip-check constructor-function-return-section + Возврат Описание; + +КонецФункции + +// Возвращает структуру описания метаданных модуля +// Возвращаемое значение: +// Структура - Метаданные модуля: +// * Имя - Строка - Имя модуля +// * Расширение - Строка - Имя расширения, владельца модуля +// * КлиентУправляемоеПриложение - Булево - Доступность контекста +// * КлиентОбычноеПриложение - Булево - Доступность контекста +// * Сервер - Булево - Доступность контекста +// * ВызовСервера - Булево - Доступность контекста +// * Глобальный - Булево - Доступность контекста +Функция ОписаниеМетаданныеМодуля() Экспорт + + Описание = Новый Структура; + Описание.Вставить("Имя", ""); + Описание.Вставить("Расширение", ""); + Описание.Вставить("КлиентУправляемоеПриложение", Ложь); + Описание.Вставить("КлиентОбычноеПриложение", Ложь); + Описание.Вставить("Сервер", Ложь); + Описание.Вставить("ВызовСервера", Ложь); + Описание.Вставить("Глобальный", Ложь); + + Возврат Описание; + +КонецФункции + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -382,4 +505,10 @@ КонецФункции +Функция БазовоеОписаниеИсполняемогоОбъекта() Экспорт + + Возврат Новый Структура("Теги, НастройкиВыполнения, Зависимости, Ошибки"); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 069563a8c..1da376302 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -174,20 +174,14 @@ КонецФункции -// Описание исполняемого тестового модуля. +// Создает описание исполняемого тестового модуля. // Содержит всю необходимую информацию для прогона тестов, а также данные результата // Параметры: // ТестовыйМодуль - см. ОписаниеТестовогоМодуля // // Возвращаемое значение: -// Структура - Описание тестового модуля: -// * Метаданные - см. ОписаниеМетаданныеМодуля -// * Теги - Массив из Строка - Коллекция тегов набора -// * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки -// * НастройкиВыполнения- Структура - Настройки исполнения теста -// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля -Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт +// см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +Функция НовоеОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт Описание = БазовоеОписаниеИсполняемогоОбъекта(ТестовыйМодуль); @@ -198,26 +192,15 @@ КонецФункции -// ОписаниеИсполняемогоНабораТестов +// Создает описание исполняемого тестового набора // Возвращает описание исполняемого тестового набора. // Содержит данные необходимые для выполнения прогона тестов // Параметры: // НаборТестов - См. ОписаниеТестовогоНабора // // Возвращаемое значение: -// Структура - Описание исполняемого набора тестов: -// * Имя - Строка - Имя набора -// * Представление - Строка - Представление набора -// * Теги - Массив из Строка - Тэги набора -// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста -// * Режим - Строка - Режим исполнения набора, см. ЮТФабрика.КонтекстыВызова -// * Тесты - Массив из см. ОписаниеИсполняемогоТеста - Тесты набора, структуру тестов см. ОписаниеИсполняемогоТеста -// * Выполнять - Булево - Признак, что можно выполнить прогон набора (нет ошибок блокирующих запуск) -// * ДатаСтарта - Число - Дата запуска набора -// * Длительность - Число - Продолжительность выполнения набора -// * НастройкиВыполнения - Структура - Настройки исполнения теста -// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора -Функция ОписаниеИсполняемогоНабораТестов(НаборТестов) Экспорт +// см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +Функция НовоеОписаниеИсполняемогоНабораТестов(НаборТестов) Экспорт Описание = БазовоеОписаниеИсполняемогоОбъекта(НаборТестов); @@ -243,21 +226,8 @@ // ТестовыйМодуль - См. ОписаниеТестовогоМодуля // // Возвращаемое значение: -// Структура - Описание исполняемого теста: -// * Имя - Строка - Имя/представление теста -// * Метод - Строка - Имя тестового метода -// * ПолноеИмяМетода - Строка - Полное имя тестового метода, ИмяМодуля.ИмяМетода -// * Теги - Массив из Строка - Теги теста -// * Режим - Строка - Режим исполнения теста, см. ЮТФабрика.КонтекстыВызова -// * ДатаСтарта - Число - Дата запуска теста -// * Длительность - Число - Продолжительность выполнения теста -// * Статус - Строка - Статус выполнения теста, см. ЮТФабрика.СтатусыИсполненияТеста -// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки -// * НастройкиВыполнения- Структура - Настройки исполнения теста -// * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста -// * НомерВНаборе - Число - Порядковый номер теста в наборе -// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста -Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт +// см. ЮТФабрика.ОписаниеИсполняемогоТеста +Функция НовоеОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.Метаданные.Имя, Тест.Имя); Представление = ПредставлениеТеста(Тест); @@ -369,15 +339,15 @@ // Описание события исполнения тестов. // // Параметры: -// Модуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// Модуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста // // Возвращаемое значение: // Структура - Описание события исполнения тестов: -// * Модуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// * Набор - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// * Тест - см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТеста +// * Модуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +// * Набор - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// * Тест - см. ЮТФабрика.ОписаниеИсполняемогоТеста Функция ОписаниеСобытияИсполненияТестов(Модуль, Набор = Неопределено, Тест = Неопределено) Экспорт Описание = Новый Структура(); @@ -390,30 +360,6 @@ КонецФункции -// Описание категория набора тестов. -// -// Параметры: -// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание категория набора тестов: -// * ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля -// * Клиентские - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// * Серверные - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -// * Пропущенные - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов -Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт - - КатегорииНаборов = Новый Структура(); - КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); - КатегорииНаборов.Вставить("Клиентские", Новый Массив()); - КатегорииНаборов.Вставить("Серверные", Новый Массив()); - КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); - - //@skip-check constructor-function-return-section - Возврат КатегорииНаборов; - -КонецФункции - // Формирует описание проверяемого значения. // Используется в утверждения для формирования дружелюбного сообщения об ошибке. // @@ -487,11 +433,11 @@ // Структура - Данные контекста исполнения: // * Уровень - Строка - Возможные значения см. ЮТФабрика.УровниИсполнения // * Модуль - Неопределено - Нет исполняемого модуля -// - см. ОписаниеТестовогоМодуля +// - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля // * Набор - Неопределено - Нет исполняемого тестового набора -// - см. ОписаниеИсполняемогоНабораТестов +// - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов // * Тест - Неопределено - Нет исполняемого теста -// - см. ОписаниеИсполняемогоТеста +// - см. ЮТФабрика.ОписаниеИсполняемогоТеста Функция НовыйКонтекстИсполнения() Экспорт Контекст = Новый Структура(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 6ef2156ed..b621a7869 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -230,4 +230,37 @@ КонецФункции +// Возвращает описание текущего теста +// +// Возвращаемое значение: +// - Неопределено - Метод вызван вне контекста теста +// - см. ЮТФабрика.ОписаниеИсполняемогоТеста +Функция ОписаниеТекущегоТеста() Экспорт + + Возврат ЮТКонтекстСлужебный.КонтекстИсполнения().Тест; + +КонецФункции + +// Возвращает описание текущего теста +// +// Возвращаемое значение: +// - Неопределено - Метод вызван вне контекста тестового набора +// - см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +Функция ОписаниеТекущегоТестовогоНабора() Экспорт + + Возврат ЮТКонтекстСлужебный.КонтекстИсполнения().Набор; + +КонецФункции + +// Возвращает описание текущего тестового модуля +// +// Возвращаемое значение: +// - Неопределено - Метод вызван вне этапа тестирования +// - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля +Функция ОписаниеТекущегоТестовогоМодуля() Экспорт + + Возврат ЮТКонтекстСлужебный.КонтекстИсполнения().Модуль; + +КонецФункции + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 9105ed1ba..3d4589395 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -25,6 +25,9 @@ .ДобавитьТест("Пропустить") .ДобавитьТест("ПроверкаКонтекста") .ДобавитьСерверныйТест("ТранзакцияПоУмолчаниюАктивна") + .ДобавитьТест("ОписаниеТекущегоТеста") + .ДобавитьТест("ОписаниеТекущегоТестовогоНабора") + .ДобавитьТест("ОписаниеТекущегоТестовогоМодуля") .ДобавитьТестовыйНабор("ПереопределенныйНабор").Перед("Перед_ПереопределенныйНабор") .ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста") .ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста") @@ -79,10 +82,10 @@ .ИмеетДлинуМеньше(21); #ИначеЕсли Клиент Тогда ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(18); // Количество вызванных обработчиков событий + .ИмеетДлину(24); // Количество вызванных обработчиков событий #Иначе ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(20); // Количество вызванных обработчиков событий + .ИмеетДлину(26); // Количество вызванных обработчиков событий #КонецЕсли КонецПроцедуры @@ -186,4 +189,61 @@ КонецПроцедуры +Процедура ОписаниеТекущегоТеста() Экспорт + + Описание = ЮТест.ОписаниеТекущегоТеста(); + + ЮТест.ОжидаетЧто(Описание) + .Свойство("Имя").Равно("ОписаниеТекущегоТеста") + .Свойство("Метод").Равно("ОписаниеТекущегоТеста") + .Свойство("ПолноеИмяМетода").Равно("ОМ_ЮТест.ОписаниеТекущегоТеста") + .Свойство("Режим").Заполнено() + .Свойство("ДатаСтарта").Заполнено() + .Свойство("Длительность").Равно(0) + .Свойство("Статус").Равно("Исполнение") + .Свойство("Параметры").ЭтоНеопределено() + .Свойство("НомерВНаборе").Заполнено() + .Свойство("Теги") + .Свойство("НастройкиВыполнения") + .Свойство("Зависимости") + .Свойство("Ошибки") + ; + +КонецПроцедуры + +Процедура ОписаниеТекущегоТестовогоНабора() Экспорт + + Описание = ЮТест.ОписаниеТекущегоТестовогоНабора(); + + ЮТест.ОжидаетЧто(Описание) + .Свойство("Имя").Равно("ОсновнойНабор") + .Свойство("Представление").Равно("ОсновнойНабор") + .Свойство("Режим").Заполнено() + .Свойство("Тесты").Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОписаниеТекущегоТестовогоНабора")) + .Свойство("ДатаСтарта").Заполнено() + .Свойство("Длительность").Равно(0) + .Свойство("Выполнять").ЭтоИстина() + .Свойство("Теги") + .Свойство("НастройкиВыполнения") + .Свойство("Зависимости") + .Свойство("Ошибки") + ; + +КонецПроцедуры + +Процедура ОписаниеТекущегоТестовогоМодуля() Экспорт + + Описание = ЮТест.ОписаниеТекущегоТестовогоМодуля(); + + ЮТест.ОжидаетЧто(Описание) + .Свойство("Метаданные.Имя").Равно("ОМ_ЮТест") + .Свойство("НаборыТестов").НеЗаполнено() + .Свойство("Теги") + .Свойство("НастройкиВыполнения") + .Свойство("Зависимости") + .Свойство("Ошибки") + ; + +КонецПроцедуры + #КонецОбласти From 8ec38afec3b24ff79a59f6fd5876f4b10f12d809 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 26 Aug 2024 13:43:56 +0300 Subject: [PATCH 39/86] =?UTF-8?q?fix:=20=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index d92a453c8..d8cb45b71 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -391,7 +391,7 @@ // * ДатаСтарта - Число - Дата запуска теста // * Длительность - Число - Продолжительность выполнения теста // * Статус - Строка - Статус выполнения теста, см. ЮТФабрика.СтатусыИсполненияТеста -// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста, см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок выполнения теста // * НастройкиВыполнения- Структура - Настройки исполнения теста // * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста // * НомерВНаборе - Число - Порядковый номер теста в наборе From 8f632e84f47e1240afa40387b2ba1949d1b9e276 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 26 Aug 2024 15:26:26 +0300 Subject: [PATCH 40/86] =?UTF-8?q?ci:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B3=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-documentation.yml | 2 +- .gitignore | 3 +- documentation/docusaurus.config.js | 7 +- documentation/package-lock.json | 12966 ---------------- documentation/package.json | 28 +- documentation/tsconfig.json | 7 + documentation/yarn.lock | 9626 ++++++++++++ .../Module.bsl" | 54 +- .../Module.bsl" | 2 +- 9 files changed, 9683 insertions(+), 13012 deletions(-) delete mode 100644 documentation/package-lock.json create mode 100644 documentation/tsconfig.json create mode 100644 documentation/yarn.lock diff --git a/.github/workflows/deploy-documentation.yml b/.github/workflows/deploy-documentation.yml index 8e6e0cd45..4156aa85c 100644 --- a/.github/workflows/deploy-documentation.yml +++ b/.github/workflows/deploy-documentation.yml @@ -25,7 +25,7 @@ jobs: with: node-version: 18 cache: yarn - cache-dependency-path: 'documentation/package-lock.json' + cache-dependency-path: 'documentation/yarn.lock' - name: Install dependencies run: yarn install --frozen-lockfile diff --git a/.gitignore b/.gitignore index 253fa3347..f1aff8215 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,5 @@ tests/.settings/* #wsdl /fixtures/wsdl - +documentation/api/ +documentation/bsldoc.jar diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js index 39388937e..a720fc194 100644 --- a/documentation/docusaurus.config.js +++ b/documentation/docusaurus.config.js @@ -28,8 +28,8 @@ const config = { // metadata like html lang. For example, if your site is Chinese, you may want // to replace "en" with "zh-Hans". i18n: { - defaultLocale: 'en', - locales: ['en'], + defaultLocale: 'ru', + locales: ['ru'], }, presets: [ @@ -46,7 +46,8 @@ const config = { 'https://github.com/bia-technologies/yaxunit/', }, blog: { - blogTitle: 'Заметки' + blogTitle: 'Заметки', + onUntruncatedBlogPosts: 'ignore' }, theme: { customCss: require.resolve('./src/css/custom.css'), diff --git a/documentation/package-lock.json b/documentation/package-lock.json deleted file mode 100644 index 8018796fb..000000000 --- a/documentation/package-lock.json +++ /dev/null @@ -1,12966 +0,0 @@ -{ - "name": "documentation", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "documentation", - "version": "0.0.0", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/preset-classic": "2.3.1", - "@docusaurus/theme-mermaid": "2.3.1", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.2.1", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "2.3.1" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.4.tgz", - "integrity": "sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==", - "dependencies": { - "@algolia/autocomplete-shared": "1.7.4" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.4.tgz", - "integrity": "sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==", - "dependencies": { - "@algolia/autocomplete-shared": "1.7.4" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.4.tgz", - "integrity": "sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==" - }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.3.tgz", - "integrity": "sha512-hWH1yCxgG3+R/xZIscmUrWAIBnmBFHH5j30fY/+aPkEZWt90wYILfAHIOZ1/Wxhho5SkPfwFmT7ooX2d9JeQBw==", - "dependencies": { - "@algolia/cache-common": "4.14.3" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.3.tgz", - "integrity": "sha512-oZJofOoD9FQOwiGTzyRnmzvh3ZP8WVTNPBLH5xU5JNF7drDbRT0ocVT0h/xB2rPHYzOeXRrLaQQBwRT/CKom0Q==" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.3.tgz", - "integrity": "sha512-ES0hHQnzWjeioLQf5Nq+x1AWdZJ50znNPSH3puB/Y4Xsg4Av1bvLmTJe7SY2uqONaeMTvL0OaVcoVtQgJVw0vg==", - "dependencies": { - "@algolia/cache-common": "4.14.3" - } - }, - "node_modules/@algolia/client-account": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.3.tgz", - "integrity": "sha512-PBcPb0+f5Xbh5UfLZNx2Ow589OdP8WYjB4CnvupfYBrl9JyC1sdH4jcq/ri8osO/mCZYjZrQsKAPIqW/gQmizQ==", - "dependencies": { - "@algolia/client-common": "4.14.3", - "@algolia/client-search": "4.14.3", - "@algolia/transporter": "4.14.3" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.3.tgz", - "integrity": "sha512-eAwQq0Hb/aauv9NhCH5Dp3Nm29oFx28sayFN2fdOWemwSeJHIl7TmcsxVlRsO50fsD8CtPcDhtGeD3AIFLNvqw==", - "dependencies": { - "@algolia/client-common": "4.14.3", - "@algolia/client-search": "4.14.3", - "@algolia/requester-common": "4.14.3", - "@algolia/transporter": "4.14.3" - } - }, - "node_modules/@algolia/client-common": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.3.tgz", - "integrity": "sha512-jkPPDZdi63IK64Yg4WccdCsAP4pHxSkr4usplkUZM5C1l1oEpZXsy2c579LQ0rvwCs5JFmwfNG4ahOszidfWPw==", - "dependencies": { - "@algolia/requester-common": "4.14.3", - "@algolia/transporter": "4.14.3" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.3.tgz", - "integrity": "sha512-UCX1MtkVNgaOL9f0e22x6tC9e2H3unZQlSUdnVaSKpZ+hdSChXGaRjp2UIT7pxmPqNCyv51F597KEX5WT60jNg==", - "dependencies": { - "@algolia/client-common": "4.14.3", - "@algolia/requester-common": "4.14.3", - "@algolia/transporter": "4.14.3" - } - }, - "node_modules/@algolia/client-search": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.3.tgz", - "integrity": "sha512-I2U7xBx5OPFdPLA8AXKUPPxGY3HDxZ4r7+mlZ8ZpLbI8/ri6fnu6B4z3wcL7sgHhDYMwnAE8Xr0AB0h3Hnkp4A==", - "dependencies": { - "@algolia/client-common": "4.14.3", - "@algolia/requester-common": "4.14.3", - "@algolia/transporter": "4.14.3" - } - }, - "node_modules/@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" - }, - "node_modules/@algolia/logger-common": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.3.tgz", - "integrity": "sha512-kUEAZaBt/J3RjYi8MEBT2QEexJR2kAE2mtLmezsmqMQZTV502TkHCxYzTwY2dE7OKcUTxi4OFlMuS4GId9CWPw==" - }, - "node_modules/@algolia/logger-console": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.3.tgz", - "integrity": "sha512-ZWqAlUITktiMN2EiFpQIFCJS10N96A++yrexqC2Z+3hgF/JcKrOxOdT4nSCQoEPvU4Ki9QKbpzbebRDemZt/hw==", - "dependencies": { - "@algolia/logger-common": "4.14.3" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.3.tgz", - "integrity": "sha512-AZeg2T08WLUPvDncl2XLX2O67W5wIO8MNaT7z5ii5LgBTuk/rU4CikTjCe2xsUleIZeFl++QrPAi4Bdxws6r/Q==", - "dependencies": { - "@algolia/requester-common": "4.14.3" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.3.tgz", - "integrity": "sha512-RrRzqNyKFDP7IkTuV3XvYGF9cDPn9h6qEDl595lXva3YUk9YSS8+MGZnnkOMHvjkrSCKfoLeLbm/T4tmoIeclw==" - }, - "node_modules/@algolia/requester-node-http": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.3.tgz", - "integrity": "sha512-O5wnPxtDRPuW2U0EaOz9rMMWdlhwP0J0eSL1Z7TtXF8xnUeeUyNJrdhV5uy2CAp6RbhM1VuC3sOJcIR6Av+vbA==", - "dependencies": { - "@algolia/requester-common": "4.14.3" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.3.tgz", - "integrity": "sha512-2qlKlKsnGJ008exFRb5RTeTOqhLZj0bkMCMVskxoqWejs2Q2QtWmsiH98hDfpw0fmnyhzHEt0Z7lqxBYp8bW2w==", - "dependencies": { - "@algolia/cache-common": "4.14.3", - "@algolia/logger-common": "4.14.3", - "@algolia/requester-common": "4.14.3" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", - "dependencies": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", - "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", - "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", - "dependencies": { - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/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==" - }, - "node_modules/@babel/highlight/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==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", - "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "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.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.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==", - "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" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", - "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", - "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", - "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" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "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" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "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==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz", - "integrity": "sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", - "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", - "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "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-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", - "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", - "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", - "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", - "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz", - "integrity": "sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", - "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz", - "integrity": "sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.12", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "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-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@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.20.0", - "@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-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-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==" - }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.13.tgz", - "integrity": "sha512-p39/6rmY9uvlzRiLZBIB3G9/EBr66LBMcYm7fIDeSBNdRjF2AGD3rFZucUyAgGHC2N+7DdLvVi33uTjSE44FIw==", - "dependencies": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@braintree/sanitize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz", - "integrity": "sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg==" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@docsearch/css": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.3.tgz", - "integrity": "sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==" - }, - "node_modules/@docsearch/react": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.3.tgz", - "integrity": "sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==", - "dependencies": { - "@algolia/autocomplete-core": "1.7.4", - "@algolia/autocomplete-preset-algolia": "1.7.4", - "@docsearch/css": "3.3.3", - "algoliasearch": "^4.0.0" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@docusaurus/core": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.3.1.tgz", - "integrity": "sha512-0Jd4jtizqnRAr7svWaBbbrCCN8mzBNd2xFLoT/IM7bGfFie5y58oz97KzXliwiLY3zWjqMXjQcuP1a5VgCv2JA==", - "dependencies": { - "@babel/core": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.18.6", - "@babel/preset-env": "^7.18.6", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@babel/runtime": "^7.18.6", - "@babel/runtime-corejs3": "^7.18.6", - "@babel/traverse": "^7.18.8", - "@docusaurus/cssnano-preset": "2.3.1", - "@docusaurus/logger": "2.3.1", - "@docusaurus/mdx-loader": "2.3.1", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-common": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.2.1", - "autoprefixer": "^10.4.7", - "babel-loader": "^8.2.5", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.0", - "cli-table3": "^0.6.2", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.23.3", - "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^4.0.0", - "cssnano": "^5.1.12", - "del": "^6.1.1", - "detect-port": "^1.3.0", - "escape-html": "^1.0.3", - "eta": "^2.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "html-minifier-terser": "^6.1.0", - "html-tags": "^3.2.0", - "html-webpack-plugin": "^5.5.0", - "import-fresh": "^3.3.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.6.1", - "postcss": "^8.4.14", - "postcss-loader": "^7.0.0", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.3", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.3", - "rtl-detect": "^1.0.4", - "semver": "^7.3.7", - "serve-handler": "^6.1.3", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.3", - "tslib": "^2.4.0", - "update-notifier": "^5.1.0", - "url-loader": "^4.1.1", - "wait-on": "^6.0.1", - "webpack": "^5.73.0", - "webpack-bundle-analyzer": "^4.5.0", - "webpack-dev-server": "^4.9.3", - "webpack-merge": "^5.8.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.3.1.tgz", - "integrity": "sha512-7mIhAROES6CY1GmCjR4CZkUfjTL6B3u6rKHK0ChQl2d1IevYXq/k/vFgvOrJfcKxiObpMnE9+X6R2Wt1KqxC6w==", - "dependencies": { - "cssnano-preset-advanced": "^5.3.8", - "postcss": "^8.4.14", - "postcss-sort-media-queries": "^4.2.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/logger": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.3.1.tgz", - "integrity": "sha512-2lAV/olKKVr9qJhfHFCaqBIl8FgYjbUFwgUnX76+cULwQYss+42ZQ3grHGFvI0ocN2X55WcYe64ellQXz7suqg==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.3.1.tgz", - "integrity": "sha512-Gzga7OsxQRpt3392K9lv/bW4jGppdLFJh3luKRknCKSAaZrmVkOQv2gvCn8LAOSZ3uRg5No7AgYs/vpL8K94lA==", - "dependencies": { - "@babel/parser": "^7.18.8", - "@babel/traverse": "^7.18.8", - "@docusaurus/logger": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unified": "^9.2.2", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.3.1.tgz", - "integrity": "sha512-6KkxfAVOJqIUynTRb/tphYCl+co3cP0PlHiMDbi+SzmYxMdgIrwYqH9yAnGSDoN6Jk2ZE/JY/Azs/8LPgKP48A==", - "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "2.3.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.3.1.tgz", - "integrity": "sha512-f5LjqX+9WkiLyGiQ41x/KGSJ/9bOjSD8lsVhPvYeUYHCtYpuiDKfhZE07O4EqpHkBx4NQdtQDbp+aptgHSTuiw==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/logger": "2.3.1", - "@docusaurus/mdx-loader": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-common": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "cheerio": "^1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", - "utility-types": "^3.10.0", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.3.1.tgz", - "integrity": "sha512-DxztTOBEruv7qFxqUtbsqXeNcHqcVEIEe+NQoI1oi2DBmKBhW/o0MIal8lt+9gvmpx3oYtlwmLOOGepxZgJGkw==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/logger": "2.3.1", - "@docusaurus/mdx-loader": "2.3.1", - "@docusaurus/module-type-aliases": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "@types/react-router-config": "^5.0.6", - "combine-promises": "^1.1.0", - "fs-extra": "^10.1.0", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.4.0", - "utility-types": "^3.10.0", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.3.1.tgz", - "integrity": "sha512-E80UL6hvKm5VVw8Ka8YaVDtO6kWWDVUK4fffGvkpQ/AJQDOg99LwOXKujPoICC22nUFTsZ2Hp70XvpezCsFQaA==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/mdx-loader": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "fs-extra": "^10.1.0", - "tslib": "^2.4.0", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.3.1.tgz", - "integrity": "sha512-Ujpml1Ppg4geB/2hyu2diWnO49az9U2bxM9Shen7b6qVcyFisNJTkVG2ocvLC7wM1efTJcUhBO6zAku2vKJGMw==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils": "2.3.1", - "fs-extra": "^10.1.0", - "react-json-view": "^1.21.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.3.1.tgz", - "integrity": "sha512-OHip0GQxKOFU8n7gkt3TM4HOYTXPCFDjqKbMClDD3KaDnyTuMp/Zvd9HSr770lLEscgPWIvzhJByRAClqsUWiQ==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.3.1.tgz", - "integrity": "sha512-uXtDhfu4+Hm+oqWUySr3DNI5cWC/rmP6XJyAk83Heor3dFjZqDwCbkX8yWPywkRiWev3Dk/rVF8lEn0vIGVocA==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.3.1.tgz", - "integrity": "sha512-Ww2BPEYSqg8q8tJdLYPFFM3FMDBCVhEM4UUqKzJaiRMx3NEoly3qqDRAoRDGdIhlC//Rf0iJV9cWAoq2m6k3sw==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.3.1.tgz", - "integrity": "sha512-8Yxile/v6QGYV9vgFiYL+8d2N4z4Er3pSHsrD08c5XI8bUXxTppMwjarDUTH/TRTfgAWotRbhJ6WZLyajLpozA==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/logger": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-common": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "fs-extra": "^10.1.0", - "sitemap": "^7.1.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.3.1.tgz", - "integrity": "sha512-OQ5W0AHyfdUk0IldwJ3BlnZ1EqoJuu2L2BMhqLbqwNWdkmzmSUvlFLH1Pe7CZSQgB2YUUC/DnmjbPKk/qQD0lQ==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/plugin-content-blog": "2.3.1", - "@docusaurus/plugin-content-docs": "2.3.1", - "@docusaurus/plugin-content-pages": "2.3.1", - "@docusaurus/plugin-debug": "2.3.1", - "@docusaurus/plugin-google-analytics": "2.3.1", - "@docusaurus/plugin-google-gtag": "2.3.1", - "@docusaurus/plugin-google-tag-manager": "2.3.1", - "@docusaurus/plugin-sitemap": "2.3.1", - "@docusaurus/theme-classic": "2.3.1", - "@docusaurus/theme-common": "2.3.1", - "@docusaurus/theme-search-algolia": "2.3.1", - "@docusaurus/types": "2.3.1" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.3.1.tgz", - "integrity": "sha512-SelSIDvyttb7ZYHj8vEUhqykhAqfOPKk+uP0z85jH72IMC58e7O8DIlcAeBv+CWsLbNIl9/Hcg71X0jazuxJug==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/mdx-loader": "2.3.1", - "@docusaurus/module-type-aliases": "2.3.1", - "@docusaurus/plugin-content-blog": "2.3.1", - "@docusaurus/plugin-content-docs": "2.3.1", - "@docusaurus/plugin-content-pages": "2.3.1", - "@docusaurus/theme-common": "2.3.1", - "@docusaurus/theme-translations": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-common": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.2.1", - "copy-text-to-clipboard": "^3.0.1", - "infima": "0.2.0-alpha.42", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.14", - "prism-react-renderer": "^1.3.5", - "prismjs": "^1.28.0", - "react-router-dom": "^5.3.3", - "rtlcss": "^3.5.0", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.3.1.tgz", - "integrity": "sha512-RYmYl2OR2biO+yhmW1aS5FyEvnrItPINa+0U2dMxcHpah8reSCjQ9eJGRmAgkZFchV1+aIQzXOI1K7LCW38O0g==", - "dependencies": { - "@docusaurus/mdx-loader": "2.3.1", - "@docusaurus/module-type-aliases": "2.3.1", - "@docusaurus/plugin-content-blog": "2.3.1", - "@docusaurus/plugin-content-docs": "2.3.1", - "@docusaurus/plugin-content-pages": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^1.2.1", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^1.3.5", - "tslib": "^2.4.0", - "use-sync-external-store": "^1.2.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-mermaid": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-2.3.1.tgz", - "integrity": "sha512-Hh1I4FSt+5qlrq6dBOgj/klv2Ijmzbn0ysa5XMDHeD6Fa3fK63vvf0KJMR6VzB9VHU8QjMqqAR+n9500/Kq4lw==", - "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/module-type-aliases": "2.3.1", - "@docusaurus/theme-common": "2.3.1", - "@docusaurus/types": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "@mdx-js/react": "^1.6.22", - "mermaid": "^9.2.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.3.1.tgz", - "integrity": "sha512-JdHaRqRuH1X++g5fEMLnq7OtULSGQdrs9AbhcWRQ428ZB8/HOiaN6mj3hzHvcD3DFgu7koIVtWPQnvnN7iwzHA==", - "dependencies": { - "@docsearch/react": "^3.1.1", - "@docusaurus/core": "2.3.1", - "@docusaurus/logger": "2.3.1", - "@docusaurus/plugin-content-docs": "2.3.1", - "@docusaurus/theme-common": "2.3.1", - "@docusaurus/theme-translations": "2.3.1", - "@docusaurus/utils": "2.3.1", - "@docusaurus/utils-validation": "2.3.1", - "algoliasearch": "^4.13.1", - "algoliasearch-helper": "^3.10.0", - "clsx": "^1.2.1", - "eta": "^2.0.0", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.3.1.tgz", - "integrity": "sha512-BsBZzAewJabVhoGG1Ij2u4pMS3MPW6gZ6sS4pc+Y7czevRpzxoFNJXRtQDVGe7mOpv/MmRmqg4owDK+lcOTCVQ==", - "dependencies": { - "fs-extra": "^10.1.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/types": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.3.1.tgz", - "integrity": "sha512-PREbIRhTaNNY042qmfSE372Jb7djZt+oVTZkoqHJ8eff8vOIc2zqqDqBVc5BhOfpZGPTrE078yy/torUEZy08A==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.73.0", - "webpack-merge": "^5.8.0" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-9WcQROCV0MmrpOQDXDGhtGMd52DHpSFbKLfkyaYumzbTstrbA5pPOtiGtxK1nqUHkiIv8UwexS54p0Vod2I1lg==", - "dependencies": { - "@docusaurus/logger": "2.3.1", - "@svgr/webpack": "^6.2.1", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "github-slugger": "^1.4.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.4.0", - "url-loader": "^4.1.1", - "webpack": "^5.73.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.3.1.tgz", - "integrity": "sha512-pVlRpXkdNcxmKNxAaB1ya2hfCEvVsLDp2joeM6K6uv55Oc5nVIqgyYSgSNKZyMdw66NnvMfsu0RBylcwZQKo9A==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.3.1.tgz", - "integrity": "sha512-7n0208IG3k1HVTByMHlZoIDjjOFC8sbViHVXJx0r3Q+3Ezrx+VQ1RZ/zjNn6lT+QBCRCXlnlaoJ8ug4HIVgQ3w==", - "dependencies": { - "@docusaurus/logger": "2.3.1", - "@docusaurus/utils": "2.3.1", - "joi": "^17.6.0", - "js-yaml": "^4.1.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.4.2", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.2.tgz", - "integrity": "sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==", - "dependencies": { - "@sinclair/typebox": "^0.25.16" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.2.tgz", - "integrity": "sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==", - "dependencies": { - "@jest/schemas": "^29.4.2", - "@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/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "node_modules/@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "dependencies": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@mdx-js/mdx/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } - }, - "node_modules/@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "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==", - "engines": { - "node": ">= 8" - } - }, - "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==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sinclair/typebox": { - "version": "0.25.21", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", - "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==" - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "dependencies": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", - "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", - "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", - "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", - "dependencies": { - "@babel/types": "^7.20.0", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", - "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "^6.0.0" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", - "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", - "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "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==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz", - "integrity": "sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" - }, - "node_modules/@types/node": { - "version": "18.13.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", - "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "node_modules/@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/react": { - "version": "18.0.27", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz", - "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.6.tgz", - "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.22", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", - "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "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==" - }, - "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==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "peerDependencies": { - "acorn": "^8" - } - }, - "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==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "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==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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" - } - }, - "node_modules/ajv-formats/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==" - }, - "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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/algoliasearch": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.3.tgz", - "integrity": "sha512-GZTEuxzfWbP/vr7ZJfGzIl8fOsoxN916Z6FY2Egc9q2TmZ6hvq5KfAxY89pPW01oW/2HDEKA8d30f9iAH9eXYg==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.14.3", - "@algolia/cache-common": "4.14.3", - "@algolia/cache-in-memory": "4.14.3", - "@algolia/client-account": "4.14.3", - "@algolia/client-analytics": "4.14.3", - "@algolia/client-common": "4.14.3", - "@algolia/client-personalization": "4.14.3", - "@algolia/client-search": "4.14.3", - "@algolia/logger-common": "4.14.3", - "@algolia/logger-console": "4.14.3", - "@algolia/requester-browser-xhr": "4.14.3", - "@algolia/requester-common": "4.14.3", - "@algolia/requester-node-http": "4.14.3", - "@algolia/transporter": "4.14.3" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.11.3", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.11.3.tgz", - "integrity": "sha512-TbaEvLwiuGygHQIB8y+OsJKQQ40+JKUua5B91X66tMUHyyhbNHvqyr0lqd3wCoyKx7WybyQrC0WJvzoIeh24Aw==", - "dependencies": { - "@algolia/events": "^4.0.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 6" - } - }, - "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==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/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==" - }, - "node_modules/ansi-align/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==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "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==" - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", - "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", - "dependencies": { - "follow-redirects": "^1.14.7" - } - }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@babel/core": "^7.11.6" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==" - }, - "node_modules/base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - }, - "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==", - "engines": { - "node": "*" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bonjour-service": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", - "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "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==" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "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" - } - }, - "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==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001451", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz", - "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "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/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==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-table3/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==" - }, - "node_modules/cli-table3/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==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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==" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "node_modules/combine-promises": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", - "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/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==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "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/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "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==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz", - "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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" - } - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/copy-webpack-plugin/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==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/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==" - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", - "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", - "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", - "dependencies": { - "browserslist": "^4.21.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.27.2.tgz", - "integrity": "sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "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/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "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==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", - "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "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/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", - "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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" - } - }, - "node_modules/css-minimizer-webpack-plugin/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/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==" - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "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==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", - "dependencies": { - "cssnano-preset-default": "^5.2.13", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz", - "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==", - "dependencies": { - "autoprefixer": "^10.4.12", - "cssnano-preset-default": "^5.2.13", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "node_modules/d3": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.2.tgz", - "integrity": "sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ==", - "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ==", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "dependencies": { - "d3-path": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-contour": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", - "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", - "dependencies": { - "d3-array": "^3.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-delaunay": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", - "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", - "dependencies": { - "delaunator": "5" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-dsv/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dagre-d3-es": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.6.tgz", - "integrity": "sha512-CaaE/nZh205ix+Up4xsnlGmpog5GGm81Upi2+/SBHxwNwrccBb3K51LzjZ1U6hgvOlAEUsVWf1xSTzCyKpJ6+Q==", - "dependencies": { - "d3": "^7.7.0", - "lodash-es": "^4.17.21" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "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==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", - "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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==" - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", - "dependencies": { - "robust-predicates": "^3.0.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", - "dependencies": { - "repeat-string": "^1.5.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "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==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, - "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/dompurify": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz", - "integrity": "sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==" - }, - "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.293", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.293.tgz", - "integrity": "sha512-h7vBlhC83NsgC9UO3LOZx91xgstIrHk5iqMbZgnEArL5rHTM6HfsUZhnwb3oRnNetXM1741kB9SO7x9jLshz5A==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", - "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "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==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "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==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eta": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-2.0.0.tgz", - "integrity": "sha512-NqE7S2VmVwgMS8yBxsH4VgNQjNjLq1gfGU0u9I6Cjh468nPRMoDfGdK9n1p/3Dvsw3ebklDkZsFAnKJ9sefjBA==", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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/execa/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/express/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "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_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==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "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==" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "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/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==" - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dependencies": { - "punycode": "^1.3.2" - } - }, - "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==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "dependencies": { - "fbjs": "^3.0.0" - } - }, - "node_modules/fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "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" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.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==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flux": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", - "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", - "dependencies": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - }, - "peerDependencies": { - "react": "^15.0.2 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "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==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "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==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "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==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "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" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "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==" - }, - "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==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "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==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "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" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "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" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/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==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", - "dependencies": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "dependencies": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "dependencies": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "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/hpack.js/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==" - }, - "node_modules/hpack.js/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==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, - "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==" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=10.17.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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/immer": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.19.tgz", - "integrity": "sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "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==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.42", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.42.tgz", - "integrity": "sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==", - "engines": { - "node": ">=12" - } - }, - "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==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==" - }, - "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==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "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==" - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==" - }, - "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==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-util": { - "version": "29.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.2.tgz", - "integrity": "sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==", - "dependencies": { - "@jest/types": "^29.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.4.2.tgz", - "integrity": "sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw==", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.4.2", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/joi": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", - "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.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==" - }, - "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==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "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==" - }, - "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==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "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==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/khroma": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.0.0.tgz", - "integrity": "sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==" - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "engines": { - "node": ">= 8" - } - }, - "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==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "engines": { - "node": ">=10" - } - }, - "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==" - }, - "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==", - "engines": { - "node": ">=6.11.5" - } - }, - "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==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "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==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" - }, - "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==" - }, - "node_modules/lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" - }, - "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==" - }, - "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==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "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==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "dependencies": { - "unist-util-remove": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", - "dependencies": { - "fs-monkey": "^1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "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==" - }, - "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==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/mermaid": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.3.0.tgz", - "integrity": "sha512-mGl0BM19TD/HbU/LmlaZbjBi//tojelg8P/mxD6pPZTAYaI+VawcyBdqRsoUHSc7j71PrMdJ3HBadoQNdvP5cg==", - "dependencies": { - "@braintree/sanitize-url": "^6.0.0", - "d3": "^7.0.0", - "dagre-d3-es": "7.0.6", - "dompurify": "2.4.1", - "khroma": "^2.0.0", - "lodash-es": "^4.17.21", - "moment-mini": "^2.24.0", - "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.2", - "uuid": "^9.0.0" - } - }, - "node_modules/mermaid/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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" - } - }, - "node_modules/mini-css-extract-plugin/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/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==" - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "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==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/moment-mini": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.29.4.tgz", - "integrity": "sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==" - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "engines": { - "node": ">=10" - } - }, - "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==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "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==" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" - }, - "node_modules/non-layered-tidy-tree-layout": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", - "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "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" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", - "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "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" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==" - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "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==" - }, - "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==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "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==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/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==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/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==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/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==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-loader": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", - "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "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/postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "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==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "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/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==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "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==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.3.0.tgz", - "integrity": "sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==", - "dependencies": { - "sort-css-media-queries": "2.1.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.16" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "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==" - }, - "node_modules/postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", - "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", - "peerDependencies": { - "react": ">=0.14.9" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "engines": { - "node": ">=6" - } - }, - "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==" - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "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==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "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==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "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/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "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==", - "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/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", - "dependencies": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-json-view": { - "version": "1.21.3", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", - "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", - "dependencies": { - "flux": "^4.0.1", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^8.3.2" - }, - "peerDependencies": { - "react": "^17.0.0 || ^16.3.0 || ^15.5.4", - "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4" - } - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "dependencies": { - "@babel/runtime": "^7.10.3" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "react-loadable": "*", - "webpack": ">=4.41.1 || 5.x" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "dependencies": { - "@babel/runtime": "^7.1.2" - }, - "peerDependencies": { - "react": ">=15", - "react-router": ">=5" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-textarea-autosize": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.0.tgz", - "integrity": "sha512-YrTFaEHLgJsi8sJVYHBzYn+mkP3prGkmP2DKb/tm0t7CLJY5t1Rxix8070LAKb0wby7bl/lf2EeHkuMihMZMwQ==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" - }, - "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==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.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==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.0.tgz", - "integrity": "sha512-ZdhUQlng0RoscyW7jADnUZ25F5eVtHdMyXSb2PiwafvteRAOJUjFoUPEYZSIfP99fBIs3maLIRfpEddT78wAAQ==", - "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" - } - }, - "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==", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "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==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", - "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", - "dependencies": { - "emoticon": "^3.2.0", - "node-emoji": "^1.10.0", - "unist-util-visit": "^2.0.3" - } - }, - "node_modules/remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "dependencies": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-mdx/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remark-mdx/node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "dependencies": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "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==", - "engines": { - "node": ">=0.10" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "engines": { - "node": "*" - } - }, - "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==" - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/robust-predicates": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", - "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" - }, - "node_modules/rtl-detect": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", - "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" - }, - "node_modules/rtlcss": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", - "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", - "dependencies": { - "find-up": "^5.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.3.11", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "rtlcss": "bin/rtlcss.js" - } - }, - "node_modules/rtlcss/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==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/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==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/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==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/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==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "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/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dependencies": { - "tslib": "^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==", - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver/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==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/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==" - }, - "node_modules/send/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", - "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.1.2", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "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==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "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" - } - }, - "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==" - }, - "node_modules/sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/sitemap": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", - "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", - "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", - "engines": { - "node": ">= 6.3.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, - "node_modules/state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz", - "integrity": "sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==" - }, - "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==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "engines": { - "node": ">=0.10.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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/stylis": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", - "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" - }, - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", - "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "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/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==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "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" - } - }, - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "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==" - }, - "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==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" - }, - "node_modules/trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.33", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.33.tgz", - "integrity": "sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dependencies": { - "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" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/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==", - "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" - } - }, - "node_modules/update-notifier/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==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/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==" - }, - "node_modules/update-notifier/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==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/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==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/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==", - "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/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "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" - } - }, - "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==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "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==" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/wait-on": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", - "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", - "dependencies": { - "axios": "^0.25.0", - "joi": "^17.6.0", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.5.4" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "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==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "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.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "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/webpack-bundle-analyzer": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", - "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", - "dependencies": { - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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" - } - }, - "node_modules/webpack-dev-middleware/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/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==" - }, - "node_modules/webpack-dev-middleware/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "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" - } - }, - "node_modules/webpack-dev-server/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==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/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==" - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.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==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/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==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "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" - } - }, - "node_modules/webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.3", - "pretty-time": "^1.1.0", - "std-env": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "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==" - }, - "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==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": 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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/documentation/package.json b/documentation/package.json index a8ef6d8ce..7b89b8464 100644 --- a/documentation/package.json +++ b/documentation/package.json @@ -14,21 +14,23 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "^3.1.1", - "@docusaurus/preset-classic": "^3.1.1", - "@docusaurus/theme-mermaid": "^3.1.1", - "@easyops-cn/docusaurus-search-local": "^0.40.1", + "@docusaurus/core": "3.5.2", + "@docusaurus/preset-classic": "3.5.2", + "@docusaurus/theme-mermaid": "3.5.2", + "@easyops-cn/docusaurus-search-local": "^0.44.5", "@mdx-js/react": "^3.0.0", - "dagre": "^0.8.5", - "prism-react-renderer": "^2.3.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "prism-react-renderer": "^2.3.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-router-dom": "^6.20.0", + "dagre": "^0.8.5", "reactflow": "^11.10.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.1.1" - }, + "@docusaurus/module-type-aliases": "3.5.2", + "@docusaurus/tsconfig": "3.5.2", + "@docusaurus/types": "3.5.2", + "typescript": "~5.5.2" }, "browserslist": { "production": [ ">0.5%", @@ -36,9 +38,9 @@ "not op_mini all" ], "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" ] }, "engines": { diff --git a/documentation/tsconfig.json b/documentation/tsconfig.json new file mode 100644 index 000000000..dc1826f35 --- /dev/null +++ b/documentation/tsconfig.json @@ -0,0 +1,7 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": "." + } + } \ No newline at end of file diff --git a/documentation/yarn.lock b/documentation/yarn.lock new file mode 100644 index 000000000..60f6eeb31 --- /dev/null +++ b/documentation/yarn.lock @@ -0,0 +1,9626 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@algolia/autocomplete-core@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" + integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-plugin-algolia-insights@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" + integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-preset-algolia@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" + integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== + dependencies: + "@algolia/autocomplete-shared" "1.9.3" + +"@algolia/autocomplete-shared@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" + integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== + +"@algolia/cache-browser-local-storage@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz#97bc6d067a9fd932b9c922faa6b7fd6e546e1348" + integrity sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/cache-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.24.0.tgz#81a8d3a82ceb75302abb9b150a52eba9960c9744" + integrity sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g== + +"@algolia/cache-in-memory@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz#ffcf8872f3a10cb85c4f4641bdffd307933a6e44" + integrity sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/client-account@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.24.0.tgz#eba7a921d828e7c8c40a32d4add21206c7fe12f1" + integrity sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-analytics@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.24.0.tgz#9d2576c46a9093a14e668833c505ea697a1a3e30" + integrity sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.24.0.tgz#77c46eee42b9444a1d1c1583a83f7df4398a649d" + integrity sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA== + dependencies: + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-personalization@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.24.0.tgz#8b47789fb1cb0f8efbea0f79295b7c5a3850f6ae" + integrity sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-search@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.24.0.tgz#75e6c02d33ef3e0f34afd9962c085b856fc4a55f" + integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/events@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" + integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== + +"@algolia/logger-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.24.0.tgz#28d439976019ec0a46ba7a1a739ef493d4ef8123" + integrity sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA== + +"@algolia/logger-console@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.24.0.tgz#c6ff486036cd90b81d07a95aaba04461da7e1c65" + integrity sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg== + dependencies: + "@algolia/logger-common" "4.24.0" + +"@algolia/recommend@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.24.0.tgz#8a3f78aea471ee0a4836b78fd2aad4e9abcaaf34" + integrity sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/requester-browser-xhr@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz#313c5edab4ed73a052e75803855833b62dd19c16" + integrity sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/requester-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.24.0.tgz#1c60c198031f48fcdb9e34c4057a3ea987b9a436" + integrity sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA== + +"@algolia/requester-node-http@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz#4461593714031d02aa7da221c49df675212f482f" + integrity sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/transporter@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.24.0.tgz#226bb1f8af62430374c1972b2e5c8580ab275102" + integrity sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA== + dependencies: + "@algolia/cache-common" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.8.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2", "@babel/compat-data@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" + integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== + +"@babel/core@^7.21.3", "@babel/core@^7.23.3": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.3", "@babel/generator@^7.25.0", "@babel/generator@^7.25.4": + version "7.25.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.5.tgz#b31cf05b3fe8c32d206b6dad03bb0aacbde73450" + integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== + dependencies: + "@babel/types" "^7.25.4" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" + integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.4" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0", "@babel/helper-create-regexp-features-plugin@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + 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" + +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" + +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== + dependencies: + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/helpers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.25.0", "@babel/parser@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a" + integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== + dependencies: + "@babel/types" "^7.25.4" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f" + integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.3" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-async-generator-functions@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz#2afd4e639e2d055776c9f091b6c0c180ed8cf083" + integrity sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.4" + +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + +"@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-block-scoping@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-class-properties@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd" + integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== + dependencies: + "@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" + +"@babel/plugin-transform-classes@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz#d29dbb6a72d79f359952ad0b66d88518d65ef89a" + integrity sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" + +"@babel/plugin-transform-destructuring@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-function-name@^7.25.1": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== + dependencies: + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.1" + +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== + dependencies: + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-modules-systemjs@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== + dependencies: + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== + dependencies: + "@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" + +"@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-methods@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz#9bbefbe3649f470d681997e0b64a4b254d877242" + integrity sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.4" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== + dependencies: + "@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" + +"@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-constant-elements@^7.21.3": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz#71a665ed16ce618067d05f4a98130207349d82ae" + integrity sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-react-display-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" + integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-jsx-development@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" + integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.24.7" + +"@babel/plugin-transform-react-jsx@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a" + integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/types" "^7.25.2" + +"@babel/plugin-transform-react-pure-annotations@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" + integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-runtime@^7.22.9": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz#96e4ad7bfbbe0b4a7b7e6f2a533ca326cf204963" + integrity sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-regenerator "^0.6.1" + semver "^6.3.1" + +"@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-typeof-symbol@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" + +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz#be664c2a0697ffacd3423595d5edef6049e8946c" + integrity sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/preset-env@^7.20.2", "@babel/preset-env@^7.22.9": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.4.tgz#be23043d43a34a2721cd0f676c7ba6f1481f6af6" + integrity sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw== + dependencies: + "@babel/compat-data" "^7.25.4" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0" + "@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.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@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.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.4" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.25.0" + "@babel/plugin-transform-class-properties" "^7.25.4" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.25.4" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.8" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.25.1" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.25.2" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@babel/plugin-transform-modules-systemjs" "^7.25.0" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.8" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.25.4" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.8" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.25.4" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.37.1" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6", "@babel/preset-react@^7.22.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" + integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-transform-react-display-name" "^7.24.7" + "@babel/plugin-transform-react-jsx" "^7.24.7" + "@babel/plugin-transform-react-jsx-development" "^7.24.7" + "@babel/plugin-transform-react-pure-annotations" "^7.24.7" + +"@babel/preset-typescript@^7.21.0", "@babel/preset-typescript@^7.22.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime-corejs3@^7.22.6": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz#0a318b66dfc765ad10562d829fea372ed7e1eb7d" + integrity sha512-BOehWE7MgQ8W8Qn0CQnMtg2tHPHPulcS/5AVpFvs2KCK1ET+0WqZqPvnpRpFN81gYoFopdIEJX9Sgjw3ZBccPg== + dependencies: + core-js-pure "^3.30.2" + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.22.6", "@babel/runtime@^7.8.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" + integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.7", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.22.8", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e" + integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.4" + "@babel/parser" "^7.25.4" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.4" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.21.3", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.4", "@babel/types@^7.4.4": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f" + integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@braintree/sanitize-url@^6.0.1": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz#923ca57e173c6b232bbbb07347b1be982f03e783" + integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A== + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@docsearch/css@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408" + integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== + +"@docsearch/react@^3.5.2": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.1.tgz#0f826df08693293806d64277d6d9c38636211b97" + integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw== + dependencies: + "@algolia/autocomplete-core" "1.9.3" + "@algolia/autocomplete-preset-algolia" "1.9.3" + "@docsearch/css" "3.6.1" + algoliasearch "^4.19.1" + +"@docusaurus/core@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.5.2.tgz#3adedb90e7b6104592f1231043bd6bf91680c39c" + integrity sha512-4Z1WkhCSkX4KO0Fw5m/Vuc7Q3NxBG53NE5u59Rs96fWkMPZVSrzEPP16/Nk6cWb/shK7xXPndTmalJtw7twL/w== + dependencies: + "@babel/core" "^7.23.3" + "@babel/generator" "^7.23.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.22.9" + "@babel/preset-env" "^7.22.9" + "@babel/preset-react" "^7.22.5" + "@babel/preset-typescript" "^7.22.5" + "@babel/runtime" "^7.22.6" + "@babel/runtime-corejs3" "^7.22.6" + "@babel/traverse" "^7.22.8" + "@docusaurus/cssnano-preset" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + autoprefixer "^10.4.14" + babel-loader "^9.1.3" + babel-plugin-dynamic-import-node "^2.3.3" + boxen "^6.2.1" + chalk "^4.1.2" + chokidar "^3.5.3" + clean-css "^5.3.2" + cli-table3 "^0.6.3" + combine-promises "^1.1.0" + commander "^5.1.0" + copy-webpack-plugin "^11.0.0" + core-js "^3.31.1" + css-loader "^6.8.1" + css-minimizer-webpack-plugin "^5.0.1" + cssnano "^6.1.2" + del "^6.1.1" + detect-port "^1.5.1" + escape-html "^1.0.3" + eta "^2.2.0" + eval "^0.1.8" + file-loader "^6.2.0" + fs-extra "^11.1.1" + html-minifier-terser "^7.2.0" + html-tags "^3.3.1" + html-webpack-plugin "^5.5.3" + leven "^3.1.0" + lodash "^4.17.21" + mini-css-extract-plugin "^2.7.6" + p-map "^4.0.0" + postcss "^8.4.26" + postcss-loader "^7.3.3" + prompts "^2.4.2" + react-dev-utils "^12.0.1" + react-helmet-async "^1.3.0" + react-loadable "npm:@docusaurus/react-loadable@6.0.0" + react-loadable-ssr-addon-v5-slorber "^1.0.1" + react-router "^5.3.4" + react-router-config "^5.1.1" + react-router-dom "^5.3.4" + rtl-detect "^1.0.4" + semver "^7.5.4" + serve-handler "^6.1.5" + shelljs "^0.8.5" + terser-webpack-plugin "^5.3.9" + tslib "^2.6.0" + update-notifier "^6.0.2" + url-loader "^4.1.1" + webpack "^5.88.1" + webpack-bundle-analyzer "^4.9.0" + webpack-dev-server "^4.15.1" + webpack-merge "^5.9.0" + webpackbar "^5.0.2" + +"@docusaurus/cssnano-preset@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.5.2.tgz#6c1f2b2f9656f978c4694c84ab24592b04dcfab3" + integrity sha512-D3KiQXOMA8+O0tqORBrTOEQyQxNIfPm9jEaJoALjjSjc2M/ZAWcUfPQEnwr2JB2TadHw2gqWgpZckQmrVWkytA== + dependencies: + cssnano-preset-advanced "^6.1.2" + postcss "^8.4.38" + postcss-sort-media-queries "^5.2.0" + tslib "^2.6.0" + +"@docusaurus/logger@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.5.2.tgz#1150339ad56844b30734115c19c580f3b25cf5ed" + integrity sha512-LHC540SGkeLfyT3RHK3gAMK6aS5TRqOD4R72BEU/DE2M/TY8WwEUAMY576UUc/oNJXv8pGhBmQB6N9p3pt8LQw== + dependencies: + chalk "^4.1.2" + tslib "^2.6.0" + +"@docusaurus/mdx-loader@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz#99781641372c5037bcbe09bb8ade93a0e0ada57d" + integrity sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA== + dependencies: + "@docusaurus/logger" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + "@mdx-js/mdx" "^3.0.0" + "@slorber/remark-comment" "^1.0.0" + escape-html "^1.0.3" + estree-util-value-to-estree "^3.0.1" + file-loader "^6.2.0" + fs-extra "^11.1.1" + image-size "^1.0.2" + mdast-util-mdx "^3.0.0" + mdast-util-to-string "^4.0.0" + rehype-raw "^7.0.0" + remark-directive "^3.0.0" + remark-emoji "^4.0.0" + remark-frontmatter "^5.0.0" + remark-gfm "^4.0.0" + stringify-object "^3.3.0" + tslib "^2.6.0" + unified "^11.0.3" + unist-util-visit "^5.0.0" + url-loader "^4.1.1" + vfile "^6.0.1" + webpack "^5.88.1" + +"@docusaurus/module-type-aliases@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.5.2.tgz#4e8f9c0703e23b2e07ebfce96598ec83e4dd2a9e" + integrity sha512-Z+Xu3+2rvKef/YKTMxZHsEXp1y92ac0ngjDiExRdqGTmEKtCUpkbNYH8v5eXo5Ls+dnW88n6WTa+Q54kLOkwPg== + dependencies: + "@docusaurus/types" "3.5.2" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + "@types/react-router-dom" "*" + react-helmet-async "*" + react-loadable "npm:@docusaurus/react-loadable@6.0.0" + +"@docusaurus/plugin-content-blog@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.5.2.tgz#649c07c34da7603645f152bcebdf75285baed16b" + integrity sha512-R7ghWnMvjSf+aeNDH0K4fjyQnt5L0KzUEnUhmf1e3jZrv3wogeytZNN6n7X8yHcMsuZHPOrctQhXWnmxu+IRRg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + cheerio "1.0.0-rc.12" + feed "^4.2.2" + fs-extra "^11.1.1" + lodash "^4.17.21" + reading-time "^1.5.0" + srcset "^4.0.0" + tslib "^2.6.0" + unist-util-visit "^5.0.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-docs@3.5.2", "@docusaurus/plugin-content-docs@^2 || ^3": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.5.2.tgz#adcf6c0bd9a9818eb192ab831e0069ee62d31505" + integrity sha512-Bt+OXn/CPtVqM3Di44vHjE7rPCEsRCB/DMo2qoOuozB9f7+lsdrHvD0QCHdBs0uhz6deYJDppAr2VgqybKPlVQ== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + "@types/react-router-config" "^5.0.7" + combine-promises "^1.1.0" + fs-extra "^11.1.1" + js-yaml "^4.1.0" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@docusaurus/plugin-content-pages@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.5.2.tgz#2b59e43f5bc5b5176ff01835de706f1c65c2e68b" + integrity sha512-WzhHjNpoQAUz/ueO10cnundRz+VUtkjFhhaQ9jApyv1a46FPURO4cef89pyNIOMny1fjDz/NUN2z6Yi+5WUrCw== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + fs-extra "^11.1.1" + tslib "^2.6.0" + webpack "^5.88.1" + +"@docusaurus/plugin-debug@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.5.2.tgz#c25ca6a59e62a17c797b367173fe80c06fdf2f65" + integrity sha512-kBK6GlN0itCkrmHuCS6aX1wmoWc5wpd5KJlqQ1FyrF0cLDnvsYSnh7+ftdwzt7G6lGBho8lrVwkkL9/iQvaSOA== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + fs-extra "^11.1.1" + react-json-view-lite "^1.2.0" + tslib "^2.6.0" + +"@docusaurus/plugin-google-analytics@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.5.2.tgz#1143e78d1461d3c74a2746f036d25b18d4a2608d" + integrity sha512-rjEkJH/tJ8OXRE9bwhV2mb/WP93V441rD6XnM6MIluu7rk8qg38iSxS43ga2V2Q/2ib53PcqbDEJDG/yWQRJhQ== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + tslib "^2.6.0" + +"@docusaurus/plugin-google-gtag@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.5.2.tgz#60b5a9e1888c4fa16933f7c5cb5f2f2c31caad3a" + integrity sha512-lm8XL3xLkTPHFKKjLjEEAHUrW0SZBSHBE1I+i/tmYMBsjCcUB5UJ52geS5PSiOCFVR74tbPGcPHEV/gaaxFeSA== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + "@types/gtag.js" "^0.0.12" + tslib "^2.6.0" + +"@docusaurus/plugin-google-tag-manager@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.5.2.tgz#7a37334d2e7f00914d61ad05bc09391c4db3bfda" + integrity sha512-QkpX68PMOMu10Mvgvr5CfZAzZQFx8WLlOiUQ/Qmmcl6mjGK6H21WLT5x7xDmcpCoKA/3CegsqIqBR+nA137lQg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + tslib "^2.6.0" + +"@docusaurus/plugin-sitemap@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.5.2.tgz#9c940b27f3461c54d65295cf4c52cb20538bd360" + integrity sha512-DnlqYyRAdQ4NHY28TfHuVk414ft2uruP4QWCH//jzpHjqvKyXjj2fmDtI8RPUBh9K8iZKFMHRnLtzJKySPWvFA== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + fs-extra "^11.1.1" + sitemap "^7.1.1" + tslib "^2.6.0" + +"@docusaurus/preset-classic@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.5.2.tgz#977f78510bbc556aa0539149eef960bb7ab52bd9" + integrity sha512-3ihfXQ95aOHiLB5uCu+9PRy2gZCeSZoDcqpnDvf3B+sTrMvMTr8qRUzBvWkoIqc82yG5prCboRjk1SVILKx6sg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/plugin-content-blog" "3.5.2" + "@docusaurus/plugin-content-docs" "3.5.2" + "@docusaurus/plugin-content-pages" "3.5.2" + "@docusaurus/plugin-debug" "3.5.2" + "@docusaurus/plugin-google-analytics" "3.5.2" + "@docusaurus/plugin-google-gtag" "3.5.2" + "@docusaurus/plugin-google-tag-manager" "3.5.2" + "@docusaurus/plugin-sitemap" "3.5.2" + "@docusaurus/theme-classic" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/theme-search-algolia" "3.5.2" + "@docusaurus/types" "3.5.2" + +"@docusaurus/theme-classic@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.5.2.tgz#602ddb63d987ab1f939e3760c67bc1880f01c000" + integrity sha512-XRpinSix3NBv95Rk7xeMF9k4safMkwnpSgThn0UNQNumKvmcIYjfkwfh2BhwYh/BxMXQHJ/PdmNh22TQFpIaYg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/plugin-content-blog" "3.5.2" + "@docusaurus/plugin-content-docs" "3.5.2" + "@docusaurus/plugin-content-pages" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/theme-translations" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + "@mdx-js/react" "^3.0.0" + clsx "^2.0.0" + copy-text-to-clipboard "^3.2.0" + infima "0.2.0-alpha.44" + lodash "^4.17.21" + nprogress "^0.2.0" + postcss "^8.4.26" + prism-react-renderer "^2.3.0" + prismjs "^1.29.0" + react-router-dom "^5.3.4" + rtlcss "^4.1.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-common@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.5.2.tgz#b507ab869a1fba0be9c3c9d74f2f3d74c3ac78b2" + integrity sha512-QXqlm9S6x9Ibwjs7I2yEDgsCocp708DrCrgHgKwg2n2AY0YQ6IjU0gAK35lHRLOvAoJUfCKpQAwUykB0R7+Eew== + dependencies: + "@docusaurus/mdx-loader" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router-config" "*" + clsx "^2.0.0" + parse-numeric-range "^1.3.0" + prism-react-renderer "^2.3.0" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-mermaid@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-mermaid/-/theme-mermaid-3.5.2.tgz#7d64289e6f2493b9fc0d5f2e8f66da4c9d884db8" + integrity sha512-7vWCnIe/KoyTN1Dc55FIyqO5hJ3YaV08Mr63Zej0L0mX1iGzt+qKSmeVUAJ9/aOalUhF0typV0RmNUSy5FAmCg== + dependencies: + "@docusaurus/core" "3.5.2" + "@docusaurus/module-type-aliases" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/types" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + mermaid "^10.4.0" + tslib "^2.6.0" + +"@docusaurus/theme-search-algolia@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.2.tgz#466c83ca7e8017d95ae6889ccddc5ef8bf6b61c6" + integrity sha512-qW53kp3VzMnEqZGjakaV90sst3iN1o32PH+nawv1uepROO8aEGxptcq2R5rsv7aBShSRbZwIobdvSYKsZ5pqvA== + dependencies: + "@docsearch/react" "^3.5.2" + "@docusaurus/core" "3.5.2" + "@docusaurus/logger" "3.5.2" + "@docusaurus/plugin-content-docs" "3.5.2" + "@docusaurus/theme-common" "3.5.2" + "@docusaurus/theme-translations" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-validation" "3.5.2" + algoliasearch "^4.18.0" + algoliasearch-helper "^3.13.3" + clsx "^2.0.0" + eta "^2.2.0" + fs-extra "^11.1.1" + lodash "^4.17.21" + tslib "^2.6.0" + utility-types "^3.10.0" + +"@docusaurus/theme-translations@3.5.2", "@docusaurus/theme-translations@^2 || ^3": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.5.2.tgz#38f9ebf2a5d860397022206a05fef66c08863c89" + integrity sha512-GPZLcu4aT1EmqSTmbdpVrDENGR2yObFEX8ssEFYTCiAIVc0EihNSdOIBTazUvgNqwvnoU1A8vIs1xyzc3LITTw== + dependencies: + fs-extra "^11.1.1" + tslib "^2.6.0" + +"@docusaurus/tsconfig@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/tsconfig/-/tsconfig-3.5.2.tgz#98878103ba217bff355cd8944926d9ca06e6e153" + integrity sha512-rQ7toURCFnWAIn8ubcquDs0ewhPwviMzxh6WpRjBW7sJVCXb6yzwUaY3HMNa0VXCFw+qkIbFywrMTf+Pb4uHWQ== + +"@docusaurus/types@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.5.2.tgz#058019dbeffbee2d412c3f72569e412a727f9608" + integrity sha512-N6GntLXoLVUwkZw7zCxwy9QiuEXIcTVzA9AkmNw16oc0AP3SXLrMmDMMBIfgqwuKWa6Ox6epHol9kMtJqekACw== + dependencies: + "@mdx-js/mdx" "^3.0.0" + "@types/history" "^4.7.11" + "@types/react" "*" + commander "^5.1.0" + joi "^17.9.2" + react-helmet-async "^1.3.0" + utility-types "^3.10.0" + webpack "^5.88.1" + webpack-merge "^5.9.0" + +"@docusaurus/utils-common@3.5.2", "@docusaurus/utils-common@^2 || ^3": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.5.2.tgz#4d7f5e962fbca3e2239d80457aa0e4bd3d8f7e0a" + integrity sha512-i0AZjHiRgJU6d7faQngIhuHKNrszpL/SHQPgF1zH4H+Ij6E9NBYGy6pkcGWToIv7IVPbs+pQLh1P3whn0gWXVg== + dependencies: + tslib "^2.6.0" + +"@docusaurus/utils-validation@3.5.2", "@docusaurus/utils-validation@^2 || ^3": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.5.2.tgz#1b2b2f02082781cc8ce713d4c85e88d6d2fc4eb3" + integrity sha512-m+Foq7augzXqB6HufdS139PFxDC5d5q2QKZy8q0qYYvGdI6nnlNsGH4cIGsgBnV7smz+mopl3g4asbSDvMV0jA== + dependencies: + "@docusaurus/logger" "3.5.2" + "@docusaurus/utils" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + fs-extra "^11.2.0" + joi "^17.9.2" + js-yaml "^4.1.0" + lodash "^4.17.21" + tslib "^2.6.0" + +"@docusaurus/utils@3.5.2", "@docusaurus/utils@^2 || ^3": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.5.2.tgz#17763130215f18d7269025903588ef7fb373e2cb" + integrity sha512-33QvcNFh+Gv+C2dP9Y9xWEzMgf3JzrpL2nW9PopidiohS1nDcyknKRx2DWaFvyVTTYIkkABVSr073VTj/NITNA== + dependencies: + "@docusaurus/logger" "3.5.2" + "@docusaurus/utils-common" "3.5.2" + "@svgr/webpack" "^8.1.0" + escape-string-regexp "^4.0.0" + file-loader "^6.2.0" + fs-extra "^11.1.1" + github-slugger "^1.5.0" + globby "^11.1.0" + gray-matter "^4.0.3" + jiti "^1.20.0" + js-yaml "^4.1.0" + lodash "^4.17.21" + micromatch "^4.0.5" + prompts "^2.4.2" + resolve-pathname "^3.0.0" + shelljs "^0.8.5" + tslib "^2.6.0" + url-loader "^4.1.1" + utility-types "^3.10.0" + webpack "^5.88.1" + +"@easyops-cn/autocomplete.js@^0.38.1": + version "0.38.1" + resolved "https://registry.yarnpkg.com/@easyops-cn/autocomplete.js/-/autocomplete.js-0.38.1.tgz#46dff5795a9a032fa9b9250fdf63ca6c61c07629" + integrity sha512-drg76jS6syilOUmVNkyo1c7ZEBPcPuK+aJA7AksM5ZIIbV57DMHCywiCr+uHyv8BE5jUTU98j/H7gVrkHrWW3Q== + dependencies: + cssesc "^3.0.0" + immediate "^3.2.3" + +"@easyops-cn/docusaurus-search-local@^0.44.5": + version "0.44.5" + resolved "https://registry.yarnpkg.com/@easyops-cn/docusaurus-search-local/-/docusaurus-search-local-0.44.5.tgz#13ae433868809a3e5dd92dbf44a2b1e6b2061b91" + integrity sha512-jT3wuYVzRoeB1gea+2iDtOMme0fD2h3M8HDVgs3garITO6vRxvEraFRVlYkfjLN9BkmzjMlz9nn7MI4qIx8utw== + dependencies: + "@docusaurus/plugin-content-docs" "^2 || ^3" + "@docusaurus/theme-translations" "^2 || ^3" + "@docusaurus/utils" "^2 || ^3" + "@docusaurus/utils-common" "^2 || ^3" + "@docusaurus/utils-validation" "^2 || ^3" + "@easyops-cn/autocomplete.js" "^0.38.1" + "@node-rs/jieba" "^1.6.0" + cheerio "^1.0.0" + clsx "^1.1.1" + debug "^4.2.0" + fs-extra "^10.0.0" + klaw-sync "^6.0.0" + lunr "^2.3.9" + lunr-languages "^1.4.0" + mark.js "^8.11.1" + tslib "^2.4.0" + +"@emnapi/core@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.2.0.tgz#7b738e5033738132bf6af0b8fae7b05249bdcbd7" + integrity sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w== + dependencies: + "@emnapi/wasi-threads" "1.0.1" + tslib "^2.4.0" + +"@emnapi/runtime@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.2.0.tgz#71d018546c3a91f3b51106530edbc056b9f2f2e3" + integrity sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz#d7ae71fd2166b1c916c6cd2d0df2ef565a2e1a5b" + integrity sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw== + dependencies: + tslib "^2.4.0" + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + 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" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" + integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + +"@mdx-js/mdx@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.0.1.tgz#617bd2629ae561fdca1bb88e3badd947f5a82191" + integrity sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdx" "^2.0.0" + collapse-white-space "^2.0.0" + devlop "^1.0.0" + estree-util-build-jsx "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-util-to-js "^2.0.0" + estree-walker "^3.0.0" + hast-util-to-estree "^3.0.0" + hast-util-to-jsx-runtime "^2.0.0" + markdown-extensions "^2.0.0" + periscopic "^3.0.0" + remark-mdx "^3.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + source-map "^0.7.0" + unified "^11.0.0" + unist-util-position-from-estree "^2.0.0" + unist-util-stringify-position "^4.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +"@mdx-js/react@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.0.1.tgz#997a19b3a5b783d936c75ae7c47cfe62f967f746" + integrity sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A== + dependencies: + "@types/mdx" "^2.0.0" + +"@napi-rs/wasm-runtime@^0.2.3": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz#d27788176f250d86e498081e3c5ff48a17606918" + integrity sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ== + dependencies: + "@emnapi/core" "^1.1.0" + "@emnapi/runtime" "^1.1.0" + "@tybys/wasm-util" "^0.9.0" + +"@node-rs/jieba-android-arm-eabi@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-android-arm-eabi/-/jieba-android-arm-eabi-1.10.3.tgz#821af26a4953b3fbdf2f80a4d08a9d9114b40bea" + integrity sha512-fuqVtaYlUKZg3cqagYFxj1DSa7ZHKXLle4iGH2kbQWg7Kw6cf7aCYBHIUZuH5sliK10M/CWccZ+SGRUwcSGfbg== + +"@node-rs/jieba-android-arm64@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-android-arm64/-/jieba-android-arm64-1.10.3.tgz#e5c285fb8de71739dfa3a83d894adcadb799c404" + integrity sha512-iuZZZq5yD9lT+AgaXpFe19gtAsIecUODRLLaBFbavjgjLk5cumv38ytWjS36s/eqptwI15MQfysSYOlWtMEG5g== + +"@node-rs/jieba-darwin-arm64@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-darwin-arm64/-/jieba-darwin-arm64-1.10.3.tgz#67df85df39ff60dcc3e084f6e36e5182779b69ad" + integrity sha512-dwPhkav1tEARskwPz91UUXL2NXy4h0lJYTuJzpGgwXxm552zBM2JJ41kjah1364j+EOq5At3NQvf5r5rH89phQ== + +"@node-rs/jieba-darwin-x64@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-darwin-x64/-/jieba-darwin-x64-1.10.3.tgz#ffdc8a63335294d7c68d3aebec870ec0824ebe98" + integrity sha512-kjxvV6G1baQo/2I3mELv5qGv4Q0rhd5srwXhypSxMWZFtSpNwCDsLcIOR5bvMBci6QVFfZOs6WD6DKiWVz0SlA== + +"@node-rs/jieba-freebsd-x64@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-freebsd-x64/-/jieba-freebsd-x64-1.10.3.tgz#188349a9074b200af4a3e8a0ea169f45efd6c162" + integrity sha512-QYTsn+zlWRil+MuBeLfTK5Md4GluOf2lHnFqjrOZW2oMgNOvxB3qoLV4TUf70S/E2XHeP6PUdjCKItX8C7GQPg== + +"@node-rs/jieba-linux-arm-gnueabihf@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-linux-arm-gnueabihf/-/jieba-linux-arm-gnueabihf-1.10.3.tgz#e1831b7b08a32904b12860555978c50222a97b54" + integrity sha512-UFB43kDOvqmbRl99e3GPwaTuwJZaAvgLaMTvBkmxww4MpQH6G1k31RLzMW/S21uSQso2lj6W/Mm59gaJk2FiyA== + +"@node-rs/jieba-linux-arm64-gnu@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-linux-arm64-gnu/-/jieba-linux-arm64-gnu-1.10.3.tgz#326712eb7418f9796b113af93afe59ab64c37add" + integrity sha512-bu++yWi10wZtnS5uLcwxzxKmHVT77NgQMK8JiQr1TWCl3Y1Th7CnEHQtxfVB489edDK8l644h1/4zSTe5fRnOQ== + +"@node-rs/jieba-linux-arm64-musl@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-linux-arm64-musl/-/jieba-linux-arm64-musl-1.10.3.tgz#6a3149d5abbe09f7c7748da219d5c39522b36c8a" + integrity sha512-pJh+SzrK1HaKakhdFM+ew9vXwpZqMxy9u0U7J4GT+3GvOwnAZ+KjeaHebIfgOz7ZHvp/T4YBNf8oWW4zwj3AJw== + +"@node-rs/jieba-linux-x64-gnu@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-linux-x64-gnu/-/jieba-linux-x64-gnu-1.10.3.tgz#5d75fbc62a36cbb79137284abe4f432da06c2c80" + integrity sha512-GF5cfvu/0wXO2fVX/XV3WYH/xEGWzMBvfqLhGiA1OA1xHIufnA1T7uU3ZXkyoNi5Bzf6dmxnwtE4CJL0nvhwjQ== + +"@node-rs/jieba-linux-x64-musl@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-linux-x64-musl/-/jieba-linux-x64-musl-1.10.3.tgz#fce3aa9c394dbc51b4b3e92d29b385b4c4f23aec" + integrity sha512-h45HMVU/hgzQ0saXNsK9fKlGdah1i1cXZULpB5vQRlRL2ZIaGp+ULtWTogS7vkoo2K8s2l4tqakWMg9eUjIJ2A== + +"@node-rs/jieba-wasm32-wasi@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-wasm32-wasi/-/jieba-wasm32-wasi-1.10.3.tgz#b852eb2c9b8c81c5514ed8bb76d74c1cdf66fe76" + integrity sha512-vuoQ62vVoedNGcBmIi4UWdtNBOZG8B+vDYfjx3FD6rNg6g/RgwbVjYXbOVMOQwX06Ob9CfrutICXdUGHgoxzEQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.3" + +"@node-rs/jieba-win32-arm64-msvc@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-win32-arm64-msvc/-/jieba-win32-arm64-msvc-1.10.3.tgz#eefce48df8ec0496a0e45593d0b5f8981bb32b80" + integrity sha512-B8t4dh56TZnMLBoYWDkopf1ed37Ru/iU1qiIeBkbZWXGmNBChNZUOd//eaPOFjx8m9Sfc8bkj3FBRWt/kTAhmw== + +"@node-rs/jieba-win32-ia32-msvc@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-win32-ia32-msvc/-/jieba-win32-ia32-msvc-1.10.3.tgz#edfb74e880a32f66a6810502957b62f9b042b487" + integrity sha512-SKuPGZJ5T+X4jOn1S8LklOSZ6HC7UBiw0hwi2z9uqX6WgElquLjGi/xfZ2gPqffeR/5K/PUu7aqYUUPL1XonVQ== + +"@node-rs/jieba-win32-x64-msvc@1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba-win32-x64-msvc/-/jieba-win32-x64-msvc-1.10.3.tgz#285a24134d9c367b11d73060bdc37c351c3e60b5" + integrity sha512-j9I4+a/tf2hsLu8Sr0NhcLBVNBBQctO2mzcjemMpRa1SlEeODyic9RIyP8Ljz3YTN6MYqKh1KA9iR1xvxjxYFg== + +"@node-rs/jieba@^1.6.0": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@node-rs/jieba/-/jieba-1.10.3.tgz#05756df55c99f2c4f68c5e41d258edec21a97395" + integrity sha512-SG0CWHmhIveH6upJURgymDKLertEPYbOc5NSFIpbZWW1W2MpqgumVteQO+5YBlkmpR6jMNDPWNQyQwkB6HoeNg== + optionalDependencies: + "@node-rs/jieba-android-arm-eabi" "1.10.3" + "@node-rs/jieba-android-arm64" "1.10.3" + "@node-rs/jieba-darwin-arm64" "1.10.3" + "@node-rs/jieba-darwin-x64" "1.10.3" + "@node-rs/jieba-freebsd-x64" "1.10.3" + "@node-rs/jieba-linux-arm-gnueabihf" "1.10.3" + "@node-rs/jieba-linux-arm64-gnu" "1.10.3" + "@node-rs/jieba-linux-arm64-musl" "1.10.3" + "@node-rs/jieba-linux-x64-gnu" "1.10.3" + "@node-rs/jieba-linux-x64-musl" "1.10.3" + "@node-rs/jieba-wasm32-wasi" "1.10.3" + "@node-rs/jieba-win32-arm64-msvc" "1.10.3" + "@node-rs/jieba-win32-ia32-msvc" "1.10.3" + "@node-rs/jieba-win32-x64-msvc" "1.10.3" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pnpm/config.env-replace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" + integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^2.1.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz#bb375a571a0bd63ab0a23bece33033c683e9b6b0" + integrity sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw== + dependencies: + "@pnpm/config.env-replace" "^1.1.0" + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.25" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.25.tgz#f077fdc0b5d0078d30893396ff4827a13f99e817" + integrity sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ== + +"@reactflow/background@11.3.14": + version "11.3.14" + resolved "https://registry.yarnpkg.com/@reactflow/background/-/background-11.3.14.tgz#778ca30174f3de77fc321459ab3789e66e71a699" + integrity sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA== + dependencies: + "@reactflow/core" "11.11.4" + classcat "^5.0.3" + zustand "^4.4.1" + +"@reactflow/controls@11.2.14": + version "11.2.14" + resolved "https://registry.yarnpkg.com/@reactflow/controls/-/controls-11.2.14.tgz#508ed2c40d23341b3b0919dd11e76fd49cf850c7" + integrity sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw== + dependencies: + "@reactflow/core" "11.11.4" + classcat "^5.0.3" + zustand "^4.4.1" + +"@reactflow/core@11.11.4": + version "11.11.4" + resolved "https://registry.yarnpkg.com/@reactflow/core/-/core-11.11.4.tgz#89bd86d1862aa1416f3f49926cede7e8c2aab6a7" + integrity sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q== + dependencies: + "@types/d3" "^7.4.0" + "@types/d3-drag" "^3.0.1" + "@types/d3-selection" "^3.0.3" + "@types/d3-zoom" "^3.0.1" + classcat "^5.0.3" + d3-drag "^3.0.0" + d3-selection "^3.0.0" + d3-zoom "^3.0.0" + zustand "^4.4.1" + +"@reactflow/minimap@11.7.14": + version "11.7.14" + resolved "https://registry.yarnpkg.com/@reactflow/minimap/-/minimap-11.7.14.tgz#298d7a63cb1da06b2518c99744f716560c88ca73" + integrity sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ== + dependencies: + "@reactflow/core" "11.11.4" + "@types/d3-selection" "^3.0.3" + "@types/d3-zoom" "^3.0.1" + classcat "^5.0.3" + d3-selection "^3.0.0" + d3-zoom "^3.0.0" + zustand "^4.4.1" + +"@reactflow/node-resizer@2.2.14": + version "2.2.14" + resolved "https://registry.yarnpkg.com/@reactflow/node-resizer/-/node-resizer-2.2.14.tgz#1810c0ce51aeb936f179466a6660d1e02c7a77a8" + integrity sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA== + dependencies: + "@reactflow/core" "11.11.4" + classcat "^5.0.4" + d3-drag "^3.0.0" + d3-selection "^3.0.0" + zustand "^4.4.1" + +"@reactflow/node-toolbar@1.3.14": + version "1.3.14" + resolved "https://registry.yarnpkg.com/@reactflow/node-toolbar/-/node-toolbar-1.3.14.tgz#c6ffc76f82acacdce654f2160dc9852162d6e7c9" + integrity sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ== + dependencies: + "@reactflow/core" "11.11.4" + classcat "^5.0.3" + zustand "^4.4.1" + +"@remix-run/router@1.19.1": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.1.tgz#984771bfd1de2715f42394c87fb716c1349e014f" + integrity sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg== + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/is@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@slorber/remark-comment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@slorber/remark-comment/-/remark-comment-1.0.0.tgz#2a020b3f4579c89dec0361673206c28d67e08f5a" + integrity sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.1.0" + micromark-util-symbol "^1.0.1" + +"@svgr/babel-plugin-add-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" + integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== + +"@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" + integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== + +"@svgr/babel-plugin-svg-dynamic-title@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" + integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== + +"@svgr/babel-plugin-svg-em-dimensions@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" + integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== + +"@svgr/babel-plugin-transform-react-native-svg@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" + integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== + +"@svgr/babel-plugin-transform-svg-component@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" + integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== + +"@svgr/babel-preset@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" + integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "8.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "8.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" + "@svgr/babel-plugin-transform-svg-component" "8.0.0" + +"@svgr/core@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" + integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + snake-case "^3.0.4" + +"@svgr/hast-util-to-babel-ast@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" + integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" + integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + "@svgr/hast-util-to-babel-ast" "8.0.0" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" + integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== + dependencies: + cosmiconfig "^8.1.3" + deepmerge "^4.3.1" + svgo "^3.0.2" + +"@svgr/webpack@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" + integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== + dependencies: + "@babel/core" "^7.21.3" + "@babel/plugin-transform-react-constant-elements" "^7.21.3" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@svgr/core" "8.1.0" + "@svgr/plugin-jsx" "8.1.0" + "@svgr/plugin-svgo" "8.1.0" + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tybys/wasm-util@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355" + integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw== + dependencies: + tslib "^2.4.0" + +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/d3-array@*": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" + integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" + integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== + +"@types/d3-drag@*", "@types/d3-drag@^3.0.1": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.10.tgz#6dc8fc6e1f35704f3b057090beeeb7ac674bff1a" + integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz#6023fb3b2d463229f2d680f9ac4b47466f71f17b" + integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a" + integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" + integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== + +"@types/d3-scale-chromatic@*", "@types/d3-scale-chromatic@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz#fc0db9c10e789c351f4c42d96f31f2e4df8f5644" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + +"@types/d3-scale@*", "@types/d3-scale@^4.0.3": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*", "@types/d3-selection@^3.0.3": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.10.tgz#98cdcf986d0986de6912b5892e7c015a95ca27fe" + integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== + +"@types/d3-shape@*": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" + integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.3.tgz#3c186bbd9d12b9d84253b6be6487ca56b54f88be" + integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.8.tgz#677707f5eed5b24c66a1918cde05963021351a8f" + integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*", "@types/d3-zoom@^3.0.1": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.0": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/estree-jsx@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.33" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/geojson@*": + version "7946.0.14" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" + integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + +"@types/gtag.js@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" + integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== + +"@types/hast@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/history@^4.7.11": + version "4.7.11" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" + integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/http-proxy@^1.17.8": + version "1.17.15" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.15.tgz#12118141ce9775a6499ecb4c01d02f90fc839d36" + integrity sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/mdast@^3.0.0": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== + dependencies: + "@types/unist" "^2" + +"@types/mdast@^4.0.0", "@types/mdast@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.13.tgz#68f6877043d377092890ff5b298152b0a21671bd" + integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/ms@*": + version "0.7.34" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" + integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "22.5.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.0.tgz#10f01fe9465166b4cab72e75f60d8b99d019f958" + integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg== + dependencies: + undici-types "~6.19.2" + +"@types/node@^17.0.5": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prismjs@^1.26.0": + version "1.26.4" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.4.tgz#1a9e1074619ce1d7322669e5b46fbe823925103a" + integrity sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg== + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-router-config@*", "@types/react-router-config@^5.0.7": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.11.tgz#2761a23acc7905a66a94419ee40294a65aaa483a" + integrity sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "^5.1.0" + +"@types/react-router-dom@*": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" + integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*", "@types/react-router@^5.1.0": + version "5.1.20" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" + integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== + dependencies: + "@types/history" "^4.7.11" + "@types/react" "*" + +"@types/react@*": + version "18.3.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.4.tgz#dfdd534a1d081307144c00e325c06e00312c93a3" + integrity sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/sax@^1.2.1": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.7.tgz#ba5fe7df9aa9c89b6dff7688a19023dd2963091d" + integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== + dependencies: + "@types/node" "*" + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-index@^1.9.1": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/sockjs@^0.3.33": + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + dependencies: + "@types/node" "*" + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/unist@^2", "@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + +"@types/ws@^8.5.5": + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@ungap/structured-clone@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.6" + "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + +"@webassemblyjs/floating-point-hex-parser@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" + integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + +"@webassemblyjs/helper-api-error@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" + integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + +"@webassemblyjs/helper-numbers@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" + integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.6" + "@webassemblyjs/helper-api-error" "1.11.6" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" + integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + dependencies: + "@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@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" + integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" + integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.6": + version "1.11.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" + integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + dependencies: + "@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@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@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@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + dependencies: + "@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@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + dependencies: + "@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@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + dependencies: + "@webassemblyjs/ast" "1.12.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== + +acorn-jsx@^5.0.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.0: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.7.1, acorn@^8.8.2: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.2, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +ajv@^8.0.0, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +algoliasearch-helper@^3.13.3: + version "3.22.4" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.22.4.tgz#a9de9b69a79528c65d0149978c0d5bece7240484" + integrity sha512-fvBCywguW9f+939S6awvRMstqMF1XXcd2qs1r1aGqL/PJ1go/DqN06tWmDVmhCDqBJanm++imletrQWf0G2S1g== + dependencies: + "@algolia/events" "^4.0.1" + +algoliasearch@^4.18.0, algoliasearch@^4.19.1: + version "4.24.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.24.0.tgz#b953b3e2309ef8f25da9de311b95b994ac918275" + integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-account" "4.24.0" + "@algolia/client-analytics" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-personalization" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/recommend" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + +ansi-align@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +astring@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" + integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +autoprefixer@^10.4.14, autoprefixer@^10.4.19: + version "10.4.20" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + dependencies: + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.1" + postcss-value-parser "^4.2.0" + +babel-loader@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.3.tgz#3d0e01b4e69760cc694ee306fe16d358aa1c6f9a" + integrity sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw== + dependencies: + find-cache-dir "^4.0.0" + schema-utils "^4.0.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.6: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boxen@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" + integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== + dependencies: + ansi-align "^3.0.1" + camelcase "^6.2.0" + chalk "^4.1.2" + cli-boxes "^3.0.0" + string-width "^5.0.1" + type-fest "^2.5.0" + widest-line "^4.0.1" + wrap-ansi "^8.0.1" + +boxen@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" + integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== + dependencies: + ansi-align "^3.0.1" + camelcase "^7.0.1" + chalk "^5.2.0" + cli-boxes "^3.0.0" + string-width "^5.1.2" + type-fest "^2.13.0" + widest-line "^4.0.1" + wrap-ansi "^8.1.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@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" + +call-bind@^1.0.5, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" + integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646: + version "1.0.30001653" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz#b8af452f8f33b1c77f122780a4aecebea0caca56" + integrity sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.0.1, chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@1.0.0-rc.12: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +cheerio@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0.tgz#1ede4895a82f26e8af71009f961a9b8cb60d6a81" + integrity sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.1.0" + encoding-sniffer "^0.2.0" + htmlparser2 "^9.1.0" + parse5 "^7.1.2" + parse5-htmlparser2-tree-adapter "^7.0.0" + parse5-parser-stream "^7.1.2" + undici "^6.19.5" + whatwg-mimetype "^4.0.0" + +chokidar@^3.4.2, chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +classcat@^5.0.3, classcat@^5.0.4: + version "5.0.5" + resolved "https://registry.yarnpkg.com/classcat/-/classcat-5.0.5.tgz#8c209f359a93ac302404a10161b501eba9c09c77" + integrity sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w== + +clean-css@^5.2.2, clean-css@^5.3.2, clean-css@~5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" + integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== + +cli-table3@^0.6.3: + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +clsx@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +collapse-white-space@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" + integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combine-promises@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" + integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" + integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== + dependencies: + dot-prop "^6.0.1" + graceful-fs "^4.2.6" + unique-string "^3.0.0" + write-file-atomic "^3.0.3" + xdg-basedir "^5.0.1" + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +consola@^2.15.3: + version "2.15.3" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" + integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +copy-text-to-clipboard@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" + integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== + +copy-webpack-plugin@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" + integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== + dependencies: + fast-glob "^3.2.11" + glob-parent "^6.0.1" + globby "^13.1.1" + normalize-path "^3.0.0" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" + +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== + dependencies: + browserslist "^4.23.3" + +core-js-pure@^3.30.2: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.38.1.tgz#e8534062a54b7221344884ba9b52474be495ada3" + integrity sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ== + +core-js@^3.31.1: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.38.1.tgz#aa375b79a286a670388a1a363363d53677c0383e" + integrity sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" + integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== + dependencies: + type-fest "^1.0.1" + +css-declaration-sorter@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" + integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + +css-loader@^6.8.1: + version "6.11.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" + integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== + dependencies: + icss-utils "^5.1.0" + postcss "^8.4.33" + postcss-modules-extract-imports "^3.1.0" + postcss-modules-local-by-default "^4.0.5" + postcss-modules-scope "^3.2.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.5.4" + +css-minimizer-webpack-plugin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" + integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + cssnano "^6.0.1" + jest-worker "^29.4.3" + postcss "^8.4.24" + schema-utils "^4.0.1" + serialize-javascript "^6.0.1" + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-advanced@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz#82b090872b8f98c471f681d541c735acf8b94d3f" + integrity sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ== + dependencies: + autoprefixer "^10.4.19" + browserslist "^4.23.0" + cssnano-preset-default "^6.1.2" + postcss-discard-unused "^6.0.5" + postcss-merge-idents "^6.0.3" + postcss-reduce-idents "^6.0.3" + postcss-zindex "^6.0.2" + +cssnano-preset-default@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" + integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== + dependencies: + browserslist "^4.23.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^4.0.2" + postcss-calc "^9.0.1" + postcss-colormin "^6.1.0" + postcss-convert-values "^6.1.0" + postcss-discard-comments "^6.0.2" + postcss-discard-duplicates "^6.0.3" + postcss-discard-empty "^6.0.3" + postcss-discard-overridden "^6.0.2" + postcss-merge-longhand "^6.0.5" + postcss-merge-rules "^6.1.1" + postcss-minify-font-values "^6.1.0" + postcss-minify-gradients "^6.0.3" + postcss-minify-params "^6.1.0" + postcss-minify-selectors "^6.0.4" + postcss-normalize-charset "^6.0.2" + postcss-normalize-display-values "^6.0.2" + postcss-normalize-positions "^6.0.2" + postcss-normalize-repeat-style "^6.0.2" + postcss-normalize-string "^6.0.2" + postcss-normalize-timing-functions "^6.0.2" + postcss-normalize-unicode "^6.1.0" + postcss-normalize-url "^6.0.2" + postcss-normalize-whitespace "^6.0.2" + postcss-ordered-values "^6.0.2" + postcss-reduce-initial "^6.1.0" + postcss-reduce-transforms "^6.0.2" + postcss-svgo "^6.0.3" + postcss-unique-selectors "^6.0.4" + +cssnano-utils@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" + integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== + +cssnano@^6.0.1, cssnano@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" + integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== + dependencies: + cssnano-preset-default "^6.1.2" + lilconfig "^3.1.1" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape@^3.28.1: + version "3.30.2" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.2.tgz#94149707fb6547a55e3b44f03ffe232706212161" + integrity sha512-oICxQsjW8uSaRmn4UK/jkczKOqTrVqt5/1WL0POiJUT2EKNc9STM4hYFHv917yu55aTBMFNRzymlJhVAiWPCxw== + +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3, d3-drag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.1.tgz#6027cf51246f9b2ebd64f99e01dc7c3364033a4d" + integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +d3-scale-chromatic@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.2.0: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3, d3-zoom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.4.0, d3@^7.8.2: + version "7.9.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.9.0.tgz#579e7acb3d749caf8860bd1741ae8d371070cd5d" + integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre-d3-es@7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc" + integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== + dependencies: + d3 "^7.8.2" + lodash-es "^4.17.21" + +dagre@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" + integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== + dependencies: + graphlib "^2.1.8" + lodash "^4.17.15" + +dayjs@^1.11.7: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9, debug@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +del@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== + 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" + +delaunator@5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" + integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== + dependencies: + robust-predicates "^3.0.2" + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.5.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" + integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== + dependencies: + address "^1.0.1" + debug "4" + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +diff@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-packet@^5.2.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +dompurify@^3.0.5: + version "3.1.6" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.1.6.tgz#43c714a94c6a7b8801850f82e756685300a027e2" + integrity sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ== + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +domutils@^3.0.1, domutils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" + integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== + dependencies: + is-obj "^2.0.0" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.5.4: + version "1.5.13" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6" + integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== + +elkjs@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.9.3.tgz#16711f8ceb09f1b12b99e971b138a8384a529161" + integrity sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojilib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" + integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emoticon@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" + integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding-sniffer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz#799569d66d443babe82af18c9f403498365ef1d5" + integrity sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg== + dependencies: + iconv-lite "^0.6.3" + whatwg-encoding "^3.1.1" + +enhanced-resolve@^5.17.1: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^1.2.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-goat@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" + integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-util-attach-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" + integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" + integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" + integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== + +estree-util-to-js@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" + integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.2.tgz#d2f0e5d350a6c181673eb7299743325b86a9bf5c" + integrity sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-visit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" + integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^3.0.0" + +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eta@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" + integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eval@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" + integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== + dependencies: + "@types/node" "*" + require-like ">= 0.1.1" + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + 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" + +express@^4.17.3: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +feed@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" + integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== + dependencies: + xml-js "^1.6.11" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.0.0: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +fork-ts-checker-webpack-plugin@^6.5.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" + integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +github-slugger@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + 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" + +globby@^13.1.1: + version "13.2.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" + integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.3.0" + ignore "^5.2.4" + merge2 "^1.4.1" + slash "^4.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +got@^12.1.0: + version "12.6.1" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" + integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== + dependencies: + "@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" + +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphlib@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-yarn@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" + integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== + +hasown@^2.0.0, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hast-util-from-parse5@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz#654a5676a41211e14ee80d1b1758c399a0327651" + integrity sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + hastscript "^8.0.0" + property-information "^6.0.0" + vfile "^6.0.0" + vfile-location "^5.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-raw@^9.0.0: + version "9.0.4" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.0.4.tgz#2da03e37c46eb1a6f1391f02f9b84ae65818f7ed" + integrity sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-from-parse5 "^8.0.0" + hast-util-to-parse5 "^8.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + parse5 "^7.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-to-estree@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz#f2afe5e869ddf0cf690c75f9fc699f3180b51b19" + integrity sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-attach-comments "^3.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unist-util-position "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-jsx-runtime@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz#3ed27caf8dc175080117706bf7269404a0aa4f7c" + integrity sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^1.0.0" + unist-util-position "^5.0.0" + vfile-message "^4.0.0" + +hast-util-to-parse5@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" + integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + devlop "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-8.0.0.tgz#4ef795ec8dee867101b9f23cc830d4baf4fd781a" + integrity sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +html-escaper@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-minifier-terser@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +html-webpack-plugin@^5.5.3: + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + +htmlparser2@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.1.0.tgz#cdb498d8a75a51f739b61d3f718136c369bc8c23" + integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.1.0" + entities "^4.5.0" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ignore@^5.2.0, ignore@^5.2.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +image-size@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" + +immediate@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== + +immer@^9.0.7: + version "9.0.21" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +import-fresh@^3.1.0, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infima@0.2.0-alpha.44: + version "0.2.0-alpha.44" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.44.tgz#9cd9446e473b44d49763f48efabe31f32440861d" + integrity sha512-tuRkUSO/lB3rEhLJk25atwAjgLuzq070+pOW8XcvpHky/YbENnRRdPd85IBkyeTgttmOy5ah+yHYsK1HhUd4lQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +inline-style-parser@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.3.tgz#e35c5fb45f3a83ed7849fe487336eb7efa25971c" + integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g== + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + dependencies: + hasown "^2.0.2" + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-npm@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" + integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-reference@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is-yarn-global@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" + integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + 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" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^29.4.3: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.20.0: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +joi@^17.9.2: + version "17.13.3" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@^2.1.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +katex@^0.16.9: + version "0.16.11" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.11.tgz#4bc84d5584f996abece5f01c6ad11304276a33f5" + integrity sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ== + dependencies: + commander "^8.3.0" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +khroma@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" + integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +latest-version@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" + integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== + dependencies: + package-json "^8.1.0" + +launch-editor@^2.6.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.8.1.tgz#3bda72af213ec9b46b170e39661916ec66c2f463" + integrity sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lilconfig@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" + integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lunr-languages@^1.4.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/lunr-languages/-/lunr-languages-1.14.0.tgz#6e97635f434631729dd0e5654daedd291cd6f2d0" + integrity sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA== + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +mark.js@^8.11.1: + version "8.11.1" + resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" + integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== + +markdown-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" + integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== + +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +mdast-util-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz#3fb1764e705bbdf0afb0d3f889e4404c3e82561f" + integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz#a6fc7b62f0994e973490e45262e4bc07607b04e0" + integrity sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz#32a6e8f512b416e1f51eb817fc64bd867ebcd9cc" + integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-frontmatter@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" + integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + escape-string-regexp "^5.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" + integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz#25a1753c7d16db8bfd53cd84fe50562bd1e6d6a9" + integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz#3f2aecc879785c3cb6a81ff3a243dc11eca61095" + integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-expression@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz#4968b73724d320a379110d853e943a501bfd9d87" + integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdx-jsx@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz#daae777c72f9c4a106592e3025aa50fb26068e1b" + integrity sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^5.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +mdast-util-mdx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" + integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-mdx-expression "^2.0.0" + mdast-util-mdx-jsx "^3.0.0" + mdast-util-mdxjs-esm "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-mdxjs-esm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" + integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" + integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz#9813f1d6e0cdaac7c244ec8c6dabfdb2102ea2b4" + integrity sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.1.2, memfs@^3.4.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" + integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== + dependencies: + fs-monkey "^1.0.4" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +mermaid@^10.4.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.9.1.tgz#5f582c23f3186c46c6aa673e59eeb46d741b2ea6" + integrity sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA== + dependencies: + "@braintree/sanitize-url" "^6.0.1" + "@types/d3-scale" "^4.0.3" + "@types/d3-scale-chromatic" "^3.0.0" + cytoscape "^3.28.1" + cytoscape-cose-bilkent "^4.1.0" + d3 "^7.4.0" + d3-sankey "^0.12.3" + dagre-d3-es "7.0.10" + dayjs "^1.11.7" + dompurify "^3.0.5" + elkjs "^0.9.0" + katex "^0.16.9" + khroma "^2.0.0" + lodash-es "^4.17.21" + mdast-util-from-markdown "^1.3.0" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.3" + ts-dedent "^2.2.0" + uuid "^9.0.0" + web-worker "^1.2.0" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-core-commonmark@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz#9a45510557d068605c6e9a80f282b2bb8581e43d" + integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-directive@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-3.0.1.tgz#67b3985bb991a69dbcae52664c57ee54b22f635a" + integrity sha512-VGV2uxUzhEZmaP7NSFo2vtq7M2nUD+WfmYQD+d8i/1nHbzE+rMy9uzTvUybBbNiVbrhOZibg3gbyoARGqgDWyg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-extension-frontmatter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" + integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== + dependencies: + fault "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" + integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" + integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" + integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz#5cadedfbb29fca7abf752447967003dc3b6583c9" + integrity sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" + integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-expression@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" + integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-mdx-jsx@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz#4aba0797c25efb2366a3fd2d367c6b1c1159f4f5" + integrity sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + devlop "^1.0.0" + estree-util-is-identifier-name "^3.0.0" + micromark-factory-mdx-expression "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdx-md@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" + integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-mdxjs-esm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" + integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-extension-mdxjs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" + integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^3.0.0" + micromark-extension-mdx-jsx "^3.0.0" + micromark-extension-mdx-md "^2.0.0" + micromark-extension-mdxjs-esm "^3.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" + integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-label@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" + integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-mdx-expression@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz#f2a9724ce174f1751173beb2c1f88062d3373b1b" + integrity sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg== + dependencies: + "@types/estree" "^1.0.0" + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-events-to-acorn "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-position-from-estree "^2.0.0" + vfile-message "^4.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" + integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" + integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" + integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" + integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" + integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" + integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" + integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" + integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" + integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" + integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== + +micromark-util-events-to-acorn@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" + integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^3.0.0" + devlop "^1.0.0" + estree-util-visit "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + vfile-message "^4.0.0" + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-html-tag-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" + integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" + integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" + integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" + integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-subtokenize@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz#76129c49ac65da6e479c09d0ec4b5f29ec6eace5" + integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-symbol@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" + integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark-util-types@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" + integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" + integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +"mime-db@>= 1.43.0 < 2": + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +mini-css-extract-plugin@^2.7.6: + version "2.9.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz#4d184f12ce90582e983ccef0f6f9db637b4be758" + integrity sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-emoji@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.1.3.tgz#93cfabb5cc7c3653aa52f29d6ffb7927d8047c06" + integrity sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA== + dependencies: + "@sindresorhus/is" "^4.6.0" + char-regex "^1.0.2" + emojilib "^2.4.0" + skin-tone "^2.0.0" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" + integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9, open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" + integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== + dependencies: + got "^12.1.0" + registry-auth-token "^5.0.1" + registry-url "^6.0.0" + semver "^7.3.7" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5-parser-stream@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz#d7c20eadc37968d272e2c02660fff92dd27e60e1" + integrity sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow== + dependencies: + parse5 "^7.0.0" + +parse5@^7.0.0, parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +postcss-calc@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" + integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" + integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" + integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== + +postcss-discard-duplicates@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" + integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== + +postcss-discard-empty@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" + integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== + +postcss-discard-overridden@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" + integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== + +postcss-discard-unused@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz#c1b0e8c032c6054c3fbd22aaddba5b248136f338" + integrity sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-loader@^7.3.3: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== + dependencies: + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" + +postcss-merge-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz#7b9c31c7bc823c94bec50f297f04e3c2b838ea65" + integrity sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" + integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.1.1" + +postcss-merge-rules@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" + integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.2" + postcss-selector-parser "^6.0.16" + +postcss-minify-font-values@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" + integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" + integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== + dependencies: + colord "^2.9.3" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" + integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== + dependencies: + browserslist "^4.23.0" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" + integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-modules-extract-imports@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" + integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== + +postcss-modules-local-by-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz#f1b9bd757a8edf4d8556e8d0f4f894260e3df78f" + integrity sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz#a43d28289a169ce2c15c00c4e64c0858e43457d5" + integrity sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-normalize-charset@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" + integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== + +postcss-normalize-display-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" + integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" + integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" + integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" + integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" + integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" + integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" + integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" + integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" + integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-reduce-idents@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz#b0d9c84316d2a547714ebab523ec7d13704cd486" + integrity sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" + integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" + integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-sort-media-queries@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz#4556b3f982ef27d3bac526b99b6c0d3359a6cf97" + integrity sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA== + dependencies: + sort-css-media-queries "2.2.0" + +postcss-svgo@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" + integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.2.0" + +postcss-unique-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" + integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-zindex@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz#e498304b83a8b165755f53db40e2ea65a99b56e1" + integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== + +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-time@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" + integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== + +prism-react-renderer@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz#e59e5450052ede17488f6bc85de1553f584ff8d5" + integrity sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw== + dependencies: + "@types/prismjs" "^1.26.0" + clsx "^2.0.0" + +prismjs@^1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.2, prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pupa@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" + integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== + dependencies: + escape-goat "^4.0.0" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dev-utils@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" + integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== + dependencies: + "@babel/code-frame" "^7.16.0" + address "^1.1.2" + browserslist "^4.18.1" + chalk "^4.1.2" + cross-spawn "^7.0.3" + detect-port-alt "^1.1.6" + escape-string-regexp "^4.0.0" + filesize "^8.0.6" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.5.0" + global-modules "^2.0.0" + globby "^11.0.4" + gzip-size "^6.0.0" + immer "^9.0.7" + is-root "^2.1.0" + loader-utils "^3.2.0" + open "^8.4.0" + pkg-up "^3.1.0" + prompts "^2.4.2" + react-error-overlay "^6.0.11" + recursive-readdir "^2.2.2" + shell-quote "^1.7.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +react-dom@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-error-overlay@^6.0.11: + version "6.0.11" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" + integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + +react-fast-compare@^3.2.0, react-fast-compare@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + +react-helmet-async@*: + version "2.0.5" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.5.tgz#cfc70cd7bb32df7883a8ed55502a1513747223ec" + integrity sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg== + dependencies: + invariant "^2.2.4" + react-fast-compare "^3.2.2" + shallowequal "^1.1.0" + +react-helmet-async@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz#7bd5bf8c5c69ea9f02f6083f14ce33ef545c222e" + integrity sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-json-view-lite@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz#0ff493245f4550abe5e1f1836f170fa70bb95914" + integrity sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA== + +react-loadable-ssr-addon-v5-slorber@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" + integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== + dependencies: + "@babel/runtime" "^7.10.3" + +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz#de6c7f73c96542bd70786b8e522d535d69069dc4" + integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== + dependencies: + "@types/react" "*" + +react-router-config@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" + integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== + dependencies: + "@babel/runtime" "^7.1.2" + +react-router-dom@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.3.4" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router-dom@^6.20.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.26.1.tgz#a408892b41767a49dc94b3564b0e7d8e3959f623" + integrity sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw== + dependencies: + "@remix-run/router" "1.19.1" + react-router "6.26.1" + +react-router@5.3.4, react-router@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@6.26.1: + version "6.26.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.26.1.tgz#88c64837e05ffab6899a49df2a1484a22471e4ce" + integrity sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ== + dependencies: + "@remix-run/router" "1.19.1" + +react@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +reactflow@^11.10.1: + version "11.11.4" + resolved "https://registry.yarnpkg.com/reactflow/-/reactflow-11.11.4.tgz#e3593e313420542caed81aecbd73fb9bc6576653" + integrity sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og== + dependencies: + "@reactflow/background" "11.3.14" + "@reactflow/controls" "11.2.14" + "@reactflow/core" "11.11.4" + "@reactflow/minimap" "11.7.14" + "@reactflow/node-resizer" "2.2.14" + "@reactflow/node-toolbar" "1.3.14" + +readable-stream@^2.0.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + 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" + +readable-stream@^3.0.6: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reading-time@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +recursive-readdir@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" + integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== + dependencies: + minimatch "^3.0.5" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + 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" + +registry-auth-token@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" + integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== + dependencies: + "@pnpm/npm-conf" "^2.1.0" + +registry-url@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" + integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== + dependencies: + rc "1.2.8" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +rehype-raw@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" + integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== + dependencies: + "@types/hast" "^3.0.0" + hast-util-raw "^9.0.0" + vfile "^6.0.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remark-directive@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.0.tgz#34452d951b37e6207d2e2a4f830dc33442923268" + integrity sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^3.0.0" + unified "^11.0.0" + +remark-emoji@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-4.0.1.tgz#671bfda668047689e26b2078c7356540da299f04" + integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== + dependencies: + "@types/mdast" "^4.0.2" + emoticon "^4.0.1" + mdast-util-find-and-replace "^3.0.1" + node-emoji "^2.1.0" + unified "^11.0.4" + +remark-frontmatter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" + integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-frontmatter "^2.0.0" + micromark-extension-frontmatter "^2.0.0" + unified "^11.0.0" + +remark-gfm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.0.tgz#aea777f0744701aa288b67d28c43565c7e8c35de" + integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-mdx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.0.1.tgz#8f73dd635c1874e44426e243f72c0977cf60e212" + integrity sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA== + dependencies: + mdast-util-mdx "^3.0.0" + micromark-extension-mdxjs "^3.0.0" + +remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.0.tgz#d5f264f42bcbd4d300f030975609d01a1697ccdc" + integrity sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +"require-like@>= 0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" + integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve@^1.1.6, resolve@^1.14.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rtl-detect@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.1.2.tgz#ca7f0330af5c6bb626c15675c642ba85ad6273c6" + integrity sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ== + +rtlcss@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-4.2.0.tgz#627b08806bd6851adb4d0670b63919fb6a3ea038" + integrity sha512-AV+V3oOVvCrqyH5Q/6RuT1IDH1Xy5kJTkEWTWZPN5rdQ3HCFOd8SrbC7c6N5Y8bPpCfZSR6yYbUATXslvfvu5g== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + postcss "^8.4.21" + strip-json-comments "^3.1.1" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0, schema-utils@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + +semver-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" + integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== + dependencies: + semver "^7.3.5" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-handler@^6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.5.tgz#a4a0964f5c55c7e37a02a633232b6f0d6f068375" + integrity sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.1.2" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3, shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.2.tgz#6ce1deb43f6f177c68bc59cf93632f54e3ae6b72" + integrity sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw== + dependencies: + "@types/node" "^17.0.5" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.2.4" + +skin-tone@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" + integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== + dependencies: + unicode-emoji-modifier-base "^1.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-css-media-queries@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz#aa33cf4a08e0225059448b6c40eddbf9f1c8334c" + integrity sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA== + +source-map-js@^1.0.1, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.0: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +srcset@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" + integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +std-env@^3.0.1: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +style-to-object@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== + dependencies: + inline-style-parser "0.1.1" + +style-to-object@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.6.tgz#0c28aed8be1813d166c60d962719b2907c26547b" + integrity sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA== + dependencies: + inline-style-parser "0.2.3" + +stylehacks@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" + integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== + dependencies: + browserslist "^4.23.0" + postcss-selector-parser "^6.0.16" + +stylis@^4.1.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.4.tgz#ca5c6c4a35c4784e4e93a2a24dc4e9fa075250a4" + integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^3.0.2, svgo@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@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" + +terser@^5.10.0, terser@^5.15.1, terser@^5.26.0: + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-invariant@^1.0.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== + +tiny-warning@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + +type-fest@^1.0.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + +type-fest@^2.13.0, type-fest@^2.5.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@~5.5.2: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +undici@^6.19.5: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" + integrity sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-emoji-modifier-base@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" + integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: + version "11.0.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unique-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" + integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== + dependencies: + crypto-random-string "^4.0.0" + +unist-util-is@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" + integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position-from-estree@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" + integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-remove-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz#fea68a25658409c9460408bc6b4991b965b52163" + integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== + dependencies: + "@types/unist" "^3.0.0" + unist-util-visit "^5.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" + integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +update-notifier@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" + integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== + dependencies: + boxen "^7.0.0" + chalk "^5.0.1" + configstore "^6.0.0" + has-yarn "^3.0.0" + import-lazy "^4.0.0" + is-ci "^3.0.1" + is-installed-globally "^0.4.0" + is-npm "^6.0.0" + is-yarn-global "^0.4.0" + latest-version "^7.0.0" + pupa "^3.1.0" + semver "^7.3.7" + semver-diff "^4.0.0" + xdg-basedir "^5.1.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +use-sync-external-store@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utility-types@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vfile-location@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" + integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== + dependencies: + "@types/unist" "^3.0.0" + vfile "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" + integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0, vfile@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.2.tgz#ef49548ea3d270097a67011921411130ceae7deb" + integrity sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + vfile-message "^4.0.0" + +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +web-worker@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.3.0.tgz#e5f2df5c7fe356755a5fb8f8410d4312627e6776" + integrity sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA== + +webpack-bundle-analyzer@^4.9.0: + version "4.10.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + +webpack-dev-middleware@^5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" + integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.15.1: + version "4.15.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" + integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.5" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + launch-editor "^2.6.0" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.1.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.4" + ws "^8.13.0" + +webpack-merge@^5.9.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" + integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.88.1: + version "5.94.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.94.0.tgz#77a6089c716e7ab90c1c67574a28da518a20970f" + integrity sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg== + dependencies: + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" + acorn "^8.7.1" + acorn-import-attributes "^1.9.5" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + 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.11" + 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.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +webpackbar@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570" + integrity sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ== + dependencies: + chalk "^4.1.0" + consola "^2.15.3" + pretty-time "^1.1.0" + std-env "^3.0.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + +which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +widest-line@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" + integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== + dependencies: + string-width "^5.0.1" + +wildcard@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + +wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.3.1: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^8.13.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" + integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" + integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + +zustand@^4.4.1: + version "4.5.5" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1" + integrity sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q== + dependencies: + use-sync-external-store "1.2.2" + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index 6f827cdc8..92afa69f1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -341,33 +341,6 @@ КонецФункции -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Инициализирует конструктор предиката -// Параметры: -// Условия - Структура, Соответствие из Произвольный - Набор условий, которыми инициализируется предикат -// Ключ - Строка - Имя реквизита -// Значение - Произвольный - Значение, которому должен быть равен реквизит -// -// -// Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция Инициализировать(Условия = Неопределено) Экспорт - - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); - - Если ЗначениеЗаполнено(Условия) Тогда - Для Каждого Элемент Из Условия Цикл - Реквизит(Элемент.Ключ).Равно(Элемент.Значение); - КонецЦикла; - КонецЕсли; - - Возврат ЮТПредикаты; - -КонецФункции - Функция Выражения() Экспорт Выражения = Новый Структура; @@ -395,6 +368,33 @@ КонецФункции +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Инициализирует конструктор предиката +// Параметры: +// Условия - Структура, Соответствие из Произвольный - Набор условий, которыми инициализируется предикат +// Ключ - Строка - Имя реквизита +// Значение - Произвольный - Значение, которому должен быть равен реквизит +// +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция Инициализировать(Условия = Неопределено) Экспорт + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(КлючКонтекста(), НовыйКонтекст()); + + Если ЗначениеЗаполнено(Условия) Тогда + Для Каждого Элемент Из Условия Цикл + Реквизит(Элемент.Ключ).Равно(Элемент.Значение); + КонецЦикла; + КонецЕсли; + + Возврат ЮТПредикаты; + +КонецФункции + // Контекст. // // Возвращаемое значение: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index d8cb45b71..5f7017bb1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -174,7 +174,7 @@ // Выражение предиката. // // Параметры: -// ВидСравнения - Строка - см. ЮТПредикаты.Выражения +// ВидСравнения - Строка - Возможные варианты см. ЮТПредикаты.Выражения // ИмяРеквизита - Строка - Имя реквизита // Значение - Произвольный - Значение // From 80b0655b418e0b6a89fee82a8b042e12c23ab141 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 26 Aug 2024 15:51:37 +0300 Subject: [PATCH 41/86] =?UTF-8?q?ci:=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D0=B0=20=D0=B2=D1=81=D0=B5=D0=B9=20=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=D0=B9=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20SQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sq.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index 482401e3e..3780b361a 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -14,10 +14,13 @@ jobs: uses: actions/checkout@v4 with: ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target + fetch-depth: 0 # Fetch all history for all tags and branches - name: Checkout ${{ github.ref_name }} if: github.event_name == 'push' uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for all tags and branches - name: Configure env vars for SonarCloud scan env: From 59f22dfe6d51453d563cf018ed462b060b8cff79 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 27 Aug 2024 17:36:58 +0300 Subject: [PATCH 42/86] =?UTF-8?q?ci:=20=D1=81=D0=BA=D0=BE=D1=80=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D1=81=D0=BE=D0=BD?= =?UTF-8?q?=D0=B0=D1=80=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sq.yml | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index 3780b361a..1cb38fe26 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -6,42 +6,35 @@ on: jobs: SonarQualityGate: + name: Проверка Sonar runs-on: ubuntu-latest steps: - - - name: Checkout PR + - name: Извлечение исходников PR if: github.event_name != 'push' uses: actions/checkout@v4 with: ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target - fetch-depth: 0 # Fetch all history for all tags and branches + fetch-depth: 0 # Получение полной истории (все тэги и ветки) - - name: Checkout ${{ github.ref_name }} + - name: Извлечение исходников ветки ${{ github.ref_name }} if: github.event_name == 'push' uses: actions/checkout@v4 with: - fetch-depth: 0 # Fetch all history for all tags and branches + fetch-depth: 0 # Получение полной истории (все тэги и ветки) - - name: Configure env vars for SonarCloud scan - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - run: | - echo "::set-env name=PATH::/opt/sonar-scanner/bin:$PATH" - - - name: Extract version + - name: Извлечение версии проекта if: github.event_name == 'push' shell: bash run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT id: extract_version - - name: Setup sonarqube + - name: Установка сканера Sonar uses: warchant/setup-sonar-scanner@v8 # Анализ проекта в SonarQube (ветка) - name: Анализ в SonarQube (${{ github.ref_name }}) if: github.event_name == 'push' env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: sonar-scanner -Dsonar.host.url=https://sonar.openbsl.ru @@ -50,12 +43,11 @@ jobs: -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 - # Анализ проекта в SonarQube (PR) - # https://docs.sonarqube.org/latest/analysis/pull-request/ + # Анализ проекта в SonarQube (PR) + # https://docs.sonarqube.org/latest/analysis/pull-request/ - name: Анализ в SonarQube (pull-request ${{ github.event.number }}) if: github.event_name != 'push' env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: sonar-scanner -Dsonar.host.url=https://sonar.openbsl.ru @@ -66,7 +58,7 @@ jobs: -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 - - name: Publish report (pull-request) + - name: Публикация результата проверки PR if: github.event_name != 'push' && (success()||failure()) uses: 1CDevFlow/sonar-review-action@main with: From 2765e40551a9f3e39ef0a7597e7252487b5af2ee Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 27 Aug 2024 19:39:22 +0300 Subject: [PATCH 43/86] =?UTF-8?q?ci:=20=D1=80=D1=83=D1=81=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-release.yml | 24 ++++++------ .github/workflows/deploy-documentation.yml | 25 +++++++----- .github/workflows/main-build.yml | 8 ++-- .github/workflows/sq.yml | 4 +- .../step-build-artifacts-windows.yml | 24 ++++++------ .github/workflows/step-export-xml.yml | 28 ++++++------- .github/workflows/step-publish-artifacts.yml | 35 ----------------- .github/workflows/step-run-tests-linux.yml | 39 ++++++++++--------- .github/workflows/step-run-tests-windows.yml | 29 +++++++------- 9 files changed, 99 insertions(+), 117 deletions(-) delete mode 100644 .github/workflows/step-publish-artifacts.yml diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 2fed2c2c1..dbe1f5705 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -1,4 +1,4 @@ -name: Build release +name: Создание черновика релиза on: push: tags: @@ -13,7 +13,7 @@ permissions: jobs: export_to_designer: - name: Export to designer xml + name: Конвертация исходников в формат конфигуратора uses: ./.github/workflows/step-export-xml.yml with: edt_version: 2023.1.2 @@ -22,11 +22,12 @@ jobs: secrets: inherit build_artifacts: + name: Сборка артифактов runs-on: ubuntu-latest needs: export_to_designer steps: - - name: install 8.3.21.1895 + - name: Установка 1С:Предприятие 8.3.21.1895 uses: alkoleft/onec-setup-build-env-action@develop with: type: onec @@ -36,35 +37,36 @@ jobs: ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} timeout-minutes: 10 - - - name: download artifact + + - name: Загрузка исходников в формате конфигуратора uses: actions/download-artifact@v4 with: name: designer-src - - name: extract artifacts + + - name: Распаковка исходников run: | mkdir export cd export 7z x ../export.7z -y - - name: create IB + - name: Создание пустой информационной базы run: ibcmd infobase create --db-path=file-db timeout-minutes: 5 - - name: import yaxunit + - name: Импорт YAxUnit из исходников run: ibcmd infobase config import --db-path=file-db --extension=YAXUNIT export/yaxunit timeout-minutes: 5 - - name: save yaxunit + - name: Сохрание расширения YAxUnit run: ibcmd infobase config save --db-path=file-db --extension=YAXUNIT YAxUnit-${{ needs.export_to_designer.outputs.yaxunit_version }}.cfe timeout-minutes: 5 - - name: Release + - name: Создание черновика релиза ${{ needs.export_to_designer.outputs.yaxunit_version }} uses: softprops/action-gh-release@v2 if: ${{ success() }} with: draft: true - files: YAxUnit-*.cfe + files: '*.cfe' fail_on_unmatched_files: true generate_release_notes: true append_body: false diff --git a/.github/workflows/deploy-documentation.yml b/.github/workflows/deploy-documentation.yml index 4156aa85c..ccae5602b 100644 --- a/.github/workflows/deploy-documentation.yml +++ b/.github/workflows/deploy-documentation.yml @@ -1,4 +1,4 @@ -name: Documentation +name: Сборка документации on: push: @@ -13,28 +13,35 @@ defaults: jobs: deploy: - name: Deploy to GitHub Pages + name: Сборка документации runs-on: ubuntu-latest + steps: - - uses: actions/checkout@v4 - - name: Download bsl doc + - name: Извлечение исходников + uses: actions/checkout@v4 + + - name: Скачивание BSL-Doc run: curl -L https://github.com/alkoleft/bsldoc/releases/download/0.1.0/bsldoc-0.1.0.jar --output ./bsldoc.jar && chmod +7 ./bsldoc.jar - - name: Generate API documentation + + - name: Генерация описания API run: java -jar ./bsldoc.jar ./../exts/yaxunit ./api -f Docusaurus -s ЮТДвижок - - uses: actions/setup-node@v3 + + - name: Установка NodeJS + uses: actions/setup-node@v3 with: node-version: 18 cache: yarn cache-dependency-path: 'documentation/yarn.lock' - - name: Install dependencies + - name: Установка зависимостей Docusaurus run: yarn install --frozen-lockfile - - name: Build website + + - name: Сборка сайта с документацией run: yarn build # Popular action to deploy to GitHub Pages: # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus - - name: Deploy to GitHub Pages + - name: Публикация на GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 68f74f3e6..78f674def 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -1,4 +1,4 @@ -name: Build and test +name: Тестирование on: push: branches: @@ -19,7 +19,7 @@ permissions: jobs: export_to_designer: - name: Export to designer xml + name: Конвертация в формат конфигуратора uses: ./.github/workflows/step-export-xml.yml with: edt_version: 2023.1.2 @@ -27,7 +27,7 @@ jobs: secrets: inherit build_artifacts: - name: Build artifacts + name: Сборка артифактов uses: ./.github/workflows/step-build-artifacts-windows.yml needs: export_to_designer with: @@ -35,6 +35,7 @@ jobs: secrets: inherit tests_windows: + name: Тестирование в Windows strategy: fail-fast: false matrix: @@ -51,6 +52,7 @@ jobs: secrets: inherit tests_linux: + name: Тестирование в Linux strategy: fail-fast: false matrix: diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index 1cb38fe26..3d7ef03a7 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Извлечение исходников PR - if: github.event_name != 'push' + if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' uses: actions/checkout@v4 with: ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target @@ -46,7 +46,7 @@ jobs: # Анализ проекта в SonarQube (PR) # https://docs.sonarqube.org/latest/analysis/pull-request/ - name: Анализ в SonarQube (pull-request ${{ github.event.number }}) - if: github.event_name != 'push' + if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: sonar-scanner diff --git a/.github/workflows/step-build-artifacts-windows.yml b/.github/workflows/step-build-artifacts-windows.yml index 07fbe7f10..d26b9df73 100644 --- a/.github/workflows/step-build-artifacts-windows.yml +++ b/.github/workflows/step-build-artifacts-windows.yml @@ -1,4 +1,4 @@ -name: Build +name: Сборка артефактов on: workflow_call: inputs: @@ -22,13 +22,14 @@ concurrency: jobs: build: + name: Сборка артефактов runs-on: windows-latest defaults: run: shell: pwsh steps: - - name: install Onec Platform + - name: Установка 1С:Предприятие uses: alkoleft/onec-setup-build-env-action@develop with: type: onec @@ -39,42 +40,43 @@ jobs: ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} timeout-minutes: 10 - - name: download artifact + - name: Загрузка исходников в формате конфигуратора uses: actions/download-artifact@v4 with: name: ${{ inputs.src_artifact_name }} - - run: | + - name: Распаковка исходников + run: | mkdir export mkdir binary cd export 7z x ../export.7z -y - - name: create IB + - name: Создание информационной базы run: ibcmd infobase create --db-path=file-db --import=export\configuration --apply --force timeout-minutes: 5 - - name: import yaxunit + - name: Импорт YAxUnit из исходников run: ibcmd infobase config import --db-path=file-db --extension=YAXUNIT export\yaxunit timeout-minutes: 5 - - name: import tests + - name: Импорт тестов из исходников run: ibcmd infobase config import --db-path=file-db --extension=tests export\tests timeout-minutes: 5 - - name: save yaxunit + - name: Сохрание расширения YAxUnit run: ibcmd infobase config save --db-path=file-db --extension=YAXUNIT binary\yaxunit.cfe timeout-minutes: 5 - - name: save tests + - name: Сохрание расширения с тестами run: ibcmd infobase config save --db-path=file-db --extension=tests binary\tests.cfe timeout-minutes: 5 - - name: save configuration + - name: Сохрание тестовой конфигурации run: ibcmd infobase config save --db-path=file-db binary\configuration.cf timeout-minutes: 5 - - name: upload-artifact + - name: Публикация артефактов uses: actions/upload-artifact@v4 with: name: ${{ inputs.artifact_name }} diff --git a/.github/workflows/step-export-xml.yml b/.github/workflows/step-export-xml.yml index def41e8ef..b1f5d88b6 100644 --- a/.github/workflows/step-export-xml.yml +++ b/.github/workflows/step-export-xml.yml @@ -1,4 +1,4 @@ -name: Export to designer xml +name: Конвертация исходников в формат конфигуратора on: workflow_call: inputs: @@ -24,28 +24,29 @@ concurrency: jobs: export: + name: Конвертация исходников runs-on: ubuntu-latest outputs: yaxunit_version: ${{ steps.extract_version.outputs.version }} + steps: - - name: Checkout PR + - name: Извлечение исходников PR if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' uses: actions/checkout@v4 with: - # Для поддержки pull_request и pull_request_target - # https://github.com/android-password-store/Android-Password-Store/pull/1247 - ref: refs/pull/${{ github.event.number }}/merge + ref: refs/pull/${{ github.event.number }}/merge # Для поддержки pull_request и pull_request_target + - - name: Checkout ${{github.ref}} + - name: Извлечение исходников ветки ${{ github.ref_name }} if: github.event_name == 'push' uses: actions/checkout@v4 - - name: Extract version + - name: Извлечение версии проекта shell: bash run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT id: extract_version - - name: install EDT + - name: Установка 1C:EDT uses: alkoleft/onec-setup-build-env-action@develop with: type: edt @@ -56,7 +57,7 @@ jobs: ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} timeout-minutes: 30 - - name: convert configuration src + - name: Ковертация исходников конфигурации if: ${{ !inputs.engine_only }} uses: alkoleft/onec-edtcli-command-action@main with: @@ -66,7 +67,7 @@ jobs: timeout: 5 timeout-minutes: 10 - - name: convert yaxunit src + - name: Ковертация исходников YAxUnit uses: alkoleft/onec-edtcli-command-action@main with: export: true @@ -75,7 +76,7 @@ jobs: timeout: 5 timeout-minutes: 10 - - name: convert tests src + - name: Ковертация исходников тестов if: ${{ !inputs.engine_only }} uses: alkoleft/onec-edtcli-command-action@main with: @@ -85,11 +86,12 @@ jobs: timeout: 5 timeout-minutes: 10 - - run: | + - name: Упаковка исходников в архив + run: | cd export 7za a -t7z ../export.7z ./ - - name: upload-artifact + - name: Публикация исходников в формате конфигуратора uses: actions/upload-artifact@v4 with: name: ${{ inputs.artifact_name }} diff --git a/.github/workflows/step-publish-artifacts.yml b/.github/workflows/step-publish-artifacts.yml deleted file mode 100644 index 23eb6bf22..000000000 --- a/.github/workflows/step-publish-artifacts.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Run tests on Linux - -on: - workflow_call: - inputs: - artifact_name: - type: string - required: false - default: build-artifacts - -permissions: - contents: write - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - - name: download artifact - uses: actions/download-artifact@v4 - with: - name: ${{ inputs.artifact_name }} - path: binary - - name: Release - uses: softprops/action-gh-release@v2 - with: - draft: true - files: binary/YAxUnit.cfe - generate_release_notes: true - append_body: false - token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/step-run-tests-linux.yml b/.github/workflows/step-run-tests-linux.yml index 4db81fda2..4a633160e 100644 --- a/.github/workflows/step-run-tests-linux.yml +++ b/.github/workflows/step-run-tests-linux.yml @@ -1,4 +1,4 @@ -name: Run tests on Linux +name: Тестирование в Linux on: workflow_call: @@ -34,23 +34,24 @@ concurrency: jobs: execute-tests: + name: Тестирование runs-on: ubuntu-latest steps: - - name: download artifact + - name: Загрузка артифактов uses: actions/download-artifact@v4 with: name: ${{ inputs.artifact_name }} path: binary - - name: prepare + - name: Подготовка окружения run: | sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales sudo ln -s /usr/lib/x86_64-linux-gnu/libenchant-2.so.2 /usr/lib/libenchant.so.1 sudo localedef -i ${{ inputs.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ inputs.locale }}.UTF-8 mkdir reports -p - - name: install platform + - name: Установка 1С:Предприятие uses: alkoleft/onec-setup-build-env-action@develop with: type: onec @@ -61,16 +62,16 @@ jobs: ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} timeout-minutes: 10 - - name: install x11 + - name: Установка x11 run: sudo apt-get install -y x11-xserver-utils continue-on-error: true timeout-minutes: 5 - - name: install xserver-dummy + - name: Установка xserver-dummy run: sudo apt-get install -y xserver-xorg-video-dummy timeout-minutes: 5 - - name: create dummy-config + - name: Настройка dummy uses: DamianReeves/write-file-action@master with: path: dummy-1920x1080.conf @@ -99,32 +100,32 @@ jobs: EndSubSection EndSection - - name: start xserver + - name: Запуск xserver run: sudo X :99 -config dummy-1920x1080.conf & timeout-minutes: 5 - - name: create IB + - name: Создание информационной базы run: ibcmd infobase create --db-path=file-db --load=binary/configuration.cf --apply --force timeout-minutes: 5 - - name: load yaxunit + - name: Загрузка расширения YAxUnit run: | ibcmd infobase config load --db-path=file-db --extension=YAXUNIT --force binary/yaxunit.cfe ibcmd infobase config apply --db-path=file-db --extension=YAXUNIT --force ibcmd infobase config extension update --db-path=file-db --name=YAXUNIT --safe-mode=no --unsafe-action-protection=no timeout-minutes: 5 - - name: load tests + - name: Загрузка расширения с тестами run: | ibcmd infobase config load --db-path=file-db --extension=tests --force binary/tests.cfe ibcmd infobase config apply --db-path=file-db --extension=tests --force ibcmd infobase config extension update --db-path=file-db --name=tests --safe-mode=no --unsafe-action-protection=no timeout-minutes: 5 - - name: run server + - name: Запуск сервера (ibsrv) run: ibsrv --db-path=file-db --daemon - - name: create test-config + - name: Создание файла конфигурации тестирования uses: DamianReeves/write-file-action@master with: path: unit.json @@ -139,7 +140,7 @@ jobs: } } - - name: run tests + - name: Запуск тестирования run: 1cv8c /WS "http://localhost:8314" /C"RunUnitTests=${{github.workspace}}/unit.json" /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out ${{github.workspace}}/output.log timeout-minutes: 5 env: @@ -150,18 +151,18 @@ jobs: # if: always() # run: cat ./execute.log - - name: view output - if: always() - run: cat ./output.log + # - name: view output + # if: always() + # run: cat ./output.log - - name: upload-artifact + - name: Сохранение файла отчета uses: actions/upload-artifact@v4 if: always() with: name: Tests report. Linux ${{ inputs.v8_version }} ${{ inputs.locale }} path: reports/*.* - - name: Publish Test Report + - name: Публикация отчета о тестировании uses: 1CDevFlow/action-onec-junit-report@main if: always() with: diff --git a/.github/workflows/step-run-tests-windows.yml b/.github/workflows/step-run-tests-windows.yml index 6ec43a942..58af80e2d 100644 --- a/.github/workflows/step-run-tests-windows.yml +++ b/.github/workflows/step-run-tests-windows.yml @@ -1,4 +1,4 @@ -name: Run tests on Windows +name: Тестирование в Windows on: workflow_call: @@ -29,6 +29,7 @@ concurrency: jobs: execute-tests: + name: Тестирование runs-on: windows-latest defaults: run: @@ -36,13 +37,13 @@ jobs: steps: - - name: download artifact + - name: Загрузка артифактов uses: actions/download-artifact@v4 with: name: ${{ inputs.artifact_name }} path: binary - - name: install platform + - name: Установка 1С:Предприятие uses: alkoleft/onec-setup-build-env-action@develop with: type: onec @@ -52,27 +53,27 @@ jobs: ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} timeout-minutes: 10 - - name: create IB + - name: Создание информационной базы run: | mkdir data\data ibcmd.exe infobase create --data=data --load=binary\configuration.cf --apply --force timeout-minutes: 5 - - name: load yaxunit + - name: Загрузка расширения YAxUnit run: | ibcmd.exe infobase config load --data=data --extension=YAXUNIT --force binary\yaxunit.cfe ibcmd.exe infobase config apply --data=data --extension=YAXUNIT --force ibcmd.exe infobase config extension update --data=data --name=YAXUNIT --safe-mode=no --unsafe-action-protection=no timeout-minutes: 5 - - name: load tests + - name: Загрузка расширения с тестами run: | ibcmd.exe infobase config load --data=data --extension=tests --force binary\tests.cfe ibcmd.exe infobase config apply --data=data --extension=tests --force ibcmd.exe infobase config extension update --data=data --name=tests --safe-mode=no --unsafe-action-protection=no timeout-minutes: 5 - - name: create test-config + - name: Создание файла конфигурации тестирования uses: DamianReeves/write-file-action@master with: path: unit.json @@ -87,12 +88,12 @@ jobs: } } - - name: set short_locale + - name: Определение "короткой" локали id: short_locale run: | Write-Output "substring=$('${{ inputs.locale }}'.Substring(0, 2))" >> $Env:GITHUB_OUTPUT - - name: Test + - name: Запуск тестирования run: | Start-Process ibsrv.exe -ArgumentList "--data=data" Start-Process -NoNewWindow -PassThru -Wait 1cv8c.exe -ArgumentList '/WS "http://localhost:8314" /C"RunUnitTests=unit.json" /L ${{ steps.short_locale.outputs.substring }} /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out 1cv8c-output.log' @@ -102,17 +103,17 @@ jobs: # if: always() # run: type execute.log - - name: view output - if: always() - run: type 1cv8c-output.log + # - name: view output + # if: always() + # run: type 1cv8c-output.log - - name: upload-artifact + - name: Сохранение файла отчета uses: actions/upload-artifact@v4 with: name: Tests report. Windows ${{ inputs.v8_version }} ${{ inputs.locale }} path: reports/ - - name: Publish Test Report + - name: Публикация отчета о тестировании uses: 1CDevFlow/action-onec-junit-report@main with: job_name: Tests Windows ${{ inputs.v8_version }} ${{ inputs.locale }} From 1c9fc48542e6a683f3b4b776de516d481d0602f6 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 27 Aug 2024 20:04:58 +0300 Subject: [PATCH 44/86] =?UTF-8?q?ci:=20=D0=B4=D0=B5=D0=B9=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/actions/extract-version/action.yml | 13 ++++++++++ .github/actions/load-extension/action.yml | 18 +++++++++++++ .github/workflows/main-build.yml | 2 +- .github/workflows/sq.yml | 7 ++--- .../step-build-artifacts-windows.yml | 2 +- .github/workflows/step-export-xml.yml | 3 +-- .github/workflows/step-run-tests-linux.yml | 20 +++++++------- .github/workflows/step-run-tests-windows.yml | 26 +++++++++---------- 8 files changed, 57 insertions(+), 34 deletions(-) create mode 100644 .github/actions/extract-version/action.yml create mode 100644 .github/actions/load-extension/action.yml diff --git a/.github/actions/extract-version/action.yml b/.github/actions/extract-version/action.yml new file mode 100644 index 000000000..e4ce3420f --- /dev/null +++ b/.github/actions/extract-version/action.yml @@ -0,0 +1,13 @@ +name: Извлечение версии +description: Извлечение версии из исходников +outputs: + version: + description: 'Версия' + value: ${{ steps.extract_version.outputs.version }} +runs: + using: "composite" + steps: + - name: Извлечение версии + shell: bash + run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT + id: extract_version diff --git a/.github/actions/load-extension/action.yml b/.github/actions/load-extension/action.yml new file mode 100644 index 000000000..4f60cab67 --- /dev/null +++ b/.github/actions/load-extension/action.yml @@ -0,0 +1,18 @@ +name: Загрузка расширения +description: Загрузка расширения в информационную базу с использованием ibcmd +inputs: + name: + description: 'Имя загружаемого расширения' + required: true + path: + description: 'Путь к файлу расширения' + required: true +runs: + using: "composite" + steps: + - name: Загрузка расширения ${{inputs.name}} + run: | + ibcmd infobase config load --db-path=file-db --extension=${{inputs.name}} --force ${{inputs.path}} + ibcmd infobase config apply --db-path=file-db --extension=${{inputs.name}} --force + ibcmd infobase config extension update --db-path=file-db --name=${{inputs.name}} --safe-mode=no --unsafe-action-protection=no + timeout-minutes: 5 diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 78f674def..a99a8485e 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -19,7 +19,7 @@ permissions: jobs: export_to_designer: - name: Конвертация в формат конфигуратора + name: Конвертация исходников в формат конфигуратора uses: ./.github/workflows/step-export-xml.yml with: edt_version: 2023.1.2 diff --git a/.github/workflows/sq.yml b/.github/workflows/sq.yml index 3d7ef03a7..6d0312db0 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sq.yml @@ -1,4 +1,4 @@ -name: SonarQualityGate +name: Проверка Sonar on: - push @@ -6,7 +6,6 @@ on: jobs: SonarQualityGate: - name: Проверка Sonar runs-on: ubuntu-latest steps: - name: Извлечение исходников PR @@ -23,9 +22,7 @@ jobs: fetch-depth: 0 # Получение полной истории (все тэги и ветки) - name: Извлечение версии проекта - if: github.event_name == 'push' - shell: bash - run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT + uses: ./.github/actions/extract-version id: extract_version - name: Установка сканера Sonar diff --git a/.github/workflows/step-build-artifacts-windows.yml b/.github/workflows/step-build-artifacts-windows.yml index d26b9df73..03ade1cc7 100644 --- a/.github/workflows/step-build-artifacts-windows.yml +++ b/.github/workflows/step-build-artifacts-windows.yml @@ -22,7 +22,7 @@ concurrency: jobs: build: - name: Сборка артефактов + name: Сборка runs-on: windows-latest defaults: run: diff --git a/.github/workflows/step-export-xml.yml b/.github/workflows/step-export-xml.yml index b1f5d88b6..8ef6c3e52 100644 --- a/.github/workflows/step-export-xml.yml +++ b/.github/workflows/step-export-xml.yml @@ -42,8 +42,7 @@ jobs: uses: actions/checkout@v4 - name: Извлечение версии проекта - shell: bash - run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT + uses: ./.github/actions/extract-version id: extract_version - name: Установка 1C:EDT diff --git a/.github/workflows/step-run-tests-linux.yml b/.github/workflows/step-run-tests-linux.yml index 4a633160e..2d8857b3a 100644 --- a/.github/workflows/step-run-tests-linux.yml +++ b/.github/workflows/step-run-tests-linux.yml @@ -109,18 +109,16 @@ jobs: timeout-minutes: 5 - name: Загрузка расширения YAxUnit - run: | - ibcmd infobase config load --db-path=file-db --extension=YAXUNIT --force binary/yaxunit.cfe - ibcmd infobase config apply --db-path=file-db --extension=YAXUNIT --force - ibcmd infobase config extension update --db-path=file-db --name=YAXUNIT --safe-mode=no --unsafe-action-protection=no - timeout-minutes: 5 + uses: ./.github/actions/load-extension + with: + name: YAXUNIT + path: binary/yaxunit.cfe - - name: Загрузка расширения с тестами - run: | - ibcmd infobase config load --db-path=file-db --extension=tests --force binary/tests.cfe - ibcmd infobase config apply --db-path=file-db --extension=tests --force - ibcmd infobase config extension update --db-path=file-db --name=tests --safe-mode=no --unsafe-action-protection=no - timeout-minutes: 5 + - name: Загрузка расширения c тестами + uses: ./.github/actions/load-extension + with: + name: tests + path: binary/tests.cfe - name: Запуск сервера (ibsrv) run: ibsrv --db-path=file-db --daemon diff --git a/.github/workflows/step-run-tests-windows.yml b/.github/workflows/step-run-tests-windows.yml index 58af80e2d..224043541 100644 --- a/.github/workflows/step-run-tests-windows.yml +++ b/.github/workflows/step-run-tests-windows.yml @@ -55,23 +55,21 @@ jobs: - name: Создание информационной базы run: | - mkdir data\data - ibcmd.exe infobase create --data=data --load=binary\configuration.cf --apply --force + mkdir file-db\data + ibcmd.exe infobase create --data=file-db --load=binary\configuration.cf --apply --force timeout-minutes: 5 - name: Загрузка расширения YAxUnit - run: | - ibcmd.exe infobase config load --data=data --extension=YAXUNIT --force binary\yaxunit.cfe - ibcmd.exe infobase config apply --data=data --extension=YAXUNIT --force - ibcmd.exe infobase config extension update --data=data --name=YAXUNIT --safe-mode=no --unsafe-action-protection=no - timeout-minutes: 5 + uses: ./.github/actions/load-extension + with: + name: YAXUNIT + path: binary\yaxunit.cfe - - name: Загрузка расширения с тестами - run: | - ibcmd.exe infobase config load --data=data --extension=tests --force binary\tests.cfe - ibcmd.exe infobase config apply --data=data --extension=tests --force - ibcmd.exe infobase config extension update --data=data --name=tests --safe-mode=no --unsafe-action-protection=no - timeout-minutes: 5 + - name: Загрузка расширения c тестами + uses: ./.github/actions/load-extension + with: + name: tests + path: binary\tests.cfe - name: Создание файла конфигурации тестирования uses: DamianReeves/write-file-action@master @@ -95,7 +93,7 @@ jobs: - name: Запуск тестирования run: | - Start-Process ibsrv.exe -ArgumentList "--data=data" + Start-Process ibsrv.exe -ArgumentList "--data=file-db" Start-Process -NoNewWindow -PassThru -Wait 1cv8c.exe -ArgumentList '/WS "http://localhost:8314" /C"RunUnitTests=unit.json" /L ${{ steps.short_locale.outputs.substring }} /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out 1cv8c-output.log' timeout-minutes: 10 From e1d6df915777fcccc26cfeb7a4f887db0ff3b363 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 27 Aug 2024 20:53:40 +0300 Subject: [PATCH 45/86] =?UTF-8?q?ci:=20=D1=80=D0=B5=D1=84=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=BD=D0=B3=20=D0=BF=D0=B0=D0=B9=D0=BF?= =?UTF-8?q?=D0=BB=D0=B0=D0=B9=D0=BD=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/actions/extract-version/action.yml | 6 +- .github/actions/load-extension/action.yml | 2 +- .github/workflows/build-release.yml | 4 +- .../{main-build.yml => perform-tests.yml} | 36 ++-- .../{sq.yml => sonar-qube-analysis.yml} | 4 + .../step-build-artifacts-windows.yml | 2 +- .github/workflows/step-export-xml.yml | 6 +- .github/workflows/step-run-tests-linux.yml | 171 ------------------ .github/workflows/step-run-tests-windows.yml | 121 ------------- .github/workflows/step-run-tests.yml | 142 +++++++++++++++ 10 files changed, 171 insertions(+), 323 deletions(-) rename .github/workflows/{main-build.yml => perform-tests.yml} (50%) rename .github/workflows/{sq.yml => sonar-qube-analysis.yml} (96%) delete mode 100644 .github/workflows/step-run-tests-linux.yml delete mode 100644 .github/workflows/step-run-tests-windows.yml create mode 100644 .github/workflows/step-run-tests.yml diff --git a/.github/actions/extract-version/action.yml b/.github/actions/extract-version/action.yml index e4ce3420f..ef355df4f 100644 --- a/.github/actions/extract-version/action.yml +++ b/.github/actions/extract-version/action.yml @@ -1,5 +1,9 @@ name: Извлечение версии description: Извлечение версии из исходников +inputs: + path: + description: 'Путь к исходникам' + required: true outputs: version: description: 'Версия' @@ -9,5 +13,5 @@ runs: steps: - name: Извлечение версии shell: bash - run: echo "version=$(cat ./exts/yaxunit/src/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT + run: echo "version=$(cat ${{ inputs.path }}/Configuration/Configuration.mdo | grep -oP '(?<=)[\d.]+')" >> $GITHUB_OUTPUT id: extract_version diff --git a/.github/actions/load-extension/action.yml b/.github/actions/load-extension/action.yml index 4f60cab67..3676f5292 100644 --- a/.github/actions/load-extension/action.yml +++ b/.github/actions/load-extension/action.yml @@ -11,8 +11,8 @@ runs: using: "composite" steps: - name: Загрузка расширения ${{inputs.name}} + shell: bash run: | ibcmd infobase config load --db-path=file-db --extension=${{inputs.name}} --force ${{inputs.path}} ibcmd infobase config apply --db-path=file-db --extension=${{inputs.name}} --force ibcmd infobase config extension update --db-path=file-db --name=${{inputs.name}} --safe-mode=no --unsafe-action-protection=no - timeout-minutes: 5 diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index dbe1f5705..d53c25614 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -5,7 +5,7 @@ on: - '*' concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-release + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.number }}-release cancel-in-progress: true permissions: @@ -22,7 +22,7 @@ jobs: secrets: inherit build_artifacts: - name: Сборка артифактов + name: Сборка артефактов runs-on: ubuntu-latest needs: export_to_designer diff --git a/.github/workflows/main-build.yml b/.github/workflows/perform-tests.yml similarity index 50% rename from .github/workflows/main-build.yml rename to .github/workflows/perform-tests.yml index a99a8485e..a1f84eb41 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/perform-tests.yml @@ -9,7 +9,7 @@ on: branches: [ develop ] concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-main + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.number }}-main cancel-in-progress: true permissions: @@ -19,7 +19,7 @@ permissions: jobs: export_to_designer: - name: Конвертация исходников в формат конфигуратора + name: Конвертация исходников uses: ./.github/workflows/step-export-xml.yml with: edt_version: 2023.1.2 @@ -27,43 +27,31 @@ jobs: secrets: inherit build_artifacts: - name: Сборка артифактов + name: Сборка uses: ./.github/workflows/step-build-artifacts-windows.yml needs: export_to_designer with: v8_version: 8.3.21.1895 secrets: inherit - tests_windows: - name: Тестирование в Windows + tests: + name: Тест strategy: fail-fast: false matrix: - v8_version: + version: - 8.3.21.1895 locale: - ru_RU - en_US - uses: ./.github/workflows/step-run-tests-windows.yml - needs: build_artifacts - with: - v8_version: ${{ matrix.v8_version }} - locale: ${{ matrix.locale }} - secrets: inherit + os: + - windows-latest + - ubuntu-latest - tests_linux: - name: Тестирование в Linux - strategy: - fail-fast: false - matrix: - v8_version: - - 8.3.21.1895 - locale: - - ru_RU - - en_US - uses: ./.github/workflows/step-run-tests-linux.yml + uses: ./.github/workflows/step-run-tests.yml needs: build_artifacts with: - v8_version: ${{ matrix.v8_version }} + v8_version: ${{ matrix.version }} locale: ${{ matrix.locale }} + os: ${{ matrix.os }} secrets: inherit diff --git a/.github/workflows/sq.yml b/.github/workflows/sonar-qube-analysis.yml similarity index 96% rename from .github/workflows/sq.yml rename to .github/workflows/sonar-qube-analysis.yml index 6d0312db0..f4e71d6eb 100644 --- a/.github/workflows/sq.yml +++ b/.github/workflows/sonar-qube-analysis.yml @@ -23,10 +23,14 @@ jobs: - name: Извлечение версии проекта uses: ./.github/actions/extract-version + with: + path: ./exts/yaxunit/src id: extract_version - name: Установка сканера Sonar uses: warchant/setup-sonar-scanner@v8 + with: + version: 6.1.0.4477 # Анализ проекта в SonarQube (ветка) - name: Анализ в SonarQube (${{ github.ref_name }}) diff --git a/.github/workflows/step-build-artifacts-windows.yml b/.github/workflows/step-build-artifacts-windows.yml index 03ade1cc7..ad2fe911d 100644 --- a/.github/workflows/step-build-artifacts-windows.yml +++ b/.github/workflows/step-build-artifacts-windows.yml @@ -17,7 +17,7 @@ on: default: build-artifacts concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-build + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.number }}-build cancel-in-progress: true jobs: diff --git a/.github/workflows/step-export-xml.yml b/.github/workflows/step-export-xml.yml index 8ef6c3e52..52e2735f0 100644 --- a/.github/workflows/step-export-xml.yml +++ b/.github/workflows/step-export-xml.yml @@ -19,12 +19,12 @@ on: value: ${{ jobs.export.outputs.yaxunit_version }} concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}-export + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.number }}-export cancel-in-progress: true jobs: export: - name: Конвертация исходников + name: Конвертация runs-on: ubuntu-latest outputs: yaxunit_version: ${{ steps.extract_version.outputs.version }} @@ -43,6 +43,8 @@ jobs: - name: Извлечение версии проекта uses: ./.github/actions/extract-version + with: + path: ./exts/yaxunit/src id: extract_version - name: Установка 1C:EDT diff --git a/.github/workflows/step-run-tests-linux.yml b/.github/workflows/step-run-tests-linux.yml deleted file mode 100644 index 2d8857b3a..000000000 --- a/.github/workflows/step-run-tests-linux.yml +++ /dev/null @@ -1,171 +0,0 @@ -name: Тестирование в Linux - -on: - workflow_call: - inputs: - v8_version: - description: 'Platform version' - type: string - required: true - - locale: - type: string - required: false - default: ru_RU - - artifact_name: - type: string - required: false - default: build-artifacts - - fail_on_failure: - type: boolean - required: false - default: true - -permissions: - contents: read - checks: write - id-token: write - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.v8_version }}-${{ inputs.locale }}-${{ github.event.number }}-Linux - cancel-in-progress: true - -jobs: - execute-tests: - name: Тестирование - runs-on: ubuntu-latest - steps: - - - name: Загрузка артифактов - uses: actions/download-artifact@v4 - with: - name: ${{ inputs.artifact_name }} - path: binary - - - name: Подготовка окружения - run: | - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales - sudo ln -s /usr/lib/x86_64-linux-gnu/libenchant-2.so.2 /usr/lib/libenchant.so.1 - sudo localedef -i ${{ inputs.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ inputs.locale }}.UTF-8 - mkdir reports -p - - - name: Установка 1С:Предприятие - uses: alkoleft/onec-setup-build-env-action@develop - with: - type: onec - onec_version: ${{ inputs.v8_version }} - cache: false - env: - ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} - ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} - timeout-minutes: 10 - - - name: Установка x11 - run: sudo apt-get install -y x11-xserver-utils - continue-on-error: true - timeout-minutes: 5 - - - name: Установка xserver-dummy - run: sudo apt-get install -y xserver-xorg-video-dummy - timeout-minutes: 5 - - - name: Настройка dummy - uses: DamianReeves/write-file-action@master - with: - path: dummy-1920x1080.conf - contents: | - Section "Monitor" - Identifier "Monitor0" - HorizSync 28.0-80.0 - VertRefresh 48.0-75.0 - # https://arachnoid.com/modelines/ - # 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz - Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync - EndSection - Section "Device" - Identifier "Card0" - Driver "dummy" - VideoRam 256000 - EndSection - Section "Screen" - DefaultDepth 24 - Identifier "Screen0" - Device "Card0" - Monitor "Monitor0" - SubSection "Display" - Depth 24 - Modes "1920x1080_60.00" - EndSubSection - EndSection - - - name: Запуск xserver - run: sudo X :99 -config dummy-1920x1080.conf & - timeout-minutes: 5 - - - name: Создание информационной базы - run: ibcmd infobase create --db-path=file-db --load=binary/configuration.cf --apply --force - timeout-minutes: 5 - - - name: Загрузка расширения YAxUnit - uses: ./.github/actions/load-extension - with: - name: YAXUNIT - path: binary/yaxunit.cfe - - - name: Загрузка расширения c тестами - uses: ./.github/actions/load-extension - with: - name: tests - path: binary/tests.cfe - - - name: Запуск сервера (ibsrv) - run: ibsrv --db-path=file-db --daemon - - - name: Создание файла конфигурации тестирования - uses: DamianReeves/write-file-action@master - with: - path: unit.json - contents: | - { - "reportFormat": "jUnit", - "reportPath": "reports/report.xml", - "closeAfterTests": true, - "exitCode": "exit-code.txt", - "logging": { - "console": true - } - } - - - name: Запуск тестирования - run: 1cv8c /WS "http://localhost:8314" /C"RunUnitTests=${{github.workspace}}/unit.json" /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out ${{github.workspace}}/output.log - timeout-minutes: 5 - env: - DISPLAY: :99 - LANG: "${{ inputs.locale }}.UTF-8" - - # - name: view log - # if: always() - # run: cat ./execute.log - - # - name: view output - # if: always() - # run: cat ./output.log - - - name: Сохранение файла отчета - uses: actions/upload-artifact@v4 - if: always() - with: - name: Tests report. Linux ${{ inputs.v8_version }} ${{ inputs.locale }} - path: reports/*.* - - - name: Публикация отчета о тестировании - uses: 1CDevFlow/action-onec-junit-report@main - if: always() - with: - job_name: Tests Linux ${{ inputs.v8_version }} ${{ inputs.locale }} - check_name: Tests report. Linux ${{ inputs.v8_version }} ${{ inputs.locale }} - report_paths: reports/report.xml - fail_on_failure: ${{ inputs.fail_on_failure }} - require_passed_tests: true \ No newline at end of file diff --git a/.github/workflows/step-run-tests-windows.yml b/.github/workflows/step-run-tests-windows.yml deleted file mode 100644 index 224043541..000000000 --- a/.github/workflows/step-run-tests-windows.yml +++ /dev/null @@ -1,121 +0,0 @@ -name: Тестирование в Windows - -on: - workflow_call: - inputs: - v8_version: - description: 'Platform version' - type: string - required: true - - locale: - type: string - required: false - default: ru_RU - - artifact_name: - type: string - required: false - default: build-artifacts - - fail_on_failure: - type: boolean - required: false - default: true - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.v8_version }}-${{ inputs.locale }}-${{ github.event.number }}-Windows - cancel-in-progress: true - -jobs: - execute-tests: - name: Тестирование - runs-on: windows-latest - defaults: - run: - shell: pwsh - - steps: - - - name: Загрузка артифактов - uses: actions/download-artifact@v4 - with: - name: ${{ inputs.artifact_name }} - path: binary - - - name: Установка 1С:Предприятие - uses: alkoleft/onec-setup-build-env-action@develop - with: - type: onec - onec_version: ${{ inputs.v8_version }} - env: - ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} - ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} - timeout-minutes: 10 - - - name: Создание информационной базы - run: | - mkdir file-db\data - ibcmd.exe infobase create --data=file-db --load=binary\configuration.cf --apply --force - timeout-minutes: 5 - - - name: Загрузка расширения YAxUnit - uses: ./.github/actions/load-extension - with: - name: YAXUNIT - path: binary\yaxunit.cfe - - - name: Загрузка расширения c тестами - uses: ./.github/actions/load-extension - with: - name: tests - path: binary\tests.cfe - - - name: Создание файла конфигурации тестирования - uses: DamianReeves/write-file-action@master - with: - path: unit.json - contents: | - { - "reportFormat": "jUnit", - "reportPath": "reports\\report.xml", - "closeAfterTests": true, - "exitCode": "exit-code.txt", - "logging": { - "console": true - } - } - - - name: Определение "короткой" локали - id: short_locale - run: | - Write-Output "substring=$('${{ inputs.locale }}'.Substring(0, 2))" >> $Env:GITHUB_OUTPUT - - - name: Запуск тестирования - run: | - Start-Process ibsrv.exe -ArgumentList "--data=file-db" - Start-Process -NoNewWindow -PassThru -Wait 1cv8c.exe -ArgumentList '/WS "http://localhost:8314" /C"RunUnitTests=unit.json" /L ${{ steps.short_locale.outputs.substring }} /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out 1cv8c-output.log' - timeout-minutes: 10 - - # - name: view log - # if: always() - # run: type execute.log - - # - name: view output - # if: always() - # run: type 1cv8c-output.log - - - name: Сохранение файла отчета - uses: actions/upload-artifact@v4 - with: - name: Tests report. Windows ${{ inputs.v8_version }} ${{ inputs.locale }} - path: reports/ - - - name: Публикация отчета о тестировании - uses: 1CDevFlow/action-onec-junit-report@main - with: - job_name: Tests Windows ${{ inputs.v8_version }} ${{ inputs.locale }} - check_name: Tests report. Windows ${{ inputs.v8_version }} ${{ inputs.locale }} - report_paths: reports/report.xml - fail_on_failure: ${{ inputs.fail_on_failure }} - require_passed_tests: true diff --git a/.github/workflows/step-run-tests.yml b/.github/workflows/step-run-tests.yml new file mode 100644 index 000000000..ae2cc57ea --- /dev/null +++ b/.github/workflows/step-run-tests.yml @@ -0,0 +1,142 @@ +name: Тестирование + +on: + workflow_call: + inputs: + v8_version: + description: 'Версия 1С:Предприятие' + type: string + required: true + + locale: + type: string + required: false + default: ru_RU + + artifact_name: + type: string + required: false + default: build-artifacts + + fail_on_failure: + type: boolean + required: false + default: true + + os: + type: string + required: true + +permissions: + contents: read + checks: write + id-token: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }}-${{ inputs.v8_version }}-${{ inputs.locale }}-${{ github.event.number }}-${{inputs.os}} + cancel-in-progress: true + +jobs: + execute-tests: + name: Тестирование + runs-on: ${{inputs.os}} + steps: + + - name: Загрузка артифактов + uses: actions/download-artifact@v4 + with: + name: ${{ inputs.artifact_name }} + path: binary + + - name: Подготовка окружения (Linux) + if: runner.os == 'Linux' + run: | + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y locales + sudo ln -s /usr/lib/x86_64-linux-gnu/libenchant-2.so.2 /usr/lib/libenchant.so.1 + sudo localedef -i ${{ inputs.locale }} -c -f UTF-8 -A /usr/share/locale/locale.alias ${{ inputs.locale }}.UTF-8 + + - name: Определение "короткой" локали + id: short_locale + shell: pwsh + run: | + Write-Output "substring=$('${{ inputs.locale }}'.Substring(0, 2))" >> $Env:GITHUB_OUTPUT + + - name: Установка 1С:Предприятие + uses: alkoleft/onec-setup-build-env-action@develop + with: + type: onec + onec_version: ${{ inputs.v8_version }} + cache: false + env: + ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} + ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} + timeout-minutes: 10 + + - name: Создание информационной базы + shell: bash + run: | + ibcmd infobase create --db-path=file-db --load=binary/configuration.cf --apply --force + timeout-minutes: 5 + + - name: Загрузка расширения YAxUnit + uses: alkoleft/yaxunit/.github/actions/load-extension@develop + with: + name: YAXUNIT + path: binary/yaxunit.cfe + + - name: Загрузка расширения c тестами + uses: alkoleft/yaxunit/.github/actions/load-extension@develop + with: + name: tests + path: binary/tests.cfe + + - name: Создание файла конфигурации тестирования + uses: DamianReeves/write-file-action@master + with: + path: yaxunit-config.json + contents: | + { + "reportFormat": "jUnit", + "reportPath": "report.xml", + "closeAfterTests": true, + "exitCode": "exit-code.txt", + "logging": { + "console": true + } + } + + - name: Запуск тестирования (Linux) + if: runner.os == 'Linux' + uses: coactions/setup-xvfb@v1 + with: + run: | + ibsrv --db-path=file-db --daemon + 1cv8c /WS "http://localhost:8314" /C"RunUnitTests=yaxunit-config.json" /L ${{ steps.short_locale.outputs.substring }} /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out output.log + env: + LANG: "${{ inputs.locale }}.UTF-8" + timeout-minutes: 10 + + - name: Запуск тестирования (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + Start-Process ibsrv.exe -ArgumentList "--db-path=file-db" + Start-Process -NoNewWindow -PassThru -Wait 1cv8c.exe -ArgumentList '/WS "http://localhost:8314" /C"RunUnitTests=yaxunit-config.json" /L ${{ steps.short_locale.outputs.substring }} /VL ${{ inputs.locale }} /DisableStartupDialogs /DisableStartupMessages /DisableUnrecoverableErrorMessage /Out 1cv8c-output.log' + timeout-minutes: 10 + + - name: Сохранение файла отчета + uses: actions/upload-artifact@v4 + if: always() + with: + name: Tests report. ${{runner.os}} ${{ inputs.v8_version }} ${{ inputs.locale }} + path: report.xml + + - name: Публикация отчета о тестировании + uses: 1CDevFlow/action-onec-junit-report@main + if: always() + with: + job_name: Тестирование + check_name: Tests report. ${{runner.os}} ${{ inputs.v8_version }} ${{ inputs.locale }} + report_paths: report.xml + fail_on_failure: true + require_passed_tests: true From 2d0768c10d08601d6ddf6de309e275f166e44187 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Sun, 28 Jul 2024 23:56:07 +0300 Subject: [PATCH 46/86] feat(smoke): draft --- .../Module.bsl" | 188 ++++++++++++++++++ ...0\244\320\276\321\200\320\274\321\213.mdo" | 10 + .../Module.bsl" | 185 +++++++++++++++++ ...1\200\320\262\320\265\321\200\320\260.mdo" | 11 + .../Module.bsl" | 4 +- .../Module.bsl" | 181 +++++++++++++++++ .../Module.bsl" | 4 + .../src/Configuration/Configuration.mdo | 2 + .../ManagedApplicationModule.bsl | 8 + .../CommandInterface.cmi" | 2 + ...0\242\320\265\321\201\321\202\321\213.mdo" | 12 ++ ...0\276\320\264\321\203\320\273\320\270.mdo" | 1 + .../Form.oform" | Bin 0 -> 7318 bytes .../Form.oform" | Bin 0 -> 6667 bytes .../Form.oform" | Bin 0 -> 9301 bytes ...0\221\320\260\320\275\320\272\320\270.mdo" | 52 +++-- .../Module.bsl" | 2 +- 17 files changed, 640 insertions(+), 22 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" create mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" create mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.oform" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.oform" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.oform" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" new file mode 100644 index 000000000..a24b980e2 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" @@ -0,0 +1,188 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы("", Новый Структура); + + Для Каждого ВладелецФорм Из ВладельцыФорм Цикл + + ОписаниеОбъектаМетаданных = Новый Структура("Тип, Имя", ВладелецФорм.Тип, ВладелецФорм.Имя); + + Для Каждого ОписаниеФормы Из ВладелецФорм.Формы Цикл + + ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы) + + ЮТТесты.ВТранзакции().УдалениеТестовыхДанных(); + + ПредставлениеОбъектаМетаданных = СтрШаблон("%1.%2", ОписаниеОбъектаМетаданных.Тип, ОписаниеОбъектаМетаданных.Имя); + + Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда + +// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуГруппы") +// .СПараметрами(ОписаниеОбъектаМетаданных) +// .Представление("Открытие формы группы: " + ПредставлениеОбъектаМетаданных); + + ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда + + ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуНовогоОбъекта") + .СПараметрами(ОписаниеОбъектаМетаданных) + .Представление("Открытие формы нового объекта: " + ПредставлениеОбъектаМетаданных); + + ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуСуществующегоОбъекта") + .СПараметрами(ОписаниеОбъектаМетаданных) + .Представление("Открытие формы существующего объекта: " + ПредставлениеОбъектаМетаданных); + + ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда + +// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуВыбораГруппы") +// .СПараметрами(ОписаниеОбъектаМетаданных) +// .Представление("Открытие формы выбора группы: " + ПредставлениеОбъектаМетаданных); + + ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора Тогда + +// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуВыбора") +// .СПараметрами(ОписаниеОбъектаМетаданных) +// .Представление("Открытие формы выбора: " + ПредставлениеОбъектаМетаданных); + + ИначеЕсли ОписаниеФормы.ЭтоФормаСписка Тогда + +// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуСписка") +// .СПараметрами(ОписаниеОбъектаМетаданных) +// .Представление("Открытие формы списка: " + ПредставлениеОбъектаМетаданных); + + КонецЕсли; + +КонецПроцедуры + +#Область Тесты + +Процедура ОткрытьФормуНовогоОбъекта(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта"); + +КонецПроцедуры + +Процедура ОткрытьФормуСуществующегоОбъекта(ОбъектМетаданных) Экспорт + + Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); + КонецЕсли; + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); + +КонецПроцедуры + +Процедура ОткрытьФормуГруппы(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаГруппы"); + +КонецПроцедуры + +Процедура ОткрытьФормуВыбора(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбора"); + +КонецПроцедуры + +Процедура ОткрытьФормуВыбораГруппы(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбораГруппы"); + +КонецПроцедуры + +Процедура ОткрытьФормуСписка(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаСписка"); + +КонецПроцедуры + +Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено) + + ПолноеИмяФормы = СтрШаблон("%1.%2.%3", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, ИмяФормы); + ЮТЛогирование.Отладка("Открытие формы: " + ПолноеИмяФормы); + ЮТЛогирование.Отладка("Ключ: " + Ключ); + + Параметры = Новый Структура("Ключ", Ключ); + + Попытка + //@skip-check use-non-recommended-method + Форма = ПолучитьФорму(ПолноеИмяФормы, Параметры, , Новый УникальныйИдентификатор); // BSLLS:GetFormMethod-off + Исключение + ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение + КонецПопытки; + + Если Форма = Неопределено Тогда + ВызватьИсключение "Не удалось получить форму"; + КонецЕсли; + + ЭтоУправляемаяФорма = ЭтоУправляемаяФорма(Форма); + ЮТЛогирование.Отладка("Тип формы: " + Формат(ЭтоУправляемаяФорма, "БЛ='Обычная форма'; БИ='Управляемая форма';")); + + Попытка + Форма.Открыть(); + Исключение + ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение + КонецПопытки; + + Если Форма.Открыта() Тогда + Если ЭтоУправляемаяФорма Тогда + Форма.ОбновитьОтображениеДанных(); + Иначе + Форма.Обновить(); + КонецЕсли; + + Форма.Модифицированность = Ложь; + Форма.Закрыть(); + + Если Форма.Открыта() Тогда + ВызватьИсключение "Не удалось закрыть форму"; + КонецЕсли; + Иначе + ВызватьИсключение "Не удалось открыть форму"; + КонецЕсли; + +КонецПроцедуры + +Функция ЭтоУправляемаяФорма(Форма) + + Возврат ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения"); + +КонецФункции + +#КонецОбласти + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" new file mode 100644 index 000000000..519f1d023 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" @@ -0,0 +1,10 @@ + + + ЮТДымовыеТесты_ОбычныеФормы + + ru + Дымовые тесты. Обычные формы + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..cc3069835 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,185 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция Формы(Знач КлючНастроек, Знач ОтборФорм) Экспорт + + ВладельцыФорм = Новый Массив; + КоллекцииМетаданных = СтрРазделить("Справочники, Документы", ", ", Ложь); + + Для Каждого ИмяКоллекции Из КоллекцииМетаданных Цикл + + Коллекция = Метаданные[ИмяКоллекции]; + Тип = ЮТМетаданные.ТипыМетаданных()[ИмяКоллекции]; + + Для Каждого ОбъектМетаданных Из Коллекция Цикл + + ВладелецФорм = ВладелецФормы(Тип.Имя, ОбъектМетаданных.Имя); + + Для Каждого Форма Из ОбъектМетаданных.Формы Цикл + + ОписаниеФормы = НовоеОписаниеФормы(ОбъектМетаданных, Форма); + ВладелецФорм.Формы.Добавить(ОписаниеФормы); + + КонецЦикла; + + Если ЗначениеЗаполнено(ВладелецФорм.Формы) Тогда + ВладельцыФорм.Добавить(ВладелецФорм); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат ВладельцыФорм; + +КонецФункции + +Функция СлучайныйЭлемент(Знач ТипОбъекта, Знач ИмяОбъекта, Знач Параметры = Неопределено) Экспорт + + ПолноеИмя = СтрШаблон("%1.%2", ТипОбъекта, ИмяОбъекта); + ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ПолноеИмя); + РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных); + + Запрос = Новый Запрос; + + ВыбираемыеПоля = Новый Массив; + Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл + + Если Реквизит.Значение.ЭтоКлюч Тогда + ВыбираемыеПоля.Добавить(Реквизит.Ключ); + КонецЕсли; + + КонецЦикла; + + Реквизиты = СтрСоединить(ВыбираемыеПоля, ", "); + + НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100); + Запрос.Текст = СтрШаблон( + "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 + | * + |ИЗ + | (ВЫБРАТЬ ПЕРВЫЕ %1 + | %2 + | ИЗ + | %3 КАК Выборка + | + | УПОРЯДОЧИТЬ ПО + | %4 УБЫВ) КАК ВЫБОРКА + | + |УПОРЯДОЧИТЬ ПО + | %4", НомерЭлемента, Реквизиты, ПолноеИмя, РеквизитУпорядочивания); + + ЗначенияРеквизитов = ЮТЗапросыСлужебныйВызовСервера.ЗначенияИзЗапроса(Запрос, Реквизиты); + + Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда + Возврат ЗначенияРеквизитов.Ссылка; + Иначе + Возврат ЗначенияРеквизитов; + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция НовоеОписаниеФормы(ОбъектМетаданных, Форма) + + Описание = ОписаниеФормы(); + Описание.Имя = Форма.Имя; + + Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Обычная; + Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая; + + ФормаОбъекта = "ФормаОбъекта"; + ФормаГруппы = "ФормаГруппы"; + ФормаДляВыбора = "ФормаДляВыбора"; + ФормаДляВыбораГруппы = "ФормаДляВыбораГруппы"; + ФормаСписка = "ФормаСписка"; + + Если ФормаИмеетТип(ФормаОбъекта, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаОбъекта = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаГруппы, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаОбъекта = Истина; + Описание.ЭтоФормаГруппы = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаДляВыбора, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаВыбора = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаДляВыбораГруппы, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаВыбора = Истина; + Описание.ЭтоФормаГруппы = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаСписка, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаСписка = Истина; + КонецЕсли; + + Возврат Описание; + +КонецФункции + +Функция ФормаИмеетТип(ИмяФормы, ОбъектМетаданных, Форма) + + Возврат ЮТОбщий.ПеременнаяСодержитСвойство(ОбъектМетаданных, "Основная" + ИмяФормы) + И (Форма = ОбъектМетаданных["Основная" + ИмяФормы] Или Форма = ОбъектМетаданных["Дополнительная" + ИмяФормы]); + +КонецФункции + +Функция ОписаниеФормы() + + Описание = Новый Структура; + Описание.Вставить("Имя", ""); + Описание.Вставить("ЭтоФормаСписка", Ложь); + Описание.Вставить("ЭтоФормаОбъекта", Ложь); + Описание.Вставить("ЭтоФормаГруппы", Ложь); + Описание.Вставить("ЭтоФормаВыбора", Ложь); + Описание.Вставить("ЭтоОбычнаяФорма", Ложь); + Описание.Вставить("ЭтоУправляемаяФорма", Ложь); + + Возврат Описание; + +КонецФункции + +Функция ВладелецФормы(Тип, Имя) + + Описание = Новый Структура; + Описание.Вставить("Тип", Тип); + Описание.Вставить("Имя", Имя); + Описание.Вставить("Формы", Новый Массив); + Возврат Описание; + +КонецФункции + +Функция РеквизитУпорядочивания(ОписаниеОбъектаМетаданных) + + Если ЮТМетаданные.ЭтоДокумент(ОписаниеОбъектаМетаданных) Тогда + Возврат "Дата"; + ИначеЕсли ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда + Возврат "Ссылка"; + КонецЕсли; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..67fdff83e --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,11 @@ + + + ЮТДымовыеТестыСлужебныйВызовСервера + + ru + Дымовые тесты служебный. Вызов сервера + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 5f94587a6..147658a67 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -182,7 +182,7 @@ КонецФункции -Функция ЗначенияИзЗапроса(Запрос, Реквизиты) +Функция ЗначенияИзЗапроса(Запрос, Реквизиты) Экспорт Результат = Новый Структура(Реквизиты); Выборка = Запрос.Выполнить().Выбрать(); @@ -195,7 +195,7 @@ КонецФункции -Функция ЗначениеИзЗапроса(Запрос, Реквизит) +Функция ЗначениеИзЗапроса(Запрос, Реквизит) Экспорт Выборка = Запрос.Выполнить().Выбрать(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 1f1c92365..b40fd0ec0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -81,6 +81,146 @@ КонецФункции +// Проверка, что переданное значение относится к справочникам. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это справочник +Функция ЭтоСправочник(Значение) Экспорт + + Возврат ЭтоОбъектМетаданныхОжидаемогоТипа(Значение, "Справочник"); + +КонецФункции + +// Проверка, что переданное значение относится к документам. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это документ +Функция ЭтоДокумент(Значение) Экспорт + + Возврат ЭтоОбъектМетаданныхОжидаемогоТипа(Значение, "Документ"); + +КонецФункции + +// Проверка, что переданное значение относится к ПВХ. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это ПВХ +Функция ЭтоПланВидовХарактеристик(Значение) Экспорт + + Возврат ЭтоОбъектМетаданныхОжидаемогоТипа(Значение, "ПланВидовХарактеристик"); + +КонецФункции + +// Проверка, что переданное значение относится к перечислениям. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это перечисление +Функция ЭтоПланСчетов(Значение) Экспорт + + Возврат ЭтоОбъектМетаданныхОжидаемогоТипа(Значение, "ПланСчетов"); + +КонецФункции + +// Проверка, что переданное значение относится к ПВР. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это ПВР +Функция ЭтоПланВидовРасчета(Значение) Экспорт + + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "ПланВидовРасчета"; + +КонецФункции + +// Проверка, что переданное значение относится к планам обмена. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это план обмена +Функция ЭтоПланОбмена(Значение) Экспорт + + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "ПланОбмена"; + +КонецФункции + +// Проверка, что переданное значение относится к бизнес процессам. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это бизнес процесс +Функция ЭтоБизнесПроцесс(Значение) Экспорт + + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "БизнесПроцесс"; + +КонецФункции + +// Проверка, что переданное значение относится к задачам. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это задача +Функция ЭтоЗадача(Значение) Экспорт + + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "Задача"; + +КонецФункции + // Проверка, что переданное значение относится к перечислениям. // // Параметры: @@ -99,6 +239,24 @@ КонецФункции +// Проверка, что переданное значение относится к регистрам сведений. +// +// Параметры: +// Значение - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. СтруктураОписанияОбъектаМетаданных +// - Произвольный - Объект информационной базы +// +// Возвращаемое значение: +// Булево - Это регистр сведений +Функция ЭтоРегистрСведений(Значение) Экспорт + + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "РегистрСведений"; + +КонецФункции + // Проверка, что переданное значение относится к регистрам. // // Параметры: @@ -234,4 +392,27 @@ КонецФункции +// Типы метаданных. +// +// Возвращаемое значение: +// Структура - Типы метаданных. +// * Ключ - Строка +// * Значение - см. ЮТМетаданные.ОписаниеТипаМетаданных +Функция ТипыМетаданных() Экспорт + + Возврат ЮТМетаданныеСлужебныйПовтИсп.ТипыМетаданных(); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ЭтоОбъектМетаданныхОжидаемогоТипа(Значение, ОжидаемыйТип) + + Описание = ОписаниеОбъектаМетаданных(Значение); + Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = ОжидаемыйТип; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" index 634ecc234..18b8d1645 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" @@ -31,6 +31,10 @@ КонецФункции +// Возвращает описания типов метаданных +// +// Возвращаемое значение: +// Структура - Функция ТипыМетаданных() Экспорт Возврат ЮТМетаданныеСлужебныйВызовСервера.ТипыМетаданных(); diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 2d0004623..c454ae434 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -64,6 +64,8 @@ CommonModule.МокитоПроверки CommonModule.МокитоСлужебный CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент + CommonModule.ЮТДымовыеТесты_ОбычныеФормы + CommonModule.ЮТДымовыеТестыСлужебныйВызовСервера CommonModule.ЮТест CommonModule.ЮТЗависимости CommonModule.ЮТЗависимостиСлужебный diff --git a/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl b/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl index e037eab6d..1e681f7ec 100644 --- a/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl +++ b/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl @@ -47,4 +47,12 @@ Procedure ЮТOnStart() EndProcedure +&After("ОбработкаОтображенияОшибки") +Процедура ЮТОбработкаОтображенияОшибки(ИнформацияОбОшибке, ТребуетсяЗавершениеСеанса, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" new file mode 100644 index 000000000..af5b84f7c --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" @@ -0,0 +1,12 @@ + + + ДымовыеТесты + + ru + Дымовые тесты + + true + true + CommonModule.ЮТДымовыеТесты_ОбычныеФормы + Subsystem.ЮТПодключаемыеМодули + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" index 0633d2b05..ba2449990 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" @@ -10,6 +10,7 @@ ru Содержит подсистемы с динамически подключаемой (загружаемой) функциональностью + ДымовыеТесты ОбработчикиСобытий ФормированиеОтчета diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.oform" "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.oform" new file mode 100644 index 0000000000000000000000000000000000000000..c57b99e6a2bc6bc3990cf211e9a204d12da98b19 GIT binary patch literal 7318 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 literal 0 HcmV?d00001 diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.oform" "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.oform" new file mode 100644 index 0000000000000000000000000000000000000000..7dd48e5e67908f3b78838d2fab98f38930fa7e6c GIT binary patch literal 9301 zcmeHMON$-H6~36P1o{u+X4^&T{m42yFA@m(0ae}AtJncyugnm8AP*uz5(oqg5i#Tk z$i^ZQ*_O6h_WdQUL1yMm3$~?mQUAIbRQ*=_HyeDNj(ipvCzf z&)0ck5%yEG2U_i)@W?!a#4I)%rF)r#c3~8@=p>4cQs`)hA*MR^s`9E;H}`>f=!c5- zEG{7eY!n{w@;cY)h7+Em#1del&dg8UuH>miqhXBLK(eid;n(XN zU}OU7j<9YI=Be{ye^?_sME-?Yv;JB0 z6nuvZ+3U&ml%Y)s^tiw~v=g$uqpR{E1g*#e&XDu!QV!mlK?{{?64q5MVoU~3R+c`g zpQI=s?xr zvS!loHnW3jJ433rNV((^hr_<+yXbJpTAfW_Pmd4=KbgL0G12ts|Ir1xL@o$1%WS5h z$xB=iaq7B?VW1c{?1JD~5A*^?V6PXtx#zuJ9J`uMj)CY?ZVaj5WHPkQw5sIsiZY)fp@zI_;g71QP)>)Zu~ z^krIBeJZ0?gGixhVMh~0^a%ZYaJlAGd)*gI#Y_A4wdi~{gFU3UDAfRf2#@(E=zi|9 zeb*o(=m^bS^p{{lX^8ot?z)6zPAq*z9OV&Fl|G1~q!&56!Nj6s?MFW5QXfF$x)S23 zD>56k_faS{AfO)l5pp4%XQ$79nZbWVezp!3vxxaGN*xF@2Sc9)SG?=L@Ok$znBjP;W95t;h7;`vH+;K&t= z=Tp(25MlfSC!$lt7-yT`Pk)=9AOrLD<{rns)Qgw6Lu`>=a6*AoQZ&uCc;;EI7lB~7 zu3qpCZ&_|b^+-lKC_+F2C1j|CHcsdweKs}sQ6*Rm)vQM7z{iwF1LGnsa+y^Xk!+2k zci!0%W8_-UdMwq%h?HkZ%EAy04rfqsT!vw&(ibqE)r>NNTU9=%;auIm>y+i4q2(JF zdY_#YC=9}ChjgkggV1`kqp#8T2;8(n?k5^=kvZZ>hZ)7J0Ek%`>4OvwvcMR)41;Nk zsIht{L$qcj!sP;4`;>9k1S}S1QA*AtkJ@8hs+h{0QQa~fJ``b4K?hf)7>jqp_HGnW zRxfl&(e=vN)RPD|faCTY_!@8=jIOosvw&$W!dj4_I0GXlhh&B_CLPC{Sp<{k^^hTi z;+z==;l==}(y6;hhwOYVHJMO~ETncfM24$68`muYoxQ|*da(IqK8by^xd)s1Lc2LV zm_BW}53+q&E^aM}_~Un5{t$`VC8h#>D zuNu$kP~%YGp2nPE6nnUiltu-QIx0Du?EIK##h4Eb6wkqBQ9!2@@f8Bh5gkP#_|kTH zzy?__Z}4A_=&%g>qQvXs96rp#{D-eTc!SrptCWUYY_l$i^#CYgx<``q-r^5QjTzn4 zzR8j(^QT6ZtJO&;{){#~Wo`Zfdi@(%&@+70eK38#`5nyBM|Q&vS0 z#)Oki)+46%8dcM$8sLQiE3c94^1M!lsg(&Jw$r<}?K!SD|3QdZK-3`F2zzz%A3tCc A)c^nh literal 0 HcmV?d00001 diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" index eab1cedfc..dbefc12c0 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" @@ -12,7 +12,6 @@ ru Банки - true Catalog.Банки.StandardAttribute.Description Catalog.Банки.StandardAttribute.Code @@ -20,94 +19,76 @@ Use PredefinedDataName - Use - Use Predefined - Use - Use Ref - Use - Use DeletionMark - Use - Use IsFolder - Use - Use Owner - true ShowError Use - Use Parent - true Use - Use Description - ShowError Use - Use Code - Use - @@ -144,4 +125,37 @@ InDialog true BothWays + Catalog.Банки.Form.ФормаЭлемента + Catalog.Банки.Form.ФормаСписка + Catalog.Банки.Form.ФормаВыбора + + ФормаЭлемента + + ru + Форма элемента + + Ordinary + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + Ordinary + PersonalComputer + MobileDevice + + + ФормаВыбора + + ru + Форма выбора + + Ordinary + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Module.bsl" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Module.bsl" index f83bbf599..0158a8557 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Module.bsl" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Module.bsl" @@ -108,7 +108,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - + ВызватьИсключение "123"; #Если НЕ МобильныйКлиент Тогда // Команды имеют смысл только на мобильном клиенте Элементы.ФормаПозвонить.Видимость = Ложь; From 2c9de714853a52b3c1eb6e1e40d9f6c3b0630d4d Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Wed, 31 Jul 2024 00:30:37 +0300 Subject: [PATCH 47/86] =?UTF-8?q?feat(smoke):=20=D1=80=D0=B0=D0=B7=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D0=B8=D0=B5=20=D0=B4=D1=8B=D0=BC=D0=BE=D0=B2=D1=8B?= =?UTF-8?q?=D1=85=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2,=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=20=D1=81=20=D0=BD=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B9=D0=BA=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 37 ++++ ...0\242\320\265\321\201\321\202\321\213.mdo" | 11 + .../Module.bsl" | 50 +++-- ...0\265\320\244\320\276\321\200\320\274.mdo" | 4 +- .../Module.bsl" | 203 ++++++++++++++++++ ...0\265\321\200\320\262\320\265\321\200.mdo" | 11 + .../Module.bsl" | 50 +++++ .../src/Configuration/Configuration.mdo | 4 +- .../Form.form" | 7 + .../Form.form" | 3 + ...0\242\320\265\321\201\321\202\321\213.mdo" | 2 +- .../Module.bsl" | 123 +++++++++++ ...0\265\321\200\320\262\320\265\321\200.mdo" | 7 + .../Module.bsl" | 31 +++ tests/src/Configuration/Configuration.mdo | 1 + 15 files changed, 527 insertions(+), 17 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" (73%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" (73%) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" new file mode 100644 index 000000000..4f6537078 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -0,0 +1,37 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция НастройкиДымовыхТестов() Экспорт + + Возврат Новый Структура; + +КонецФункции + +Функция ИсключитьТест(КлючТеста) Экспорт + + Возврат Ложь; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" new file mode 100644 index 000000000..30a09ef5c --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" @@ -0,0 +1,11 @@ + + + ЮТДымовыеТесты + + ru + Дымовые тесты настройки + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" similarity index 73% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" index a24b980e2..92de35904 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -48,19 +48,13 @@ Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда -// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуГруппы") -// .СПараметрами(ОписаниеОбъектаМетаданных) -// .Представление("Открытие формы группы: " + ПредставлениеОбъектаМетаданных); + ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаГруппы", "Новый", "новой группы"); ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда - ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуНовогоОбъекта") - .СПараметрами(ОписаниеОбъектаМетаданных) - .Представление("Открытие формы нового объекта: " + ПредставлениеОбъектаМетаданных); - - ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуСуществующегоОбъекта") - .СПараметрами(ОписаниеОбъектаМетаданных) - .Представление("Открытие формы существующего объекта: " + ПредставлениеОбъектаМетаданных); + ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаОбъекта", "Новый", "нового объекта"); + ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаОбъекта", "Существующий", "существующего объекта"); + ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаОбъекта", "Скопированный", "скопированного объекта"); ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда @@ -84,15 +78,45 @@ КонецПроцедуры +Процедура ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, ИмяФормы, Суффикс, Представление) + + Идентификатор = СтрШаблон("%1.%2.%3.%4", ОписаниеОбъектаМетаданных.Тип, ОписаниеОбъектаМетаданных.Имя, ИмяФормы, Суффикс); + + Если ЮТДымовыеТесты.ИсключитьТест(Идентификатор) Тогда + Возврат; + КонецЕсли; + + ИмяМетода = СтрШаблон("Открыть%1_%2", ИмяФормы, Суффикс); + ПредставлениеТеста = СтрШаблон("Открытие формы %1: %2.%3", Представление, ОписаниеОбъектаМетаданных.Тип, ОписаниеОбъектаМетаданных.Имя); + + ЮТТесты.ДобавитьКлиентскийТест(ИмяМетода) + .СПараметрами(ОписаниеОбъектаМетаданных) + .Представление(ПредставлениеТеста); + + +КонецПроцедуры + #Область Тесты -Процедура ОткрытьФормуНовогоОбъекта(ОбъектМетаданных) Экспорт +Процедура ОткрытьФормаОбъекта_Новый(ОбъектМетаданных) Экспорт ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта"); КонецПроцедуры -Процедура ОткрытьФормуСуществующегоОбъекта(ОбъектМетаданных) Экспорт +Процедура ОткрытьФормаОбъекта_Существующий(ОбъектМетаданных) Экспорт + + Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); + КонецЕсли; + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); + +КонецПроцедуры + +Процедура ОткрытьФормаОбъекта_Скопированный(ОбъектМетаданных) Экспорт Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); @@ -104,7 +128,7 @@ КонецПроцедуры -Процедура ОткрытьФормуГруппы(ОбъектМетаданных) Экспорт +Процедура ОткрытьФормаГруппы(ОбъектМетаданных) Экспорт ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаГруппы"); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" similarity index 73% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" index 519f1d023..c7a1f4e89 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\320\261\321\213\321\207\320\275\321\213\320\265\320\244\320\276\321\200\320\274\321\213.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" @@ -1,9 +1,9 @@ - ЮТДымовыеТесты_ОбычныеФормы + ЮТДымовыеТесты_ОткрытиеФорм ru - Дымовые тесты. Обычные формы + Дымовые тесты. Открытие форм true true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..b54f49ae9 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,203 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Инициализация. +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска +Процедура Инициализация(ПараметрыЗапуска) Экспорт + + Настройки = ЗагрузитьНастройки(ПараметрыЗапуска); + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаНастройки(), Настройки, Истина); + +КонецПроцедуры + +Функция Настройки() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаНастройки()); + +КонецФункции + +Функция ИсключитьТест(КлючТеста) Экспорт + + Настройки = Настройки(); + + Если Настройки = Неопределено Или Не Настройки.Использовать Тогда + Возврат Истина; + КонецЕсли; + + ЭлементНастройки = Настройки; + НаборыИсключений = Новый Массив; + Исключить = Ложь; + + Для Каждого Ключ Из ЮТСтроки.РазделитьСтроку(КлючТеста, ".") Цикл + + Если ЭлементНастройки <> Неопределено И ЗначениеЗаполнено(ЭлементНастройки.Исключения) Тогда + НаборыИсключений.Добавить(ЭлементНастройки.Исключения); + КонецЕсли; + + ЭлементНастройки = ЮТКоллекции.ЗначениеСтруктуры(Настройки.Подчиненные, Ключ); + + Если ЭлементНастройки = Неопределено И НЕ ЗначениеЗаполнено(НаборыИсключений) Тогда + Прервать; + ИначеЕсли ЭлементНастройки <> Неопределено Тогда + Если НЕ ЭлементНастройки.Использовать Тогда + Исключить = Истина; + Прервать; + КонецЕсли; + КонецЕсли; + + Если ПодходитПодИсключения(Ключ, НаборыИсключений) Тогда + Исключить = Истина; + Прервать; + КонецЕсли; + + КонецЦикла; + + Возврат Исключить; + +КонецФункции + + + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Контекст + +Функция ИмяКонтекстаНастройки() + + Возврат "НастройкиДымовыхТестов"; + +КонецФункции + +#КонецОбласти + +#Область ЗагрузкаНастроек + +Функция ЗагрузитьНастройки(ПараметрыЗапуска) Экспорт + + Настройки = НастройкиДымовыхТестов(); + ЗагружаемыеПараметры = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, "ДымовыеТесты"); + + Если Не ЗначениеЗаполнено(ЗагружаемыеПараметры) Тогда + Возврат Настройки; + КонецЕсли; + + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ЗагружаемыеПараметры, "Булево, Структура", "ЗагрузитьНастройкиДымовыхТестов", "ДымовыеТесты"); + + ПрочитатьНастройки(Настройки, ЗагружаемыеПараметры, "ДымовыеТесты"); + + Возврат Настройки; + +КонецФункции + +Процедура ПрочитатьНастройки(Настройки, ЗагружаемыеНастройки, Путь) + + Если ТипЗнч(ЗагружаемыеНастройки) = Тип("Булево") Тогда + Настройки.Использовать = ЗагружаемыеНастройки; + Возврат; + КонецЕсли; + + Для Каждого Элемент Из ЗагружаемыеНастройки Цикл + + Если СтрСравнить(Элемент.Ключ, "Использовать") = 0 Тогда + Настройки.Использовать = Элемент.Значение; + ИначеЕсли СтрСравнить(Элемент.Ключ, "Исключения") = 0 Тогда + ПрочитатьИсключения(Настройки, Элемент.Значение, Путь); + ИначеЕсли СтрСравнить(Элемент.Ключ, "Параметры") = 0 Тогда + ПрочитатьПараметры(Настройки, Элемент.Значение, Путь); + Иначе + ПрочитатьВложеннуюНастройку(Настройки, Элемент.Ключ, Элемент.Значение, Путь); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ПрочитатьИсключения(Настройки, Исключения, Путь) + + Если ТипЗнч(Исключения) = Тип("Строка") Тогда + Настройки.Исключения.Добавить(Исключения); + ИначеЕсли ТипЗнч(Исключения) = Тип("Массив") Тогда + Настройки.Исключения = Исключения; + ИначеЕсли Исключения <> Неопределено Тогда + ВызватьИсключение СтрШаблон("Некорретный тип элемента настроек `%1.Исключения`. Допустимо: Строка или Массив из Строка", Путь); + КонецЕсли; + +КонецПроцедуры + +Процедура ПрочитатьПараметры(Настройки, Параметры, Путь) +КонецПроцедуры + +Функция ПрочитатьВложеннуюНастройку(Настройки, ИмяНастройки, ЗначениеНастройки, Путь) + + ВложеннаяНастройка = ОписаниеЭлементаНастройки(); + ПрочитатьНастройки(ВложеннаяНастройка, ЗначениеНастройки, Путь + "." + ИмяНастройки); + + Настройки.Подчиненные.Вставить(ИмяНастройки, ВложеннаяНастройка); + Возврат ВложеннаяНастройка; + +КонецФункции + +Функция НастройкиДымовыхТестов() + + Настройки = ОписаниеЭлементаНастройки(); + Настройки.Использовать = Ложь; + + Возврат Настройки; + +КонецФункции + +Функция ОписаниеЭлементаНастройки() + + Описание = Новый Структура; + Описание.Вставить("Исключения", Новый Массив); + Описание.Вставить("Подчиненные", Новый Структура); + Описание.Вставить("Параметры", Неопределено); + Описание.Вставить("Использовать", Истина); + + Возврат Описание; + +КонецФункции + +#КонецОбласти + +Функция ПодходитПодИсключения(Ключ, НаборыИсключений) + + Для Каждого Набор Из НаборыИсключений Цикл + + Для Каждого ОписаниеИсключения Из Набор Цикл + + Если ЮТСтроки.СоответсвуетШаблону(Ключ, ОписаниеИсключения) Тогда + Возврат Истина; + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..22aae9218 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,11 @@ + + + ЮТДымовыеТестыСлужебныйКлиентСервер + + ru + Дымовые тесты служебный клиент сервер + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index d92bb0e09..667d5adae 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -324,6 +324,56 @@ КонецФункции +Функция СоответсвуетШаблону(Строка, Шаблон) Экспорт + + Если Шаблон = "" Тогда + Возврат Ложь; + ИначеЕсли Шаблон = "*" Тогда + Возврат ЗначениеЗаполнено(Строка); + ИначеЕсли НЕ СтрНайти(Шаблон, "*") Тогда + Возврат СтрСравнить(Строка, Шаблон) = 0; + КонецЕсли; + + Длина = СтрДлина(Строка); + Блоки = СтрРазделить(Шаблон, "*", Истина); + + Позиция = -1; + Успешно = Истина; + ПервыйБлок = 0; + ПоследнийБлок = Блоки.ВГраница(); + + Если Блоки[0] <> "" Тогда + Если НЕ СтрНачинаетсяС(Строка, Блоки[0]) Тогда + Возврат Ложь; + Иначе + ПервыйБлок = 1; + Позиция = Позиция + СтрДлина(Блоки[0]); + КонецЕсли; + КонецЕсли; + + Для Инд = ПервыйБлок По ПоследнийБлок Цикл + + Позиция = Позиция + 1; + Блок = Блоки[Инд]; + Если Блок <> "" Тогда + Позиция = СтрНайти(Строка, Блок, , Позиция + 1); + Если Позиция = 0 Тогда + Возврат Ложь; + Иначе + Позиция = Позиция + СтрДлина(Блок) - 1; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + + Если Блок <> "" Тогда + Возврат СтрЗаканчиваетсяНа(Строка, Блок); + Иначе + Возврат Позиция <= Длина; + КонецЕсли; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index c454ae434..356858307 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -64,8 +64,10 @@ CommonModule.МокитоПроверки CommonModule.МокитоСлужебный CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент - CommonModule.ЮТДымовыеТесты_ОбычныеФормы + CommonModule.ЮТДымовыеТесты + CommonModule.ЮТДымовыеТесты_ОткрытиеФорм CommonModule.ЮТДымовыеТестыСлужебныйВызовСервера + CommonModule.ЮТДымовыеТестыСлужебныйКлиентСервер CommonModule.ЮТест CommonModule.ЮТЗависимости CommonModule.ЮТЗависимостиСлужебный diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index b19eaeaf2..97589bb35 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -910,6 +910,7 @@ true + ДеревоТестовСтрокаПоиска true @@ -948,6 +949,7 @@ true ViewStatusAddition + ДеревоТестовСостояниеПросмотра true @@ -986,6 +988,7 @@ true SearchControlAddition + ДеревоТестовУправлениеПоиском true @@ -1328,6 +1331,7 @@ true + ДеревоТестовОшибкиСтрокаПоиска true @@ -1366,6 +1370,7 @@ true ViewStatusAddition + ДеревоТестовОшибкиСостояниеПросмотра true @@ -1404,6 +1409,7 @@ true SearchControlAddition + ДеревоТестовОшибкиУправлениеПоиском true @@ -1449,6 +1455,7 @@ None None + ДеревоТестовОшибкиСтек diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" index 3b49cf773..ea80b72a5 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" @@ -284,6 +284,7 @@ true + ДеревоТестовСтрокаПоиска true @@ -322,6 +323,7 @@ true ViewStatusAddition + ДеревоТестовСостояниеПросмотра true @@ -360,6 +362,7 @@ true SearchControlAddition + ДеревоТестовУправлениеПоиском true diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" index af5b84f7c..a6a21a3fb 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" @@ -7,6 +7,6 @@ true true - CommonModule.ЮТДымовыеТесты_ОбычныеФормы + CommonModule.ЮТДымовыеТесты_ОткрытиеФорм Subsystem.ЮТПодключаемыеМодули diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..71f2775c3 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,123 @@ +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("Инициализация") + .ДобавитьКлиентскийТест("ЗагрузитьНастройки") + .ДобавитьТест("ИсключитьТест") + ; + +КонецПроцедуры + +Процедура Инициализация() Экспорт + + + +КонецПроцедуры + +Процедура ЗагрузитьНастройки() Экспорт + + ДымовыеТесты = Новый Структура; + + ПараметрыЗапуска = Новый Структура; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.Вставить("ДымовыеТесты", Неопределено); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.Вставить("ДымовыеТесты", Ложь); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.Вставить("ДымовыеТесты", Истина); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоИстина(); + + ПараметрыЗапуска.Вставить("ДымовыеТесты", ДымовыеТесты); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоЛожь(); + + ДымовыеТесты.Вставить("Использовать", Истина); + ПараметрыЗапуска.Вставить("ДымовыеТесты", ДымовыеТесты); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоИстина(); + + ДымовыеТесты.Вставить("Справочник", Истина); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Подчиненные.Справочник.Использовать").ЭтоИстина(); + + ДымовыеТесты.Вставить("Исключения", "Номенклатура"); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Исключения[0]").Равно("Номенклатура"); + + ДымовыеТесты.Вставить("Исключения", ЮТКоллекции.ЗначениеВМассиве("Номенклатура")); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Исключения[0]").Равно("Номенклатура"); + + НастройкиСправочников = Новый Структура; + ДымовыеТесты.Вставить("Справочник", НастройкиСправочников); + НастройкиСправочников.Вставить("Исключения", "Удалить*"); + НастройкиСправочников.Вставить("Номенклатура", Новый Структура("ФормаСписка, Исключения", Ложь, "Скопированный")); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) + .Свойство("Подчиненные.Справочник.Исключения[0]").Равно("Удалить*") + .Свойство("Подчиненные.Справочник.Подчиненные.Номенклатура.Использовать").ЭтоИстина() + .Свойство("Подчиненные.Справочник.Подчиненные.Номенклатура.Подчиненные.ФормаСписка.Использовать").ЭтоЛожь() + .Свойство("Подчиненные.Справочник.Подчиненные.Номенклатура.Исключения[0]").Равно("Скопированный") + ; + +КонецПроцедуры + +Процедура ИсключитьТест() Экспорт + + Настройки = Новый Структура("Использовать, Справочник", Истина, Ложь); + + УстановитьНастройки(Настройки); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Документ")) + .ЭтоЛожь(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Документ.ПКО")) + .ЭтоЛожь(); + + Настройки.Справочник = Новый Структура("Исключения", "Номенклатура"); + УстановитьНастройки(Настройки); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник")) + .ЭтоЛожь(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура_Удалить")) + .ЭтоЛожь(); + Настройки.Справочник.Исключения = ЮТКоллекции.ЗначениеВМассиве("*Удалить"); + УстановитьНастройки(Настройки); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура_Удалить")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Удалить")) + .ЭтоЛожь(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Удалить_Номенклатура")) + .ЭтоЛожь(); + Настройки = Новый Структура("Использовать, Исключения", Истина, ЮТКоллекции.ЗначениеВМассиве("Удалить*")); + УстановитьНастройки(Настройки); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Документ.Удалить_Номенклатура")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Удалить_Справочник.Номенклатура")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура_Удалить")) + .ЭтоЛожь(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьНастройки(Настройки) + + ЮТДымовыеТестыСлужебныйКлиентСервер.Инициализация(Новый Структура("ДымовыеТесты", Настройки)); + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..3d8998133 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер + true + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 737386fa7..0c0bea083 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -25,6 +25,7 @@ .ДобавитьТест("СтрокаСимволов") .ДобавитьТест("СравнитьВерсии") .ДобавитьТест("УникальныеСтроки") + .ДобавитьТест("СоответсвуетШаблону") ; КонецПроцедуры @@ -101,6 +102,36 @@ КонецПроцедуры +Процедура СоответсвуетШаблону() Экспорт + + Строка = "123321"; + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*23321")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "12332*")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*32*")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*1")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*1")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "2*")) + .ЭтоЛожь(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*2")) + .ЭтоЛожь(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*21*")) + .ЭтоЛожь(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*33*")) + .ЭтоИстина(); + ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*3*3*")) + .ЭтоЛожь(); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 7d24eeb93..756fb3ee8 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -36,6 +36,7 @@ CommonModule.ОМ_МокитоСлужебный CommonModule.ОМ_Общий CommonModule.ОМ_ОшибкаЗагрузкиСценариев + CommonModule.ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер CommonModule.ОМ_ЮТест CommonModule.ОМ_ЮТестПереопределяемый CommonModule.ОМ_ЮТЗависимостиСлужебный From 07ba2c09df0e31ce6c3f19d274c09b47a88c9793 Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Fri, 2 Aug 2024 18:27:09 +0300 Subject: [PATCH 48/86] =?UTF-8?q?feat(smoke):=20=D0=94=D0=BE=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=BA=D0=B0=20=D0=B4=D1=8B=D0=BC=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D1=85=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exts/smoke/.project | 18 + .../com.e1c.g5.v8.dt.formatter.bsl.prefs | 17 + .../com.e1c.v8codestyle.autosort.prefs | 2 + .../.settings/com.e1c.v8codestyle.bsl.prefs | 3 + .../smoke/.settings/com.e1c.v8codestyle.prefs | 3 + .../org.eclipse.core.resources.prefs | 2 + exts/smoke/DT-INF/PROJECT.PMF | 3 + .../Module.bsl" | 408 ++++++++++++++++++ ...0\265\320\244\320\276\321\200\320\274.mdo" | 8 +- .../smoke/src/Configuration/Configuration.mdo | 23 + ...0\242\320\265\321\201\321\202\321\213.mdo" | 11 + ...0\267\320\260\321\206\320\270\321\217.mdo" | 11 + ...0\261\321\213\321\202\320\270\320\271.mdo" | 11 + ...0\276\320\264\321\203\320\273\320\270.mdo" | 11 + .../Module.bsl" | 18 +- .../Module.bsl" | 212 --------- .../Module.bsl" | 17 +- .../Module.bsl" | 180 ++++---- .../Module.bsl" | 29 ++ ...0\265\321\200\320\262\320\265\321\200.mdo" | 9 + .../Module.bsl" | 16 + .../Module.bsl" | 6 +- .../Module.bsl" | 6 + .../Module.bsl" | 7 +- .../Module.bsl" | 8 +- .../Module.bsl" | 1 + .../Module.bsl" | 15 +- .../src/Configuration/Configuration.mdo | 2 +- .../CommandInterface.cmi" | 2 + ...0\265\321\201\321\202\320\276\320\262.mdo" | 14 + ...0\262\320\270\320\266\320\276\320\272.mdo" | 1 + ...0\242\320\265\321\201\321\202\321\213.mdo" | 2 - .../Module.bsl" | 52 +++ ...0\265\320\244\320\276\321\200\320\274.mdo" | 6 + .../Module.bsl" | 43 ++ ...1\200\320\262\320\265\321\200\320\260.mdo" | 7 + .../Module.bsl" | 118 +++-- tests/src/Configuration/Configuration.mdo | 2 + 38 files changed, 896 insertions(+), 408 deletions(-) create mode 100644 exts/smoke/.project create mode 100644 exts/smoke/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs create mode 100644 exts/smoke/.settings/com.e1c.v8codestyle.autosort.prefs create mode 100644 exts/smoke/.settings/com.e1c.v8codestyle.bsl.prefs create mode 100644 exts/smoke/.settings/com.e1c.v8codestyle.prefs create mode 100644 exts/smoke/.settings/org.eclipse.core.resources.prefs create mode 100644 exts/smoke/DT-INF/PROJECT.PMF create mode 100644 "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" => "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" (50%) create mode 100644 exts/smoke/src/Configuration/Configuration.mdo create mode 100644 "exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" create mode 100644 "exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" create mode 100644 "exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" create mode 100644 "exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" delete mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" create mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" create mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" diff --git a/exts/smoke/.project b/exts/smoke/.project new file mode 100644 index 000000000..fc110dcdd --- /dev/null +++ b/exts/smoke/.project @@ -0,0 +1,18 @@ + + + smoke + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + com._1c.g5.v8.dt.core.V8ExtensionNature + + diff --git a/exts/smoke/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs b/exts/smoke/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs new file mode 100644 index 000000000..1b7cd1867 --- /dev/null +++ b/exts/smoke/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs @@ -0,0 +1,17 @@ +alwaysEndWithSemicolon=true +autowrapBinary=alignment_on_wrap +autowrapInvocation=alignment_on_wrap +autowrapMethodParameters=alignment_on_wrap +creatorEmptyBrackets=never brackets +defaultValuesInitialized=true +eclipse.preferences.version=1 +formattingOn=true +indentMethodInternal=true +invocationEmptyParamsDelimited=true +keywordStandard=CamelCase +noindent_preprocessor=true +projectSpecificSettingsInited=true +showWhitespaceCharacters=true +softFormatassignmentStatement=true +spacesForTabs=false +whitespaceMethodParamsDelimited=true diff --git a/exts/smoke/.settings/com.e1c.v8codestyle.autosort.prefs b/exts/smoke/.settings/com.e1c.v8codestyle.autosort.prefs new file mode 100644 index 000000000..23b062502 --- /dev/null +++ b/exts/smoke/.settings/com.e1c.v8codestyle.autosort.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +topObjects=true diff --git a/exts/smoke/.settings/com.e1c.v8codestyle.bsl.prefs b/exts/smoke/.settings/com.e1c.v8codestyle.bsl.prefs new file mode 100644 index 000000000..ac5ba5253 --- /dev/null +++ b/exts/smoke/.settings/com.e1c.v8codestyle.bsl.prefs @@ -0,0 +1,3 @@ +addModuleStrictTypesAnnotation=false +createModuleStructure=false +eclipse.preferences.version=1 diff --git a/exts/smoke/.settings/com.e1c.v8codestyle.prefs b/exts/smoke/.settings/com.e1c.v8codestyle.prefs new file mode 100644 index 000000000..9e9b57e54 --- /dev/null +++ b/exts/smoke/.settings/com.e1c.v8codestyle.prefs @@ -0,0 +1,3 @@ +commonChecks=true +eclipse.preferences.version=1 +standardChecks=true diff --git a/exts/smoke/.settings/org.eclipse.core.resources.prefs b/exts/smoke/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/exts/smoke/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/exts/smoke/DT-INF/PROJECT.PMF b/exts/smoke/DT-INF/PROJECT.PMF new file mode 100644 index 000000000..3b39ff43d --- /dev/null +++ b/exts/smoke/DT-INF/PROJECT.PMF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Runtime-Version: 8.3.10 +Base-Project: configuration diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" new file mode 100644 index 000000000..51c59c6f0 --- /dev/null +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -0,0 +1,408 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + Настройки = Настройки(); + + Если НЕ Настройки.Использовать Тогда + Возврат; + КонецЕсли; + + ЮТТесты.ВТранзакции().УдалениеТестовыхДанных(); + + КоллекцииМетаданных = СтрРазделить("Справочник, Документ", ", ", Ложь); + ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы(КоллекцииМетаданных, ОтборМетаданных(Настройки)); + + ТекущийТипОбъекта = Неопределено; + + Для Каждого ВладелецФорм Из ВладельцыФорм Цикл + + НаборыИсключений = Новый Массив; + Если ТекущийТипОбъекта <> ВладелецФорм.Тип Тогда + ТекущийТипОбъекта = ВладелецФорм.Тип; + ЮТТесты.ДобавитьТестовыйНабор(ТекущийТипОбъекта); + КонецЕсли; + + ОписаниеОбъектаМетаданных = Новый Структура("Тип, Имя", ВладелецФорм.Тип, ВладелецФорм.Имя); + + Для Каждого ОписаниеФормы Из ВладелецФорм.Формы Цикл + + ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы, Настройки); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Функция ОтборМетаданных(Настройки) + + Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); + Отбор.Исключения = Настройки.Исключения; + + Для Каждого Элемент Из Настройки Цикл + + Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда + ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать; + ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения; + + Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных); + КонецЕсли; + + КонецЦикла; + + Возврат Отбор; + +КонецФункции + +Процедура Инициализация(ПараметрыЗапуска) Экспорт + + ЗагружаемыеНастройки = ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, "ОткрытиеФорм"); + Настройки = ЗагрузитьНастройки(ЗагружаемыеНастройки); + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаНастройки(), Настройки); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы, Настройки) + + ТипыТестов = ТипыТестов(); + + ОписаниеФормы.Вставить("Владелец", ОписаниеОбъектаМетаданных); + ОписаниеФормы.Вставить("ТипФормы"); + + Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда + + ОписаниеФормы.ТипФормы = "ФормаГруппы"; + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы"); + + ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда + + ОписаниеФормы.ТипФормы = "ФормаОбъекта"; + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта"); + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "существующего объекта"); + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта"); + + ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда + + ОписаниеФормы.ТипФормы = "ФормаВыбораГруппы"; + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора группы"); + + ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора Тогда + + ОписаниеФормы.ТипФормы = "ФормаВыбора"; + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора"); + + ИначеЕсли ОписаниеФормы.ЭтоФормаСписка Тогда + + ОписаниеФормы.ТипФормы = "ФормаСписка"; + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Список, "списка"); + + КонецЕсли; + +КонецПроцедуры + +Функция ИсключитьТипТеста(Настройки, ТипМетаданного, ТипТеста) + + НастройкаТипаТеста = Неопределено; + НастройкаТипаМетаданных = Неопределено; + + Возврат (Настройки.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать) + Или (Настройки.Свойство(ТипМетаданного, НастройкаТипаМетаданных) + И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста) + И НЕ НастройкаТипаТеста.Использовать); + +КонецФункции + +Функция ТестПодходитПодИсключения(Настройки, ОписаниеФормы, ТипТеста) + + НастройкаТипаМетаданных = Неопределено; + НастройкаТипаТеста = Неопределено; + Если Настройки.Свойство(ОписаниеФормы.Владелец.Тип, НастройкаТипаМетаданных) Тогда + НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста); + КонецЕсли; + + Возврат НастройкаТипаТеста <> Неопределено И + ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодИсключения(ОписаниеФормы.Владелец.Имя, НастройкаТипаТеста.Исключения); + +КонецФункции + +Процедура ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипТеста, Представление) + + Владелец = ОписаниеФормы.Владелец; + Если ИсключитьТипТеста(Настройки, Владелец.Тип, ТипТеста) Или ТестПодходитПодИсключения(Настройки, ОписаниеФормы, ТипТеста) Тогда + Возврат; + КонецЕсли; + + ИмяМетода = СтрШаблон("Открыть%1_%2", ОписаниеФормы.ТипФормы, ТипТеста); + ПредставлениеТеста = СтрШаблон("Открытие формы %1: %2.%3", Представление, Владелец.Тип, Владелец.Имя); + + ЮТТесты.ДобавитьКлиентскийТест(ИмяМетода, ПредставлениеТеста, ЮТКоллекции.ЗначениеВМассиве(ОписаниеФормы.ТипФормы, ТипТеста)) + .СПараметрами(Владелец); + +КонецПроцедуры + +#Область Тесты + +Процедура ОткрытьФормаОбъекта_Новый(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта"); + +КонецПроцедуры + +Процедура ОткрытьФормаОбъекта_Существующий(ОбъектМетаданных) Экспорт + + Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); + КонецЕсли; + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); + +КонецПроцедуры + +Процедура ОткрытьФормаОбъекта_Скопированный(ОбъектМетаданных) Экспорт + + Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); + КонецЕсли; + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); + +КонецПроцедуры + +Процедура ОткрытьФормаГруппы_Группа(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаГруппы"); + +КонецПроцедуры + +Процедура ОткрытьФормаВыбора_Выбор(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбора"); + +КонецПроцедуры + +Процедура ОткрытьФормаВыбораГруппы_ВыборГруппы(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбораГруппы"); + +КонецПроцедуры + +Процедура ОткрытьФормаСписка_Список(ОбъектМетаданных) Экспорт + + ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаСписка"); + +КонецПроцедуры + +Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено) + + ПолноеИмяФормы = СтрШаблон("%1.%2.%3", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, ИмяФормы); + ЮТЛогирование.Отладка("Открытие формы: " + ПолноеИмяФормы); + ЮТЛогирование.Отладка("Ключ: " + Ключ); + + Параметры = Новый Структура("Ключ", Ключ); + + Попытка + //@skip-check use-non-recommended-method + Форма = ПолучитьФорму(ПолноеИмяФормы, Параметры, , Новый УникальныйИдентификатор); // BSLLS:GetFormMethod-off + Исключение + ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение + КонецПопытки; + + Если Форма = Неопределено Тогда + ВызватьИсключение "Не удалось получить форму"; + КонецЕсли; + + ЭтоУправляемаяФорма = ЭтоУправляемаяФорма(Форма); + ЮТЛогирование.Отладка("Тип формы: " + Формат(ЭтоУправляемаяФорма, "БЛ='Обычная форма'; БИ='Управляемая форма';")); + + Попытка + Форма.Открыть(); + Исключение + ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение + КонецПопытки; + + Если Форма.Открыта() Тогда + Если ЭтоУправляемаяФорма Тогда + Форма.ОбновитьОтображениеДанных(); + Иначе + Форма.Обновить(); + КонецЕсли; + + Форма.Модифицированность = Ложь; + Форма.Закрыть(); + + Если Форма.Открыта() Тогда + ВызватьИсключение "Не удалось закрыть форму"; + КонецЕсли; + Иначе + ВызватьИсключение "Не удалось открыть форму"; + КонецЕсли; + +КонецПроцедуры + +Функция ЭтоУправляемаяФорма(Форма) + + Возврат ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения"); + +КонецФункции + +#КонецОбласти + +#Область Контекст + +Функция Настройки() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаНастройки()); + +КонецФункции + +Функция ИмяКонтекстаНастройки() + + Возврат "ДымовыеТесты_ОткрытиеФорм"; + +КонецФункции + + +#КонецОбласти + +#Область ЗагрузкаНастроек + +Функция ЗагрузитьНастройки(ЗагружаемаяНастройка) + + НастройкиТестов = НастройкиПоУмолчанию(); + Путь = "ДымовыеТесты.ОткрытиеФорм"; + ТипыТестов = ТипыТестов(); + + Для Каждого Элемент Из ЗагружаемаяНастройка Цикл + + ЭтоБазоваяНастройка = ЮТДымовыеТестыСлужебныйКлиентСервер.ПрочитанБазовыеЭлементНастройки(НастройкиТестов, + Элемент.Ключ, + Элемент.Значение, + Путь); + + Если ЭтоБазоваяНастройка Тогда + Продолжить; + ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда + Настройка = НастройкаТипаТеста(Элемент.Значение, Путь + "." + Элемент.Ключ); + НастройкиТестов.Вставить(Элемент.Ключ, Настройка); + ИначеЕсли ЮТМетаданные.ТипыМетаданных().Свойство(Элемент.Ключ) Тогда + ПрочитатьНастройкиТипаМетаданных(НастройкиТестов, Элемент.Ключ, Элемент.Значение, Путь); + КонецЕсли; + + КонецЦикла; + + Возврат НастройкиТестов; + +КонецФункции + +Процедура ПрочитатьНастройкиТипаМетаданных(НастройкиТестов, ИмяНастройки, ЗначениеНастройки, Путь) + + НастройкиТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + ТипМетаданного = ЮТМетаданные.ТипыМетаданных()[ИмяНастройки]; + + ЗагружаемаяНастройка = НормализованноеЗначениеНастрйоки(ЗначениеНастройки); + ТипыТестов = ТипыТестов(); + + Для Каждого Элемент Из ЗагружаемаяНастройка Цикл + + ЭтоБазоваяНастройка = ЮТДымовыеТестыСлужебныйКлиентСервер.ПрочитанБазовыеЭлементНастройки(НастройкиТипаМетаданных, + Элемент.Ключ, + Элемент.Значение, + Путь); + + Если ЭтоБазоваяНастройка Тогда + Продолжить; + ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда + Настройка = НастройкаТипаТеста(Элемент.Значение, Путь + "." + Элемент.Ключ); + НастройкиТипаМетаданных.Вставить(Элемент.Ключ, Настройка); + КонецЕсли; + + КонецЦикла; + + НастройкиТестов.Вставить(ТипМетаданного.Имя, НастройкиТипаМетаданных); + +КонецПроцедуры + +Функция НастройкаТипаТеста(ЗначениеНастройки, Путь) + + ЗагружаемаяНастройка = НормализованноеЗначениеНастрйоки(ЗначениеНастройки); + Настройка = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + + Для Каждого Элемент Из ЗагружаемаяНастройка Цикл + + ЮТДымовыеТестыСлужебныйКлиентСервер.ПрочитанБазовыеЭлементНастройки(Настройка, + Элемент.Ключ, + Элемент.Значение, + Путь); + КонецЦикла; + + Возврат Настройка; + +КонецФункции + +Функция НормализованноеЗначениеНастрйоки(Настройка) + + Если ТипЗнч(Настройка) = Тип("Булево") Тогда + Возврат Новый Структура("Использовать", Настройка); + Иначе + Возврат Настройка; + КонецЕсли; + +КонецФункции + +Функция ТипыТестов() + + Типы = Новый Структура; + Типы.Вставить("Новый", "Новый"); + Типы.Вставить("Существующий", "Существующий"); + Типы.Вставить("Скопированный", "Скопированный"); + Типы.Вставить("Список", "Список"); + Типы.Вставить("Выбор", "Выбор"); + + Возврат Типы; + +КонецФункции + +Функция НастройкиПоУмолчанию() + + Настройки = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + Настройки.Использовать = Ложь; + + Возврат Настройки; + +КонецФункции + +#КонецОбласти + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" similarity index 50% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" rename to "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" index c7a1f4e89..f65d88ce9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" @@ -1,10 +1,6 @@ - - ЮТДымовыеТесты_ОткрытиеФорм - - ru - Дымовые тесты. Открытие форм - + + ДТОткрытиеФорм true true diff --git a/exts/smoke/src/Configuration/Configuration.mdo b/exts/smoke/src/Configuration/Configuration.mdo new file mode 100644 index 000000000..881e16484 --- /dev/null +++ b/exts/smoke/src/Configuration/Configuration.mdo @@ -0,0 +1,23 @@ + + + Smoke + + ru + Дымовые тесты + + Adopted + + + + + + + + true + ДТ + 8.3.10 + AddOn + Russian + Subsystem.ДТ_ЮТПодключаемыеМодули + CommonModule.ДТОткрытиеФорм + diff --git "a/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" new file mode 100644 index 000000000..d097fd542 --- /dev/null +++ "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" @@ -0,0 +1,11 @@ + + + ДымовыеТесты + + ru + Дымовые тесты + + true + CommonModule.ДТОткрытиеФорм + Subsystem.ДТ_ЮТПодключаемыеМодули + diff --git "a/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" new file mode 100644 index 000000000..67f62c5b3 --- /dev/null +++ "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -0,0 +1,11 @@ + + + Инициализация + + ru + Инициализация + + true + CommonModule.ДТОткрытиеФорм + Subsystem.ДТ_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git "a/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" new file mode 100644 index 000000000..efc5cef53 --- /dev/null +++ "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" @@ -0,0 +1,11 @@ + + + ОбработчикиСобытий + + ru + Обработчики событий + + true + Инициализация + Subsystem.ДТ_ЮТПодключаемыеМодули + diff --git "a/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" new file mode 100644 index 000000000..d76463717 --- /dev/null +++ "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" @@ -0,0 +1,11 @@ + + + ДТ_ЮТПодключаемыеМодули + + ru + Подключаемые модули + + true + ДымовыеТесты + ОбработчикиСобытий + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 4f6537078..1b77590d1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -24,9 +24,23 @@ КонецФункции -Функция ИсключитьТест(КлючТеста) Экспорт +Функция ИсключитьТест(КлючТеста, ЭлементНастройки) Экспорт - Возврат Ложь; + Если НЕ ЭлементНастройки.Свойство(КлючТеста) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат НЕ ЭлементНастройки[КлючТеста].Использовать; + +КонецФункции + +Функция БазовоеОписаниеЭлементаНастройки() Экспорт + + Описание = Новый Структура; + Описание.Вставить("Исключения", Новый Массив); + Описание.Вставить("Использовать", Истина); + + Возврат Описание; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" deleted file mode 100644 index 92de35904..000000000 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ /dev/null @@ -1,212 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// Copyright 2021-2024 BIA-Technologies Limited Liability Company -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//©///////////////////////////////////////////////////////////////////////////©// - -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы("", Новый Структура); - - Для Каждого ВладелецФорм Из ВладельцыФорм Цикл - - ОписаниеОбъектаМетаданных = Новый Структура("Тип, Имя", ВладелецФорм.Тип, ВладелецФорм.Имя); - - Для Каждого ОписаниеФормы Из ВладелецФорм.Формы Цикл - - ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы); - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы) - - ЮТТесты.ВТранзакции().УдалениеТестовыхДанных(); - - ПредставлениеОбъектаМетаданных = СтрШаблон("%1.%2", ОписаниеОбъектаМетаданных.Тип, ОписаниеОбъектаМетаданных.Имя); - - Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда - - ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаГруппы", "Новый", "новой группы"); - - ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда - - ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаОбъекта", "Новый", "нового объекта"); - ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаОбъекта", "Существующий", "существующего объекта"); - ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, "ФормаОбъекта", "Скопированный", "скопированного объекта"); - - ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда - -// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуВыбораГруппы") -// .СПараметрами(ОписаниеОбъектаМетаданных) -// .Представление("Открытие формы выбора группы: " + ПредставлениеОбъектаМетаданных); - - ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора Тогда - -// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуВыбора") -// .СПараметрами(ОписаниеОбъектаМетаданных) -// .Представление("Открытие формы выбора: " + ПредставлениеОбъектаМетаданных); - - ИначеЕсли ОписаниеФормы.ЭтоФормаСписка Тогда - -// ЮТТесты.ДобавитьКлиентскийТест("ОткрытьФормуСписка") -// .СПараметрами(ОписаниеОбъектаМетаданных) -// .Представление("Открытие формы списка: " + ПредставлениеОбъектаМетаданных); - - КонецЕсли; - -КонецПроцедуры - -Процедура ЗарегистрироватьТест(ОписаниеОбъектаМетаданных, ИмяФормы, Суффикс, Представление) - - Идентификатор = СтрШаблон("%1.%2.%3.%4", ОписаниеОбъектаМетаданных.Тип, ОписаниеОбъектаМетаданных.Имя, ИмяФормы, Суффикс); - - Если ЮТДымовыеТесты.ИсключитьТест(Идентификатор) Тогда - Возврат; - КонецЕсли; - - ИмяМетода = СтрШаблон("Открыть%1_%2", ИмяФормы, Суффикс); - ПредставлениеТеста = СтрШаблон("Открытие формы %1: %2.%3", Представление, ОписаниеОбъектаМетаданных.Тип, ОписаниеОбъектаМетаданных.Имя); - - ЮТТесты.ДобавитьКлиентскийТест(ИмяМетода) - .СПараметрами(ОписаниеОбъектаМетаданных) - .Представление(ПредставлениеТеста); - - -КонецПроцедуры - -#Область Тесты - -Процедура ОткрытьФормаОбъекта_Новый(ОбъектМетаданных) Экспорт - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта"); - -КонецПроцедуры - -Процедура ОткрытьФормаОбъекта_Существующий(ОбъектМетаданных) Экспорт - - Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); - - Если НЕ ЗначениеЗаполнено(Ключ) Тогда - ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); - КонецЕсли; - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); - -КонецПроцедуры - -Процедура ОткрытьФормаОбъекта_Скопированный(ОбъектМетаданных) Экспорт - - Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); - - Если НЕ ЗначениеЗаполнено(Ключ) Тогда - ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); - КонецЕсли; - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); - -КонецПроцедуры - -Процедура ОткрытьФормаГруппы(ОбъектМетаданных) Экспорт - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаГруппы"); - -КонецПроцедуры - -Процедура ОткрытьФормуВыбора(ОбъектМетаданных) Экспорт - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбора"); - -КонецПроцедуры - -Процедура ОткрытьФормуВыбораГруппы(ОбъектМетаданных) Экспорт - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбораГруппы"); - -КонецПроцедуры - -Процедура ОткрытьФормуСписка(ОбъектМетаданных) Экспорт - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаСписка"); - -КонецПроцедуры - -Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено) - - ПолноеИмяФормы = СтрШаблон("%1.%2.%3", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, ИмяФормы); - ЮТЛогирование.Отладка("Открытие формы: " + ПолноеИмяФормы); - ЮТЛогирование.Отладка("Ключ: " + Ключ); - - Параметры = Новый Структура("Ключ", Ключ); - - Попытка - //@skip-check use-non-recommended-method - Форма = ПолучитьФорму(ПолноеИмяФормы, Параметры, , Новый УникальныйИдентификатор); // BSLLS:GetFormMethod-off - Исключение - ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение - КонецПопытки; - - Если Форма = Неопределено Тогда - ВызватьИсключение "Не удалось получить форму"; - КонецЕсли; - - ЭтоУправляемаяФорма = ЭтоУправляемаяФорма(Форма); - ЮТЛогирование.Отладка("Тип формы: " + Формат(ЭтоУправляемаяФорма, "БЛ='Обычная форма'; БИ='Управляемая форма';")); - - Попытка - Форма.Открыть(); - Исключение - ЮТЛогирование.Ошибка(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение - КонецПопытки; - - Если Форма.Открыта() Тогда - Если ЭтоУправляемаяФорма Тогда - Форма.ОбновитьОтображениеДанных(); - Иначе - Форма.Обновить(); - КонецЕсли; - - Форма.Модифицированность = Ложь; - Форма.Закрыть(); - - Если Форма.Открыта() Тогда - ВызватьИсключение "Не удалось закрыть форму"; - КонецЕсли; - Иначе - ВызватьИсключение "Не удалось открыть форму"; - КонецЕсли; - -КонецПроцедуры - -Функция ЭтоУправляемаяФорма(Форма) - - Возврат ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения"); - -КонецФункции - -#КонецОбласти - -#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index cc3069835..91e93a966 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -18,18 +18,29 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция Формы(Знач КлючНастроек, Знач ОтборФорм) Экспорт +Функция Формы(Знач КоллекцииМетаданных, Знач ОтборМетаданных) Экспорт ВладельцыФорм = Новый Массив; - КоллекцииМетаданных = СтрРазделить("Справочники, Документы", ", ", Ложь); Для Каждого ИмяКоллекции Из КоллекцииМетаданных Цикл - Коллекция = Метаданные[ИмяКоллекции]; + Если ЮТДымовыеТесты.ИсключитьТест(ИмяКоллекции, ОтборМетаданных) Тогда + Продолжить; + КонецЕсли; + Тип = ЮТМетаданные.ТипыМетаданных()[ИмяКоллекции]; + Коллекция = Метаданные[Тип.ИмяКоллекции]; + + НаборыИсключений = Новый Массив; + ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ОтборМетаданных); + ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ЮТКоллекции.ЗначениеСтруктуры(ОтборМетаданных, ИмяКоллекции)); Для Каждого ОбъектМетаданных Из Коллекция Цикл + Если ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодНаборыИсключений(ОбъектМетаданных.Имя, НаборыИсключений) Тогда + Продолжить; + КонецЕсли; + ВладелецФорм = ВладелецФормы(Тип.Имя, ОбъектМетаданных.Имя); Для Каждого Форма Из ОбъектМетаданных.Формы Цикл diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index b54f49ae9..0b499f02e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,18 +18,6 @@ #Область СлужебныйПрограммныйИнтерфейс -// Инициализация. -// -// Параметры: -// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска -Процедура Инициализация(ПараметрыЗапуска) Экспорт - - Настройки = ЗагрузитьНастройки(ПараметрыЗапуска); - - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаНастройки(), Настройки, Истина); - -КонецПроцедуры - Функция Настройки() Экспорт Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаНастройки()); @@ -58,14 +46,12 @@ Если ЭлементНастройки = Неопределено И НЕ ЗначениеЗаполнено(НаборыИсключений) Тогда Прервать; - ИначеЕсли ЭлементНастройки <> Неопределено Тогда - Если НЕ ЭлементНастройки.Использовать Тогда - Исключить = Истина; - Прервать; - КонецЕсли; + ИначеЕсли ЭлементНастройки <> Неопределено И НЕ ЭлементНастройки.Использовать Тогда + Исключить = Истина; + Прервать; КонецЕсли; - Если ПодходитПодИсключения(Ключ, НаборыИсключений) Тогда + Если ПодходитПодНаборыИсключений(Ключ, НаборыИсключений) Тогда Исключить = Истина; Прервать; КонецЕсли; @@ -76,7 +62,65 @@ КонецФункции +Функция ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ) Экспорт + + Настройка = Новый Структура("Использовать", Ложь); + + ДымовыеТесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, "ДымовыеТесты"); + Настройка.Использовать = ИспользованиеНастройки(ДымовыеТесты, Ложь); + + Если НЕ Настройка.Использовать Или ТипЗнч(ДымовыеТесты) = Тип("Булево") Тогда + Возврат Настройка; + КонецЕсли; + + НастройкиТеста = ЮТКоллекции.ЗначениеСтруктуры(ДымовыеТесты, Ключ); + + Использовать = ИспользованиеНастройки(НастройкиТеста, Ложь); + Если ТипЗнч(НастройкиТеста) = Тип("Структура") Тогда + НастройкиТеста.Вставить("Использовать", Использовать); + Возврат НастройкиТеста; + КонецЕсли; + + Настройка.Использовать = Использовать; + Возврат Настройка; + +КонецФункции +Функция ИспользованиеНастройки(Настройка, ЗначениеПоУмолчанию) + + Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда + Использовать = ЗначениеПоУмолчанию; + ИначеЕсли Настройка = Истина Тогда + Использовать = Истина; + Иначе + Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию); + КонецЕсли; + + Возврат Использовать; + +КонецФункции + +Функция ПрочитанБазовыеЭлементНастройки(Настройки, Ключ, Значение, Путь) Экспорт + + Если СтрСравнить(Ключ, "Использовать") = 0 Тогда + Настройки.Использовать = Значение; + ИначеЕсли СтрСравнить(Ключ, "Исключения") = 0 Тогда + ПрочитатьИсключения(Настройки, Значение, Путь); + Иначе + Возврат Ложь; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +Процедура ДобавитьНаборИсключений(НаборыИсключений, ЭлементНастройки) Экспорт + + Если ЭлементНастройки <> Неопределено И ЗначениеЗаполнено(ЭлементНастройки.Исключения) Тогда + НаборыИсключений.Добавить(ЭлементНастройки.Исключения); + КонецЕсли; + +КонецПроцедуры #КонецОбласти @@ -92,47 +136,37 @@ #КонецОбласти -#Область ЗагрузкаНастроек - -Функция ЗагрузитьНастройки(ПараметрыЗапуска) Экспорт - - Настройки = НастройкиДымовыхТестов(); - ЗагружаемыеПараметры = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, "ДымовыеТесты"); - - Если Не ЗначениеЗаполнено(ЗагружаемыеПараметры) Тогда - Возврат Настройки; - КонецЕсли; - - ЮТПроверкиСлужебный.ПроверитьТипПараметра(ЗагружаемыеПараметры, "Булево, Структура", "ЗагрузитьНастройкиДымовыхТестов", "ДымовыеТесты"); +Функция ПодходитПодНаборыИсключений(Ключ, НаборыИсключений) Экспорт - ПрочитатьНастройки(Настройки, ЗагружаемыеПараметры, "ДымовыеТесты"); + Для Каждого Набор Из НаборыИсключений Цикл + + Если ПодходитПодИсключения(Ключ, Набор) Тогда + Возврат Истина; + КонецЕсли; + + КонецЦикла; - Возврат Настройки; + Возврат Ложь; КонецФункции -Процедура ПрочитатьНастройки(Настройки, ЗагружаемыеНастройки, Путь) +Функция ПодходитПодИсключения(Ключ, НаборИсключений) Экспорт - Если ТипЗнч(ЗагружаемыеНастройки) = Тип("Булево") Тогда - Настройки.Использовать = ЗагружаемыеНастройки; - Возврат; + Если НЕ ЗначениеЗаполнено(НаборИсключений) Тогда + Возврат Ложь; КонецЕсли; - Для Каждого Элемент Из ЗагружаемыеНастройки Цикл + Для Каждого ОписаниеИсключения Из НаборИсключений Цикл - Если СтрСравнить(Элемент.Ключ, "Использовать") = 0 Тогда - Настройки.Использовать = Элемент.Значение; - ИначеЕсли СтрСравнить(Элемент.Ключ, "Исключения") = 0 Тогда - ПрочитатьИсключения(Настройки, Элемент.Значение, Путь); - ИначеЕсли СтрСравнить(Элемент.Ключ, "Параметры") = 0 Тогда - ПрочитатьПараметры(Настройки, Элемент.Значение, Путь); - Иначе - ПрочитатьВложеннуюНастройку(Настройки, Элемент.Ключ, Элемент.Значение, Путь); + Если ЮТСтроки.СоответсвуетШаблону(Ключ, ОписаниеИсключения) Тогда + Возврат Истина; КонецЕсли; КонецЦикла; -КонецПроцедуры + Возврат Ложь; + +КонецФункции Процедура ПрочитатьИсключения(Настройки, Исключения, Путь) @@ -146,58 +180,4 @@ КонецПроцедуры -Процедура ПрочитатьПараметры(Настройки, Параметры, Путь) -КонецПроцедуры - -Функция ПрочитатьВложеннуюНастройку(Настройки, ИмяНастройки, ЗначениеНастройки, Путь) - - ВложеннаяНастройка = ОписаниеЭлементаНастройки(); - ПрочитатьНастройки(ВложеннаяНастройка, ЗначениеНастройки, Путь + "." + ИмяНастройки); - - Настройки.Подчиненные.Вставить(ИмяНастройки, ВложеннаяНастройка); - Возврат ВложеннаяНастройка; - -КонецФункции - -Функция НастройкиДымовыхТестов() - - Настройки = ОписаниеЭлементаНастройки(); - Настройки.Использовать = Ложь; - - Возврат Настройки; - -КонецФункции - -Функция ОписаниеЭлементаНастройки() - - Описание = Новый Структура; - Описание.Вставить("Исключения", Новый Массив); - Описание.Вставить("Подчиненные", Новый Структура); - Описание.Вставить("Параметры", Неопределено); - Описание.Вставить("Использовать", Истина); - - Возврат Описание; - -КонецФункции - -#КонецОбласти - -Функция ПодходитПодИсключения(Ключ, НаборыИсключений) - - Для Каждого Набор Из НаборыИсключений Цикл - - Для Каждого ОписаниеИсключения Из Набор Цикл - - Если ЮТСтроки.СоответсвуетШаблону(Ключ, ОписаниеИсключения) Тогда - Возврат Истина; - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - - Возврат Ложь; - -КонецФункции - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..006f41ad1 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,29 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция МодулиДымовыхТестов() Экспорт + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..c9c76e70d --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,9 @@ + + + ЮТДымовыеТестыСлужебныйСервер + + ru + Дымовые тесты сервер + + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" index fa173c5cd..9ef45b9a2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213/Module.bsl" @@ -121,4 +121,20 @@ КонецФункции +// Вызывает функцию модуля конфигурации +// И воззвращает результат работы метода +// +// Параметры: +// ИмяМодуля - Строка - Имя модуля +// ИмяМетода - Строка - Имя метода +// Параметры - Массив из Произвольный - Параметры метода +// +// Возвращаемое значение: +// Произвольный - Результат функции +Функция ВызватьФункциюКонфигурации(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт + + Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурации(ИмяМодуля, ИмяМетода, Параметры); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 5af42d291..a9e278438 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -208,11 +208,7 @@ Продолжить; КонецЕсли; - Если ТипЗнч(Параметры[Параметр.Ключ]) = ТипЗнч(Параметр.Значение) Тогда - - Параметры[Параметр.Ключ] = Параметр.Значение; - - КонецЕсли; + Параметры[Параметр.Ключ] = Параметр.Значение; КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index f48dbde80..9d80f99e8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -46,6 +46,12 @@ КонецФункции +Функция ИменаМодулейДымовыхТестов(Серверные = Истина, Клиентские = Истина) Экспорт + + Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ПодключаемыеМодулиПодсистемы("ДымовыеТесты", Серверные, Клиентские); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 1dc418e90..584e97334 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -80,13 +80,14 @@ // Параметры: // ИмяТестовогоМетода - Строка - Имя тестового метода // ПредставлениеТеста - Строка - Представление теста -// ТегиСтрокой - Строка - Теги строкой. Это строка разделенная запятыми +// Теги - Строка - Строка тегов разделенных запятыми +// - Массив из Строка - Набор тегов // // Возвращаемое значение: // ОбщийМодуль - Этот же модуль -Функция ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "") Экспорт +Функция ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", Теги = "") Экспорт - ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, ЮТТестыСлужебный.КонтекстыВызоваКлиента()); + ЮТТестыСлужебный.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, Теги, ЮТТестыСлужебный.КонтекстыВызоваКлиента()); Возврат ЮТТесты; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 3aea22cbf..fdd1e6317 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -38,7 +38,7 @@ КонецПроцедуры -Процедура ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты) Экспорт +Процедура ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, Теги, Контексты) Экспорт Если ПустаяСтрока(ИмяТестовогоМетода) Тогда ВызватьИсключение "Имя тестового метода не может быть пустым"; @@ -51,7 +51,7 @@ ВызватьИсключение "Не установлен тестовый набор. Скорее всего проблема в движке"; КонецЕсли; - Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); + Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, Теги, Контексты); ДобавитьТестВНабор(Контекст, Тест, Ложь); КонецПроцедуры @@ -226,11 +226,11 @@ КонецФункции -Функция ОписаниеТеста(Имя, Знач Представление, ТегиСтрокой, Знач Контексты) +Функция ОписаниеТеста(Имя, Знач Представление, Теги, Знач Контексты) Контексты = НормализованныеКонтексты(Контексты); - Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, ТегиСтрокой); + Возврат ЮТФабрикаСлужебный.ОписаниеТеста(Имя, Представление, Контексты, Теги); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 5f7017bb1..3283e9819 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -164,6 +164,7 @@ Параметры.Вставить("logging", ПараметрыЛогирования()); Параметры.Вставить("exitCode", ""); Параметры.Вставить("projectPath", ""); + Параметры.Вставить("ДымовыеТесты", Ложь); Параметры.Вставить("ПодключатьВнешниеКомпоненты", Истина); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 1da376302..9c16af450 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -140,7 +140,8 @@ // Имя - Строка - Имя тестового метода // Представление - Строка - Представление, краткое описание теста // КонтекстыВызова - Массив из Строка - Контексты исполнения теста, см. ЮТФабрика.КонтекстыВызова -// ТегиСтрокой - Строка - Теги теста +// Теги - Строка - Строка тегов разделенных запятыми +// - Массив из Строка - Набор тегов // // Возвращаемое значение: // Структура - Описание теста: @@ -153,11 +154,7 @@ // * НомерВНаборе - Число - Порядковый номер теста в наборе // * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов -Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт - - Если ТегиСтрокой = Неопределено Тогда - ТегиСтрокой = ""; - КонецЕсли; +Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач Теги = "") Экспорт Описание = БазовоеОписаниеРегистрируемогоОбъекта(); Описание.Вставить("Имя", Строка(Имя)); @@ -166,8 +163,10 @@ Описание.Вставить("Параметры", Неопределено); Описание.Вставить("НомерВНаборе", 0); - Если ЗначениеЗаполнено(ТегиСтрокой) Тогда - Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ","); + Если ТипЗнч(Теги) = Тип("Строка") Тогда + Описание.Теги = ЮТСтроки.РазделитьСтроку(Теги, ","); + ИначеЕсли ЗначениеЗаполнено(Теги) Тогда + Описание.Теги = Теги; КонецЕсли; Возврат Описание; diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 356858307..325e72ff6 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -65,9 +65,9 @@ CommonModule.МокитоСлужебный CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент CommonModule.ЮТДымовыеТесты - CommonModule.ЮТДымовыеТесты_ОткрытиеФорм CommonModule.ЮТДымовыеТестыСлужебныйВызовСервера CommonModule.ЮТДымовыеТестыСлужебныйКлиентСервер + CommonModule.ЮТДымовыеТестыСлужебныйСервер CommonModule.ЮТест CommonModule.ЮТЗависимости CommonModule.ЮТЗависимостиСлужебный diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..8ff3e5ebb --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,14 @@ + + + ПоддержкаДымовыхТестов + + ru + Поддержка дымовых тестов + + true + CommonModule.ЮТДымовыеТесты + CommonModule.ЮТДымовыеТестыСлужебныйВызовСервера + CommonModule.ЮТДымовыеТестыСлужебныйКлиентСервер + CommonModule.ЮТДымовыеТестыСлужебныйСервер + Subsystem.ЮТДвижок + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272.mdo" index 49572ea41..b3fcd5800 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272.mdo" @@ -10,6 +10,7 @@ ru Внутренняя реализация инструмента + ПоддержкаДымовыхТестов ЮТИсполнитель ЮТКонтекст ЮТМокирование diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" index a6a21a3fb..7eb63400d 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213.mdo" @@ -6,7 +6,5 @@ Дымовые тесты true - true - CommonModule.ЮТДымовыеТесты_ОткрытиеФорм Subsystem.ЮТПодключаемыеМодули diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" new file mode 100644 index 000000000..2ec9c740f --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -0,0 +1,52 @@ +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("Инициализация") + ; + +КонецПроцедуры + +Процедура Инициализация() Экспорт + + ОткрытиеФорм = Новый Структура("Использовать", Истина); + + ПараметрыЗапуска = Новый Структура("ДымовыеТесты", Новый Структура("ОткрытиеФорм", ОткрытиеФорм)); + ПараметрыЗапуска.ДымовыеТесты.Вставить("Использовать", Истина); + + ОткрытиеФорм.Вставить("Справочник", Истина); + ОткрытиеФорм.Вставить("Исключения", "Номенклатура"); + ЮТест.ОжидаетЧто(ЗагруженнаяНастройка(ПараметрыЗапуска)) + .Свойство("Использовать").ЭтоИстина() + .Свойство("Справочник.Использовать").ЭтоИстина() + .Свойство("Исключения[0]").Равно("Номенклатура"); + + ОткрытиеФорм.Вставить("Исключения", ЮТКоллекции.ЗначениеВМассиве("Номенклатура", "Скидки")); + НастройкиСправочников = Новый Структура; + ОткрытиеФорм.Удалить("Справочник"); + ОткрытиеФорм.Вставить("Справочники", НастройкиСправочников); + НастройкиСправочников.Вставить("Исключения", "Удалить*"); + НастройкиСправочников.Вставить("Новый", Ложь); + ЮТест.ОжидаетЧто(ЗагруженнаяНастройка(ПараметрыЗапуска)) + .Свойство("Исключения[0]").Равно("Номенклатура") + .Свойство("Исключения[1]").Равно("Скидки") + .Свойство("Справочник.Исключения[0]").Равно("Удалить*") + .Свойство("Справочник.Использовать").ЭтоИстина() + .Свойство("Справочник.Новый.Использовать").ЭтоЛожь() + ; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ЗагруженнаяНастройка(ПараметрыЗапуска) + + ДТОткрытиеФорм.Инициализация(ПараметрыЗапуска); + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("ДымовыеТесты_ОткрытиеФорм") + +КонецФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" new file mode 100644 index 000000000..f05c80786 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" @@ -0,0 +1,6 @@ + + + ОМ_ДТОткрытиеФорм + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..152734979 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,43 @@ +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("Формы") + ; + +КонецПроцедуры + +Процедура Формы() Экспорт + + Отборы = Новый Структура("Использовать, Исключения", Истина, Новый Массив); + Коллекции = ЮТКоллекции.ЗначениеВМассиве("Справочники", "Документы"); + ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы(Коллекции, Отборы); + + ЮТест.ОжидаетЧто(ВладельцыФорм) + .ИмеетТип("Массив") + .Заполнено() + .Содержит(ЮТест.Предикат().Реквизит("Тип").Равно("Справочник")) + .Содержит(ЮТест.Предикат().Реквизит("Тип").Равно("Документ")) + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("ВходящиеПисьма")) + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОперацияПоУчетуТоваров")); + + Отборы.Исключения.Добавить("*Письма"); + Отборы.Вставить("Документы", Новый Структура("Использовать", Ложь)); + ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы(Коллекции, Отборы); + + ЮТест.ОжидаетЧто(ВладельцыФорм) + .ИмеетТип("Массив") + .Заполнено() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ВходящиеПисьма")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ИсходящиеПисьма")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОперацияПоУчетуТоваров")) + .НеСодержит(ЮТест.Предикат().Реквизит("Тип").Равно("Документ")); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..dd5b0aa14 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТДымовыеТестыСлужебныйВызовСервера + true + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 71f2775c3..69ba61353 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -3,69 +3,8 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты - .ДобавитьТест("Инициализация") - .ДобавитьКлиентскийТест("ЗагрузитьНастройки") .ДобавитьТест("ИсключитьТест") - ; - -КонецПроцедуры - -Процедура Инициализация() Экспорт - - - -КонецПроцедуры - -Процедура ЗагрузитьНастройки() Экспорт - - ДымовыеТесты = Новый Структура; - - ПараметрыЗапуска = Новый Структура; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.Вставить("ДымовыеТесты", Неопределено); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.Вставить("ДымовыеТесты", Ложь); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.Вставить("ДымовыеТесты", Истина); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоИстина(); - - ПараметрыЗапуска.Вставить("ДымовыеТесты", ДымовыеТесты); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоЛожь(); - - ДымовыеТесты.Вставить("Использовать", Истина); - ПараметрыЗапуска.Вставить("ДымовыеТесты", ДымовыеТесты); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоИстина(); - - ДымовыеТесты.Вставить("Справочник", Истина); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Подчиненные.Справочник.Использовать").ЭтоИстина(); - - ДымовыеТесты.Вставить("Исключения", "Номенклатура"); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Исключения[0]").Равно("Номенклатура"); - - ДымовыеТесты.Вставить("Исключения", ЮТКоллекции.ЗначениеВМассиве("Номенклатура")); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Исключения[0]").Равно("Номенклатура"); - - НастройкиСправочников = Новый Структура; - ДымовыеТесты.Вставить("Справочник", НастройкиСправочников); - НастройкиСправочников.Вставить("Исключения", "Удалить*"); - НастройкиСправочников.Вставить("Номенклатура", Новый Структура("ФормаСписка, Исключения", Ложь, "Скопированный")); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагрузитьНастройки(ПараметрыЗапуска)) - .Свойство("Подчиненные.Справочник.Исключения[0]").Равно("Удалить*") - .Свойство("Подчиненные.Справочник.Подчиненные.Номенклатура.Использовать").ЭтоИстина() - .Свойство("Подчиненные.Справочник.Подчиненные.Номенклатура.Подчиненные.ФормаСписка.Использовать").ЭтоЛожь() - .Свойство("Подчиненные.Справочник.Подчиненные.Номенклатура.Исключения[0]").Равно("Скопированный") + .ДобавитьТест("ЗагружаемаяНастройкаДымовогоТеста") ; КонецПроцедуры @@ -110,6 +49,61 @@ .ЭтоЛожь(); КонецПроцедуры +Процедура ЗагружаемаяНастройкаДымовогоТеста() Экспорт + + ПараметрыЗапуска = Новый Структура; + Ключ = "ОткрытиеФорм"; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.Вставить("ДымовыеТесты"); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.ДымовыеТесты = Ложь; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.ДымовыеТесты = Истина; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоИстина(); + + ПараметрыЗапуска.ДымовыеТесты = Новый Структура(Ключ); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.ДымовыеТесты.Вставить("Использовать", Истина); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.ДымовыеТесты[Ключ] = Ложь; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.ДымовыеТесты[Ключ] = Истина; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоИстина(); + + ПараметрыЗапуска.ДымовыеТесты[Ключ] = Новый Структура; + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + + ПараметрыЗапуска.ДымовыеТесты[Ключ] = Новый Структура("Использовать", Ложь); + ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) + .ИмеетТип("Структура") + .Свойство("Использовать").ЭтоЛожь(); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 756fb3ee8..93162df56 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -31,11 +31,13 @@ CommonModule.Обр_ЮТHTTPСервисЗапрос CommonModule.Обр_ЮТRecordSet_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО + CommonModule.ОМ_ДТОткрытиеФорм CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение CommonModule.ОМ_МокитоСлужебный CommonModule.ОМ_Общий CommonModule.ОМ_ОшибкаЗагрузкиСценариев + CommonModule.ОМ_ЮТДымовыеТестыСлужебныйВызовСервера CommonModule.ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер CommonModule.ОМ_ЮТест CommonModule.ОМ_ЮТестПереопределяемый From 4bef35b061c02ffab5862db41f847bdcd5b104b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=8F=D0=BA=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 5 Aug 2024 16:33:58 +0300 Subject: [PATCH 49/86] =?UTF-8?q?fix(smoke):=20=D0=98=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D0=B0?= =?UTF-8?q?=D0=BC=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 20 ++- .../Module.bsl" | 20 +++ .../Module.bsl" | 167 +---------------- .../Module.bsl" | 169 +++++++++++++++++- ...0\265\321\200\320\262\320\265\321\200.mdo" | 1 + .../Module.bsl" | 55 +++++- .../Module.bsl" | 31 +--- ...0\265\320\261\320\275\321\213\320\271.mdo" | 1 + .../Module.bsl" | 12 +- .../Module.bsl" | 5 + .../src/Configuration/CommandInterface.cmi | 2 - .../MainSectionCommandInterface.cmi | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - .../CommandInterface.cmi" | 2 - 29 files changed, 270 insertions(+), 249 deletions(-) delete mode 100644 exts/yaxunit/src/Configuration/CommandInterface.cmi delete mode 100644 exts/yaxunit/src/Configuration/MainSectionCommandInterface.cmi delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" delete mode 100644 "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/CommandInterface.cmi" diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" index 51c59c6f0..d6ea63434 100644 --- "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -20,16 +20,18 @@ Процедура ИсполняемыеСценарии() Экспорт - Настройки = Настройки(); - - Если НЕ Настройки.Использовать Тогда - Возврат; - КонецЕсли; +// Настройки = Настройки(); +// +// Если НЕ Настройки.Использовать Тогда +// Возврат; +// КонецЕсли; + Настройки = НастройкиПоУмолчанию(); + Настройки.Использовать = Истина; ЮТТесты.ВТранзакции().УдалениеТестовыхДанных(); КоллекцииМетаданных = СтрРазделить("Справочник, Документ", ", ", Ложь); - ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы(КоллекцииМетаданных, ОтборМетаданных(Настройки)); + ВладельцыФорм = ЮТДымовыеТесты.Формы(КоллекцииМетаданных, ОтборМетаданных(Настройки)); ТекущийТипОбъекта = Неопределено; @@ -176,7 +178,7 @@ Процедура ОткрытьФормаОбъекта_Существующий(ОбъектМетаданных) Экспорт - Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); Если НЕ ЗначениеЗаполнено(Ключ) Тогда ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); @@ -188,7 +190,7 @@ Процедура ОткрытьФормаОбъекта_Скопированный(ОбъектМетаданных) Экспорт - Ключ = ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); Если НЕ ЗначениеЗаполнено(Ключ) Тогда ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); @@ -273,7 +275,7 @@ Функция ЭтоУправляемаяФорма(Форма) - Возврат ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения"); + Возврат ТипЗнч(Форма) = Тип("УправляемаяФорма"); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 1b77590d1..5fb616305 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -44,6 +44,26 @@ КонецФункции +Функция Формы(Знач КоллекцииМетаданных, Знач ОтборМетаданных) Экспорт + +#Если Сервер Тогда + Возврат ЮТДымовыеТестыСлужебныйСервер.Формы(КоллекцииМетаданных, ОтборМетаданных); +#Иначе + Возврат ЮТДымовыеТестыСлужебныйВызовСервера.Формы(КоллекцииМетаданных, ОтборМетаданных); +#КонецЕсли + +КонецФункции + +Функция СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры = Неопределено) Экспорт + +#Если Сервер Тогда + Возврат ЮТДымовыеТестыСлужебныйСервер.СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры); +#Иначе + Возврат ЮТДымовыеТестыСлужебныйВызовСервера.СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры); +#КонецЕсли + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 91e93a966..e541fb6e0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -20,176 +20,13 @@ Функция Формы(Знач КоллекцииМетаданных, Знач ОтборМетаданных) Экспорт - ВладельцыФорм = Новый Массив; - - Для Каждого ИмяКоллекции Из КоллекцииМетаданных Цикл - - Если ЮТДымовыеТесты.ИсключитьТест(ИмяКоллекции, ОтборМетаданных) Тогда - Продолжить; - КонецЕсли; - - Тип = ЮТМетаданные.ТипыМетаданных()[ИмяКоллекции]; - Коллекция = Метаданные[Тип.ИмяКоллекции]; - - НаборыИсключений = Новый Массив; - ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ОтборМетаданных); - ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ЮТКоллекции.ЗначениеСтруктуры(ОтборМетаданных, ИмяКоллекции)); - - Для Каждого ОбъектМетаданных Из Коллекция Цикл - - Если ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодНаборыИсключений(ОбъектМетаданных.Имя, НаборыИсключений) Тогда - Продолжить; - КонецЕсли; - - ВладелецФорм = ВладелецФормы(Тип.Имя, ОбъектМетаданных.Имя); - - Для Каждого Форма Из ОбъектМетаданных.Формы Цикл - - ОписаниеФормы = НовоеОписаниеФормы(ОбъектМетаданных, Форма); - ВладелецФорм.Формы.Добавить(ОписаниеФормы); - - КонецЦикла; - - Если ЗначениеЗаполнено(ВладелецФорм.Формы) Тогда - ВладельцыФорм.Добавить(ВладелецФорм); - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - - Возврат ВладельцыФорм; + Возврат ЮТДымовыеТестыСлужебныйСервер.Формы(КоллекцииМетаданных, ОтборМетаданных); КонецФункции Функция СлучайныйЭлемент(Знач ТипОбъекта, Знач ИмяОбъекта, Знач Параметры = Неопределено) Экспорт - ПолноеИмя = СтрШаблон("%1.%2", ТипОбъекта, ИмяОбъекта); - ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ПолноеИмя); - РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных); - - Запрос = Новый Запрос; - - ВыбираемыеПоля = Новый Массив; - Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл - - Если Реквизит.Значение.ЭтоКлюч Тогда - ВыбираемыеПоля.Добавить(Реквизит.Ключ); - КонецЕсли; - - КонецЦикла; - - Реквизиты = СтрСоединить(ВыбираемыеПоля, ", "); - - НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100); - Запрос.Текст = СтрШаблон( - "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 - | * - |ИЗ - | (ВЫБРАТЬ ПЕРВЫЕ %1 - | %2 - | ИЗ - | %3 КАК Выборка - | - | УПОРЯДОЧИТЬ ПО - | %4 УБЫВ) КАК ВЫБОРКА - | - |УПОРЯДОЧИТЬ ПО - | %4", НомерЭлемента, Реквизиты, ПолноеИмя, РеквизитУпорядочивания); - - ЗначенияРеквизитов = ЮТЗапросыСлужебныйВызовСервера.ЗначенияИзЗапроса(Запрос, Реквизиты); - - Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда - Возврат ЗначенияРеквизитов.Ссылка; - Иначе - Возврат ЗначенияРеквизитов; - КонецЕсли; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция НовоеОписаниеФормы(ОбъектМетаданных, Форма) - - Описание = ОписаниеФормы(); - Описание.Имя = Форма.Имя; - - Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Обычная; - Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая; - - ФормаОбъекта = "ФормаОбъекта"; - ФормаГруппы = "ФормаГруппы"; - ФормаДляВыбора = "ФормаДляВыбора"; - ФормаДляВыбораГруппы = "ФормаДляВыбораГруппы"; - ФормаСписка = "ФормаСписка"; - - Если ФормаИмеетТип(ФормаОбъекта, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаОбъекта = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаГруппы, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаОбъекта = Истина; - Описание.ЭтоФормаГруппы = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаДляВыбора, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаВыбора = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаДляВыбораГруппы, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаВыбора = Истина; - Описание.ЭтоФормаГруппы = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаСписка, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаСписка = Истина; - КонецЕсли; - - Возврат Описание; - -КонецФункции - -Функция ФормаИмеетТип(ИмяФормы, ОбъектМетаданных, Форма) - - Возврат ЮТОбщий.ПеременнаяСодержитСвойство(ОбъектМетаданных, "Основная" + ИмяФормы) - И (Форма = ОбъектМетаданных["Основная" + ИмяФормы] Или Форма = ОбъектМетаданных["Дополнительная" + ИмяФормы]); - -КонецФункции - -Функция ОписаниеФормы() - - Описание = Новый Структура; - Описание.Вставить("Имя", ""); - Описание.Вставить("ЭтоФормаСписка", Ложь); - Описание.Вставить("ЭтоФормаОбъекта", Ложь); - Описание.Вставить("ЭтоФормаГруппы", Ложь); - Описание.Вставить("ЭтоФормаВыбора", Ложь); - Описание.Вставить("ЭтоОбычнаяФорма", Ложь); - Описание.Вставить("ЭтоУправляемаяФорма", Ложь); - - Возврат Описание; - -КонецФункции - -Функция ВладелецФормы(Тип, Имя) - - Описание = Новый Структура; - Описание.Вставить("Тип", Тип); - Описание.Вставить("Имя", Имя); - Описание.Вставить("Формы", Новый Массив); - Возврат Описание; - -КонецФункции - -Функция РеквизитУпорядочивания(ОписаниеОбъектаМетаданных) - - Если ЮТМетаданные.ЭтоДокумент(ОписаниеОбъектаМетаданных) Тогда - Возврат "Дата"; - ИначеЕсли ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда - Возврат "Ссылка"; - КонецЕсли; + Возврат ЮТДымовыеТестыСлужебныйСервер.СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 006f41ad1..eb1534059 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,7 +18,92 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция МодулиДымовыхТестов() Экспорт +Функция Формы(КоллекцииМетаданных, ОтборМетаданных) Экспорт + + ВладельцыФорм = Новый Массив; + + Для Каждого ИмяКоллекции Из КоллекцииМетаданных Цикл + + Если ЮТДымовыеТесты.ИсключитьТест(ИмяКоллекции, ОтборМетаданных) Тогда + Продолжить; + КонецЕсли; + + Тип = ЮТМетаданные.ТипыМетаданных()[ИмяКоллекции]; + Коллекция = Метаданные[Тип.ИмяКоллекции]; + + НаборыИсключений = Новый Массив; + ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ОтборМетаданных); + ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ЮТКоллекции.ЗначениеСтруктуры(ОтборМетаданных, ИмяКоллекции)); + + Для Каждого ОбъектМетаданных Из Коллекция Цикл + + Если ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодНаборыИсключений(ОбъектМетаданных.Имя, НаборыИсключений) Тогда + Продолжить; + КонецЕсли; + + ВладелецФорм = ВладелецФормы(Тип.Имя, ОбъектМетаданных.Имя); + + Для Каждого Форма Из ОбъектМетаданных.Формы Цикл + + ОписаниеФормы = НовоеОписаниеФормы(ОбъектМетаданных, Форма); + ВладелецФорм.Формы.Добавить(ОписаниеФормы); + + КонецЦикла; + + Если ЗначениеЗаполнено(ВладелецФорм.Формы) Тогда + ВладельцыФорм.Добавить(ВладелецФорм); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат ВладельцыФорм; + +КонецФункции + +Функция СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры = Неопределено) Экспорт + + ПолноеИмя = СтрШаблон("%1.%2", ТипОбъекта, ИмяОбъекта); + ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ПолноеИмя); + РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных); + + Запрос = Новый Запрос; + + ВыбираемыеПоля = Новый Массив; + Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл + + Если Реквизит.Значение.ЭтоКлюч Тогда + ВыбираемыеПоля.Добавить(Реквизит.Ключ); + КонецЕсли; + + КонецЦикла; + + Реквизиты = СтрСоединить(ВыбираемыеПоля, ", "); + + НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100); + Запрос.Текст = СтрШаблон( + "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 + | * + |ИЗ + | (ВЫБРАТЬ ПЕРВЫЕ %1 + | %2 + | ИЗ + | %3 КАК Выборка + | + | УПОРЯДОЧИТЬ ПО + | %4 УБЫВ) КАК ВЫБОРКА + | + |УПОРЯДОЧИТЬ ПО + | %4", НомерЭлемента, Реквизиты, ПолноеИмя, РеквизитУпорядочивания); + + ЗначенияРеквизитов = ЮТЗапросыСлужебныйВызовСервера.ЗначенияИзЗапроса(Запрос, Реквизиты); + + Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда + Возврат ЗначенияРеквизитов.Ссылка; + Иначе + Возврат ЗначенияРеквизитов; + КонецЕсли; КонецФункции @@ -26,4 +111,86 @@ #Область СлужебныеПроцедурыИФункции +Функция ВладелецФормы(Тип, Имя) + + Описание = Новый Структура; + Описание.Вставить("Тип", Тип); + Описание.Вставить("Имя", Имя); + Описание.Вставить("Формы", Новый Массив); + Возврат Описание; + +КонецФункции + +Функция НовоеОписаниеФормы(ОбъектМетаданных, Форма) + + Описание = ОписаниеФормы(); + Описание.Имя = Форма.Имя; + + Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Обычная; + Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая; + + ФормаОбъекта = "ФормаОбъекта"; + ФормаГруппы = "ФормаГруппы"; + ФормаДляВыбора = "ФормаДляВыбора"; + ФормаДляВыбораГруппы = "ФормаДляВыбораГруппы"; + ФормаСписка = "ФормаСписка"; + + Если ФормаИмеетТип(ФормаОбъекта, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаОбъекта = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаГруппы, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаОбъекта = Истина; + Описание.ЭтоФормаГруппы = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаДляВыбора, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаВыбора = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаДляВыбораГруппы, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаВыбора = Истина; + Описание.ЭтоФормаГруппы = Истина; + КонецЕсли; + + Если ФормаИмеетТип(ФормаСписка, ОбъектМетаданных, Форма) Тогда + Описание.ЭтоФормаСписка = Истина; + КонецЕсли; + + Возврат Описание; + +КонецФункции + +Функция ФормаИмеетТип(ИмяФормы, ОбъектМетаданных, Форма) + + Возврат ЮТОбщий.ПеременнаяСодержитСвойство(ОбъектМетаданных, "Основная" + ИмяФормы) + И (Форма = ОбъектМетаданных["Основная" + ИмяФормы] Или Форма = ОбъектМетаданных["Дополнительная" + ИмяФормы]); + +КонецФункции + +Функция ОписаниеФормы() + + Описание = Новый Структура; + Описание.Вставить("Имя", ""); + Описание.Вставить("ЭтоФормаСписка", Ложь); + Описание.Вставить("ЭтоФормаОбъекта", Ложь); + Описание.Вставить("ЭтоФормаГруппы", Ложь); + Описание.Вставить("ЭтоФормаВыбора", Ложь); + Описание.Вставить("ЭтоОбычнаяФорма", Ложь); + Описание.Вставить("ЭтоУправляемаяФорма", Ложь); + + Возврат Описание; + +КонецФункции + +Функция РеквизитУпорядочивания(ОписаниеОбъектаМетаданных) + + Если ЮТМетаданные.ЭтоДокумент(ОписаниеОбъектаМетаданных) Тогда + Возврат "Дата"; + ИначеЕсли ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда + Возврат "Ссылка"; + КонецЕсли; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index c9c76e70d..db2d9dd14 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -6,4 +6,5 @@ Дымовые тесты сервер true + true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 90a621526..ee40d7cbd 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -44,6 +44,44 @@ КонецФункции +Функция ИменаМодулейДвижка() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Подсистема = Метаданные.Подсистемы.ЮТДвижок; + + Модули = Новый Массив; + ЗаполнитьМодулиПодсистемыИПодчиненных(Подсистема, Модули); + + Возврат Модули; + +КонецФункции + +Функция МодулиПодсистемы(Знач Подсистема, Знач Серверные, Знач Клиентские) Экспорт + + Модули = Новый Массив(); + + Для Каждого Объект Из Подсистема.Состав Цикл + + Если Метаданные.ОбщиеМодули.Содержит(Объект) Тогда + + Добавить = (Серверные И Клиентские) + ИЛИ (Серверные И (Объект.Сервер)) + ИЛИ (Клиентские И (Объект.КлиентУправляемоеПриложение Или Объект.ВызовСервера)); + // КлиентОбычноеПриложение сознательно не анализируется, он должен идти в паре с другой настройкой + + Если Добавить Тогда + Модули.Добавить(Объект.Имя); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат Модули; + +КонецФункции + Функция МетаданныеМодуля(Знач Модуль) Экспорт Если ТипЗнч(Модуль) = Тип("Строка") Тогда @@ -83,9 +121,9 @@ КонецЕсли; Для Каждого НаборРеквизитов Из ОписаниеТипа.НаборыРеквизитов Цикл - Если СтрСравнить(НаборРеквизитов, "СтандартныеРеквизиты") Тогда + Если СтрСравнить(НаборРеквизитов, "СтандартныеРеквизиты") = 0 Тогда Ключ = "Ссылка, Период"; - ИначеЕсли СтрСравнить(НаборРеквизитов, "Измерения") Тогда + ИначеЕсли СтрСравнить(НаборРеквизитов, "Измерения") = 0 Тогда Ключ = Истина; Иначе Ключ = Ложь; @@ -371,4 +409,17 @@ КонецФункции +Процедура ЗаполнитьМодулиПодсистемыИПодчиненных(Подсистема, Модули) + + МодулиПодсистемы = МодулиПодсистемы(Подсистема, Истина, Истина); + ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы); + + Для Каждого ВложеннаяПодсистема Из Подсистема.Подсистемы Цикл + + ЗаполнитьМодулиПодсистемыИПодчиненных(ВложеннаяПодсистема, Модули); + + КонецЦикла; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 6ca927c97..a4672d67e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -24,12 +24,12 @@ Для Каждого ПодсистемаОбработчикиСобытий Из ПодсистемыПодключаемыхМодулей("ОбработчикиСобытий") Цикл - ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(ПодсистемаОбработчикиСобытий, Серверные, Клиентские)); + ЮТКоллекции.ДополнитьМассив(Модули, ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ПодсистемаОбработчикиСобытий, Серверные, Клиентские)); ПодсистемаГруппыОбработчиков = ПодсистемаОбработчикиСобытий.Подсистемы.Найти(ГруппаОбработчиков); Если ПодсистемаГруппыОбработчиков <> Неопределено Тогда - ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(ПодсистемаГруппыОбработчиков, Серверные, Клиентские)); + ЮТКоллекции.ДополнитьМассив(Модули, ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ПодсистемаГруппыОбработчиков, Серверные, Клиентские)); КонецЕсли; КонецЦикла; @@ -47,7 +47,7 @@ Для Каждого Подсистема Из ПодсистемыПодключаемыхМодулей(ИмяПодсистемы) Цикл - ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(Подсистема, Серверные, Клиентские)); + ЮТКоллекции.ДополнитьМассив(Модули, ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(Подсистема, Серверные, Клиентские)); КонецЦикла; @@ -81,31 +81,6 @@ КонецФункции -Функция МодулиПодсистемы(Знач Подсистема, Знач Серверные, Знач Клиентские) - - Модули = Новый Массив(); - - Для Каждого Объект Из Подсистема.Состав Цикл - - Если Метаданные.ОбщиеМодули.Содержит(Объект) Тогда - - Добавить = (Серверные И Клиентские) - ИЛИ (Серверные И (Объект.Сервер)) - ИЛИ (Клиентские И (Объект.КлиентУправляемоеПриложение Или Объект.ВызовСервера)); - // КлиентОбычноеПриложение сознательно не анализируется, он должен идти в паре с другой настройкой - - Если Добавить Тогда - Модули.Добавить(Объект.Имя); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат Модули; - -КонецФункции - Процедура ПриоритизироватьОбработчикиСобытий(ГруппаОбработчиков, Модули) Если ГруппаОбработчиков = "ИсполнениеТестов" Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index a759b0a53..512b916c0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -6,4 +6,5 @@ Преобразования true + true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index e3717a9cb..0a7ee987c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -158,7 +158,7 @@ СтруктураОшибки = КонтекстОшибки(); СтруктураОшибки.ОшибкаУтверждения = Ложь; - СообщениеОбОшибке = СообщениеОбОшибке(Сообщение, ПрефиксОшибкиПропуска()); + СообщениеОбОшибке = ТекстСообщенияОбОшибке(Сообщение, ПрефиксОшибкиПропуска()); ВызватьИсключение СообщениеОбОшибке; КонецПроцедуры @@ -182,14 +182,14 @@ // ОписаниеПроверки - см. ЮТФабрикаСлужебный.ОписаниеПроверки Процедура ВызватьОшибкуПроверки(Знач ТекстСообщения, ОписаниеПроверки = Неопределено) Экспорт - СообщениеОбОшибке = СообщениеОбОшибке(ТекстСообщения, ПрефиксОшибкиУтверждений(), ОписаниеПроверки); + СообщениеОбОшибке = ТекстСообщенияОбОшибке(ТекстСообщения, ПрефиксОшибкиУтверждений(), ОписаниеПроверки); ВызватьИсключение СообщениеОбОшибке; КонецПроцедуры Процедура ЗарегистрироватьОшибкуИнициализацииДвижка(Ошибка, Описание) Экспорт - СообщитьОбОшибке(Ошибка, Описание); + СообщитьПользователюОбОшибке(Ошибка, Описание); КонецПроцедуры @@ -579,7 +579,7 @@ КонецФункции -Процедура СообщитьОбОшибке(Ошибка, Описание) +Процедура СообщитьПользователюОбОшибке(Ошибка, Описание) ЮТОбщий.СообщитьПользователю(ПредставлениеОшибки(Описание, Ошибка)); @@ -666,12 +666,12 @@ Процедура ВызватьОшибкуИсполнения(Знач ИнформацияОбОшибке, ОписаниеПроверки) ТекстОшибки = ИнформациюОбОшибкеВСтроку(ИнформацияОбОшибке); - СообщениеОбОшибке = СообщениеОбОшибке(ТекстОшибки, ПрефиксОшибкиВыполнения(), ОписаниеПроверки); + СообщениеОбОшибке = ТекстСообщенияОбОшибке(ТекстОшибки, ПрефиксОшибкиВыполнения(), ОписаниеПроверки); ВызватьИсключение СообщениеОбОшибке; КонецПроцедуры -Функция СообщениеОбОшибке(ТекстОшибки, ПрефиксТипаОшибки, ОписаниеПроверки = Неопределено) +Функция ТекстСообщенияОбОшибке(ТекстОшибки, ПрефиксТипаОшибки, ОписаниеПроверки = Неопределено) СообщениеОбОшибке = ДобавитьОписания(ТекстОшибки, ОписаниеПроверки); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2daf48423..255558290 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -166,9 +166,14 @@ //@skip-check unknown-method-property МодулиРасширения = ЮТМетаданныеСлужебныйВызовСервера.МодулиРасширений(); + МодулиДвижка = ЮТМетаданныеСлужебныйВызовСервера.ИменаМодулейДвижка(); Для Каждого ОписаниеМодуля Из МодулиРасширения Цикл + Если МодулиДвижка.Найти(ОписаниеМодуля.Имя) <> Неопределено Тогда + Продолжить; + КонецЕсли; + ЮТЛогирование.Отладка("Анализ модуля: " + ОписаниеМодуля.Имя); Если НЕ ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) Тогда diff --git a/exts/yaxunit/src/Configuration/CommandInterface.cmi b/exts/yaxunit/src/Configuration/CommandInterface.cmi deleted file mode 100644 index 0cf6de8a4..000000000 --- a/exts/yaxunit/src/Configuration/CommandInterface.cmi +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/exts/yaxunit/src/Configuration/MainSectionCommandInterface.cmi b/exts/yaxunit/src/Configuration/MainSectionCommandInterface.cmi deleted file mode 100644 index 0cf6de8a4..000000000 --- a/exts/yaxunit/src/Configuration/MainSectionCommandInterface.cmi +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\237\320\276\320\264\320\264\320\265\321\200\320\266\320\272\320\260\320\224\321\213\320\274\320\276\320\262\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Subsystems/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/CommandInterface.cmi" deleted file mode 100644 index 0cf6de8a4..000000000 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/CommandInterface.cmi" +++ /dev/null @@ -1,2 +0,0 @@ - - From 469ce488296a250b2e4a242e6c352ebe220ca57a Mon Sep 17 00:00:00 2001 From: Aleksey Ko Date: Mon, 5 Aug 2024 19:50:36 +0300 Subject: [PATCH 50/86] =?UTF-8?q?fix(smoke):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B3=D1=80=D1=83=D0=BF?= =?UTF-8?q?=D0=BF=20=D0=B8=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 50 +++++++++---------- .../Module.bsl" | 4 -- .../Module.bsl" | 36 +++++++++++-- 3 files changed, 58 insertions(+), 32 deletions(-) diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" index d6ea63434..cacdb7b30 100644 --- "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -160,67 +160,67 @@ Возврат; КонецЕсли; - ИмяМетода = СтрШаблон("Открыть%1_%2", ОписаниеФормы.ТипФормы, ТипТеста); - ПредставлениеТеста = СтрШаблон("Открытие формы %1: %2.%3", Представление, Владелец.Тип, Владелец.Имя); + ИмяМетода = СтрШаблон("ОткрытьФорму_%1", ТипТеста); + ПредставлениеТеста = СтрШаблон("%1.%2. Форма %3", Владелец.Тип, Владелец.Имя, Представление); ЮТТесты.ДобавитьКлиентскийТест(ИмяМетода, ПредставлениеТеста, ЮТКоллекции.ЗначениеВМассиве(ОписаниеФормы.ТипФормы, ТипТеста)) - .СПараметрами(Владелец); + .СПараметрами(ОписаниеФормы); КонецПроцедуры #Область Тесты -Процедура ОткрытьФормаОбъекта_Новый(ОбъектМетаданных) Экспорт +Процедура ОткрытьФорму_Новый(ОписаниеФормы) Экспорт - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта"); + ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); КонецПроцедуры -Процедура ОткрытьФормаОбъекта_Существующий(ОбъектМетаданных) Экспорт +Процедура ОткрытьФорму_Существующий(ОписаниеФормы) Экспорт - Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + ОбъектМетаданных = ОписаниеФормы.Владелец; + Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", ОписаниеФормы.ЭтоФормаГруппы)); + + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, Параметры); Если НЕ ЗначениеЗаполнено(Ключ) Тогда ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); КонецЕсли; - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); + ОткрытьЗакрытьФорму(ОбъектМетаданных, ОписаниеФормы.ТипФормы, Ключ); КонецПроцедуры -Процедура ОткрытьФормаОбъекта_Скопированный(ОбъектМетаданных) Экспорт +Процедура ОткрытьФорму_Скопированный(ОписаниеФормы) Экспорт + + ОбъектМетаданных = ОписаниеФормы.Владелец; + Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", ОписаниеФормы.ЭтоФормаГруппы)); - Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, Параметры); Если НЕ ЗначениеЗаполнено(Ключ) Тогда ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); КонецЕсли; - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаОбъекта", Ключ); - -КонецПроцедуры - -Процедура ОткрытьФормаГруппы_Группа(ОбъектМетаданных) Экспорт - - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаГруппы"); + ОткрытьЗакрытьФорму(ОбъектМетаданных, ОписаниеФормы.ТипФормы); КонецПроцедуры -Процедура ОткрытьФормаВыбора_Выбор(ОбъектМетаданных) Экспорт +Процедура ОткрытьФорму_Выбор(ОписаниеФормы) Экспорт - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбора"); + ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); КонецПроцедуры -Процедура ОткрытьФормаВыбораГруппы_ВыборГруппы(ОбъектМетаданных) Экспорт +Процедура ОткрытьФорму_ВыборГруппы(ОписаниеФормы) Экспорт - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаВыбораГруппы"); + ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); КонецПроцедуры -Процедура ОткрытьФормаСписка_Список(ОбъектМетаданных) Экспорт +Процедура ОткрытьФорму_Список(ОписаниеФормы) Экспорт - ОткрытьЗакрытьФорму(ОбъектМетаданных, "ФормаСписка"); + ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); КонецПроцедуры @@ -228,7 +228,7 @@ ПолноеИмяФормы = СтрШаблон("%1.%2.%3", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, ИмяФормы); ЮТЛогирование.Отладка("Открытие формы: " + ПолноеИмяФормы); - ЮТЛогирование.Отладка("Ключ: " + Ключ); + ЮТЛогирование.Отладка(" Ключ(ссылка): " + Ключ); Параметры = Новый Структура("Ключ", Ключ); @@ -245,7 +245,7 @@ КонецЕсли; ЭтоУправляемаяФорма = ЭтоУправляемаяФорма(Форма); - ЮТЛогирование.Отладка("Тип формы: " + Формат(ЭтоУправляемаяФорма, "БЛ='Обычная форма'; БИ='Управляемая форма';")); + ЮТЛогирование.Отладка(" Тип формы: " + Формат(ЭтоУправляемаяФорма, "БЛ='Обычная форма'; БИ='Управляемая форма';")); Попытка Форма.Открыть(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 5fb616305..0c301a605 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -65,7 +65,3 @@ КонецФункции #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index eb1534059..816a14f95 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -79,6 +79,36 @@ КонецЦикла; + Условия = ""; + + Если Параметры <> Неопределено И Параметры.Свойство("Отбор") Тогда + + ДоступныГруппы = (ЮТМетаданные.ЭтоСправочник(ОписаниеОбъектаМетаданных) + Или ЮТМетаданные.ЭтоПланВидовХарактеристик(ОписаниеОбъектаМетаданных)) + И ОписаниеОбъектаМетаданных.Реквизиты.Свойство("ЭтоГруппа"); + + Для Каждого Элемент Из Параметры.Отбор Цикл + + Если СтрСравнить(Элемент.Ключ, "ЭтоГруппа") = 0 И НЕ ДоступныГруппы Тогда + Продолжить; + КонецЕсли; + + ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1); + Условия = ЮТСтроки.ДобавитьСтроку(Условия, СтрШаблон("%1 = &%2", Элемент.Ключ, ИмяПараметра), " И "); + Запрос.УстановитьПараметр(ИмяПараметра, Элемент.Значение); + + КонецЦикла; + + Если НЕ ПустаяСтрока(Условия) Тогда + Условия = "ГДЕ " + Условия; + КонецЕсли; + + КонецЕсли; + + Если РеквизитУпорядочивания <> Неопределено Тогда + ВыбираемыеПоля.Добавить(РеквизитУпорядочивания); + КонецЕсли; + Реквизиты = СтрСоединить(ВыбираемыеПоля, ", "); НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100); @@ -90,12 +120,12 @@ | %2 | ИЗ | %3 КАК Выборка - | + | %4 | УПОРЯДОЧИТЬ ПО - | %4 УБЫВ) КАК ВЫБОРКА + | %5 УБЫВ) КАК ВЫБОРКА | |УПОРЯДОЧИТЬ ПО - | %4", НомерЭлемента, Реквизиты, ПолноеИмя, РеквизитУпорядочивания); + | %5", НомерЭлемента, Реквизиты, ПолноеИмя, Условия, РеквизитУпорядочивания); ЗначенияРеквизитов = ЮТЗапросыСлужебныйВызовСервера.ЗначенияИзЗапроса(Запрос, Реквизиты); From 8272c70b3fa690b3ba8164f56c29df763b91be38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=8F=D0=BA=D0=B8=D0=BD=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 5 Aug 2024 21:08:10 +0300 Subject: [PATCH 51/86] =?UTF-8?q?feat(smoke):=20=D1=83=D1=87=D0=B5=D1=82?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B0=D0=B2=20=D0=B4=D0=BE=D1=81=D1=82=D1=83?= =?UTF-8?q?=D0=BF=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 34 ++++++++++++++++--- .../Module.bsl" | 3 ++ 2 files changed, 32 insertions(+), 5 deletions(-) diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" index cacdb7b30..8f89af79a 100644 --- "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -37,17 +37,22 @@ Для Каждого ВладелецФорм Из ВладельцыФорм Цикл + Если НЕ ВладелецФорм.Просмотр Тогда + Продолжить; + КонецЕсли; + НаборыИсключений = Новый Массив; Если ТекущийТипОбъекта <> ВладелецФорм.Тип Тогда ТекущийТипОбъекта = ВладелецФорм.Тип; ЮТТесты.ДобавитьТестовыйНабор(ТекущийТипОбъекта); КонецЕсли; - ОписаниеОбъектаМетаданных = Новый Структура("Тип, Имя", ВладелецФорм.Тип, ВладелецФорм.Имя); + Формы = ВладелецФорм.Формы; + ВладелецФорм.Удалить("Формы"); - Для Каждого ОписаниеФормы Из ВладелецФорм.Формы Цикл + Для Каждого ОписаниеФормы Из Формы Цикл - ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы, Настройки); + ЗарегистрироватьТестыФормы(ВладелецФорм, ОписаниеФормы, Настройки); КонецЦикла; @@ -100,14 +105,29 @@ Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда ОписаниеФормы.ТипФормы = "ФормаГруппы"; - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы"); + + Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы"); + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированной группы"); + КонецЕсли; + Если ОписаниеОбъектаМетаданных.Редактирование Тогда + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующей группы"); + Иначе + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующей группы"); + КонецЕсли; ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда ОписаниеФормы.ТипФормы = "ФормаОбъекта"; + Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта"); - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "существующего объекта"); ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта"); + КонецЕсли; + Если ОписаниеОбъектаМетаданных.Редактирование Тогда + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующего объекта"); + Иначе + ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующего объекта"); + КонецЕсли; ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда @@ -255,11 +275,15 @@ КонецПопытки; Если Форма.Открыта() Тогда + Попытка Если ЭтоУправляемаяФорма Тогда Форма.ОбновитьОтображениеДанных(); Иначе Форма.Обновить(); КонецЕсли; + Исключение + ВызватьИсключение; + КонецПопытки; Форма.Модифицированность = Ложь; Форма.Закрыть(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 816a14f95..87646cc6f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -42,6 +42,9 @@ КонецЕсли; ВладелецФорм = ВладелецФормы(Тип.Имя, ОбъектМетаданных.Имя); + ВладелецФорм.Вставить("Просмотр", ПравоДоступа("Просмотр", ОбъектМетаданных)); + ВладелецФорм.Вставить("Редактирование", ПравоДоступа("Редактирование", ОбъектМетаданных)); + ВладелецФорм.Вставить("ИнтерактивноеДобавление", ПравоДоступа("ИнтерактивноеДобавление", ОбъектМетаданных)); Для Каждого Форма Из ОбъектМетаданных.Формы Цикл From 38988d325c15b9e140e2c3d22a41668f9e7017d6 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 26 Aug 2024 17:17:37 +0300 Subject: [PATCH 52/86] =?UTF-8?q?feat:=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=BA=20=D1=81=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 27 ++++++++++++ ...1\200\320\262\320\265\321\200\320\260.mdo" | 10 +++++ .../Module.bsl" | 10 ++++- .../Module.bsl" | 36 ++-------------- .../Module.bsl" | 2 +- .../Module.bsl" | 19 +++++++- .../src/Configuration/Configuration.mdo | 1 + .../Module.bsl" | 43 +++++++++++++++++++ ...0\236\320\261\321\211\320\270\320\271.mdo" | 7 +++ tests/src/Configuration/Configuration.mdo | 1 + 11 files changed, 120 insertions(+), 38 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 01a37ab43..9adddc936 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -145,7 +145,7 @@ ВызватьИсключение "Передано невалидное имя метода в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`"; КонецЕсли; - Возврат ЮТОбщийСлужебныйВызовСервера.ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры); + Возврат ЮТМетодыСлужебныйВызовСервера.ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..bff8c884b --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,27 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ВызватьФункциюКонфигурацииНаСервере(Знач ИмяМодуля, Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт + + Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурации(ИмяМодуля, ИмяМетода, Параметры, Ложь); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..a37e2ef35 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,10 @@ + + + ЮТМетодыСлужебныйВызовСервера + + ru + Методы служебный вызов сервера + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 26f736d49..0d2c50e8e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -301,7 +301,15 @@ Функция Менеджер(Знач Менеджер) Экспорт #Если Сервер Тогда - Возврат ЮТОбщийСлужебныйВызовСервера.Менеджер(Менеджер); + Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); + + Если Описание = Неопределено Тогда + ВызватьИсключение "Несуществующий объект метаданных, либо " + + ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); + КонецЕсли; + + Тип = ЮТТипыДанныхСлужебный.НовыйТипМенеджера(Описание); + Возврат Новый(Тип); #Иначе ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.Менеджер", "клиенте"); #КонецЕсли diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 5a7e2c1fc..6552e3c83 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -18,38 +18,12 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция ОписаниеТиповЛюбаяСсылка() Экспорт - - ЧтениеXML = Новый ЧтениеXML; - ЧтениеXML.УстановитьСтроку( - " - | cc:AnyRef - |"); - - Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); - -КонецФункции - Функция УстановленБезопасныйРежим() Экспорт Возврат БезопасныйРежим(); КонецФункции -Функция Менеджер(Знач Менеджер) Экспорт - - Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); - - Если Описание = Неопределено Тогда - ВызватьИсключение "Несуществующий объект метаданных, либо " + - ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); - КонецЕсли; - - Тип = ЮТТипыДанныхСлужебный.НовыйТипМенеджера(Описание); - Возврат Новый(Тип); - -КонецФункции - Функция Макет(ИмяМакета) Экспорт ЧастиИмени = СтрРазделить(ИмяМакета, "."); @@ -67,7 +41,7 @@ Макет = ПолучитьОбщийМакет(ЧастиИмени[1]); ИндексОбласти = КоличествоБлоковДляОбщегоМакета; ИначеЕсли ЧастиИмени.Количество() >= КоличествоБлоковМакетаМенеджера Тогда - Менеджер = Менеджер(СтрШаблон("%1.%2", ЧастиИмени[0], ЧастиИмени[1])); + Менеджер = ЮТОбщий.Менеджер(СтрШаблон("%1.%2", ЧастиИмени[0], ЧастиИмени[1])); Макет = Менеджер.ПолучитьМакет(ЧастиИмени[КоличествоБлоковМакетаМенеджера - 1]); ИндексОбласти = КоличествоБлоковМакетаМенеджера; Иначе @@ -95,7 +69,9 @@ КонецФункции Функция ИзХранилищаЗначений(Знач ХранилищеЗначений) Экспорт + Возврат ХранилищеЗначений.Получить(); + КонецФункции Функция ХешMD5(Строка) Экспорт @@ -106,12 +82,6 @@ КонецФункции -Функция ВызватьФункциюКонфигурацииНаСервере(Знач ИмяМодуля, Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - - Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурации(ИмяМодуля, ИмяМетода, Параметры, Ложь); - -КонецФункции - #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" index 902f02933..7ffb34b48 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\276\321\200\320\275\320\276\320\263\320\276\320\230\321\201\320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\320\275\320\270\321\217/Module.bsl" @@ -38,7 +38,7 @@ Функция ОписаниеТиповЛюбаяСсылка() Экспорт - Возврат ЮТОбщийСлужебныйВызовСервера.ОписаниеТиповЛюбаяСсылка(); + Возврат ЮТТипыДанныхСлужебный.ОписаниеТиповЛюбаяСсылка(Ложь); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 39759a40c..b0831aa6d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -121,9 +121,24 @@ КонецФункции -Функция ОписаниеТиповЛюбаяСсылка() Экспорт +Функция ОписаниеТиповЛюбаяСсылка(Кешировать = Истина) Экспорт - Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); + Если Кешировать Тогда + Возврат ЮТСлужебныйПовторногоИспользования.ОписаниеТиповЛюбаяСсылка(); + Иначе +#Если ВебКлиент Или ТонкийКлиент Тогда + Параметры = Новый Массив(1); + Параметры[0] = Ложь; + Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТТипыДанныхСлужебный", "ОписаниеТиповЛюбаяСсылка", Параметры); +#Иначе + ЧтениеXML = Новый ЧтениеXML; + ЧтениеXML.УстановитьСтроку( + " + | cc:AnyRef + |"); + Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML); +#КонецЕсли + КонецЕсли; КонецФункции diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 325e72ff6..de5fd754e 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -103,6 +103,7 @@ CommonModule.ЮТМетаданныеСлужебныйПовтИсп CommonModule.ЮТМетоды CommonModule.ЮТМетодыСлужебный + CommonModule.ЮТМетодыСлужебныйВызовСервера CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий CommonModule.ЮТОбщийСлужебный diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" new file mode 100644 index 000000000..cdb9adb86 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -0,0 +1,43 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ОписаниеТиповЛюбаяСсылка") + ; + +КонецПроцедуры + +Процедура ОписаниеТиповЛюбаяСсылка() Экспорт + + ЛюбаяСсылка = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); + + ЮТест.ОжидаетЧто(ЛюбаяСсылка) + .ИмеетТип("ОписаниеТипов") + .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Банки"))); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271.mdo" new file mode 100644 index 000000000..8e7845928 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТОбщий + true + true + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 93162df56..a7ffb2071 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -48,6 +48,7 @@ CommonModule.ОМ_ЮТКоллекции CommonModule.ОМ_ЮТКонструкторТестовыхДанных CommonModule.ОМ_ЮТМетаданные + CommonModule.ОМ_ЮТОбщий CommonModule.ОМ_ЮТОтчетAllureСлужебный CommonModule.ОМ_ЮТОтчетСлужебный CommonModule.ОМ_ЮТПодключаемыеМодулиСлужебныйВызовСервера From 4219ab5a0793d742f79b1ff3f3680863c7ee494c Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 26 Aug 2024 18:23:33 +0300 Subject: [PATCH 53/86] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=B4=20=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=87=D0=BD=D0=BE=D0=B5=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" | 1 + .../Module.bsl" | 3 +++ 2 files changed, 4 insertions(+) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index d9cf66049..883d38e1c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -6,5 +6,6 @@ Запросы вызов сервера true + true true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index c3ed27fb2..819c69956 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -119,6 +119,9 @@ Для Каждого Тест Из Набор.Тесты Цикл +#Если ТолстыйКлиентОбычноеПриложение Тогда + Состояние(Тест.Имя); +#КонецЕсли ВТранзакции = Ложь; ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции); From cd959453c3ff4fd73264fd74c6e6ad7ee5e190f7 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 26 Aug 2024 20:02:49 +0300 Subject: [PATCH 54/86] =?UTF-8?q?refactor:=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B9=20=D1=81=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 60 +++++------ .../Module.bsl" | 101 +++++++++++------- .../Module.bsl" | 4 +- .../Module.bsl" | 11 +- .../Module.bsl" | 28 ++--- 5 files changed, 115 insertions(+), 89 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 0b499f02e..3359b396f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -86,20 +86,6 @@ КонецФункции -Функция ИспользованиеНастройки(Настройка, ЗначениеПоУмолчанию) - - Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда - Использовать = ЗначениеПоУмолчанию; - ИначеЕсли Настройка = Истина Тогда - Использовать = Истина; - Иначе - Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию); - КонецЕсли; - - Возврат Использовать; - -КонецФункции - Функция ПрочитанБазовыеЭлементНастройки(Настройки, Ключ, Значение, Путь) Экспорт Если СтрСравнить(Ключ, "Использовать") = 0 Тогда @@ -122,20 +108,6 @@ КонецПроцедуры -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#Область Контекст - -Функция ИмяКонтекстаНастройки() - - Возврат "НастройкиДымовыхТестов"; - -КонецФункции - -#КонецОбласти - Функция ПодходитПодНаборыИсключений(Ключ, НаборыИсключений) Экспорт Для Каждого Набор Из НаборыИсключений Цикл @@ -158,7 +130,7 @@ Для Каждого ОписаниеИсключения Из НаборИсключений Цикл - Если ЮТСтроки.СоответсвуетШаблону(Ключ, ОписаниеИсключения) Тогда + Если ЮТСтроки.СоответствуетШаблону(Ключ, ОписаниеИсключения) Тогда Возврат Истина; КонецЕсли; @@ -168,6 +140,34 @@ КонецФункции +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область Контекст + +Функция ИмяКонтекстаНастройки() + + Возврат "НастройкиДымовыхТестов"; + +КонецФункции + +#КонецОбласти + +Функция ИспользованиеНастройки(Настройка, ЗначениеПоУмолчанию) + + Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда + Использовать = ЗначениеПоУмолчанию; + ИначеЕсли Настройка = Истина Тогда + Использовать = Истина; + Иначе + Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию); + КонецЕсли; + + Возврат Использовать; + +КонецФункции + Процедура ПрочитатьИсключения(Настройки, Исключения, Путь) Если ТипЗнч(Исключения) = Тип("Строка") Тогда @@ -175,7 +175,7 @@ ИначеЕсли ТипЗнч(Исключения) = Тип("Массив") Тогда Настройки.Исключения = Исключения; ИначеЕсли Исключения <> Неопределено Тогда - ВызватьИсключение СтрШаблон("Некорретный тип элемента настроек `%1.Исключения`. Допустимо: Строка или Массив из Строка", Путь); + ВызватьИсключение СтрШаблон("Некорректный тип элемента настроек `%1.Исключения`. Допустимо: Строка или Массив из Строка", Путь); КонецЕсли; КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 87646cc6f..8fec861b9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -67,54 +67,19 @@ Функция СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры = Неопределено) Экспорт + МаксимальныйНомерЭлемента = 100; ПолноеИмя = СтрШаблон("%1.%2", ТипОбъекта, ИмяОбъекта); ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ПолноеИмя); - РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных); Запрос = Новый Запрос; - ВыбираемыеПоля = Новый Массив; - Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл - - Если Реквизит.Значение.ЭтоКлюч Тогда - ВыбираемыеПоля.Добавить(Реквизит.Ключ); - КонецЕсли; - - КонецЦикла; - - Условия = ""; - - Если Параметры <> Неопределено И Параметры.Свойство("Отбор") Тогда - - ДоступныГруппы = (ЮТМетаданные.ЭтоСправочник(ОписаниеОбъектаМетаданных) - Или ЮТМетаданные.ЭтоПланВидовХарактеристик(ОписаниеОбъектаМетаданных)) - И ОписаниеОбъектаМетаданных.Реквизиты.Свойство("ЭтоГруппа"); - - Для Каждого Элемент Из Параметры.Отбор Цикл - - Если СтрСравнить(Элемент.Ключ, "ЭтоГруппа") = 0 И НЕ ДоступныГруппы Тогда - Продолжить; - КонецЕсли; - - ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1); - Условия = ЮТСтроки.ДобавитьСтроку(Условия, СтрШаблон("%1 = &%2", Элемент.Ключ, ИмяПараметра), " И "); - Запрос.УстановитьПараметр(ИмяПараметра, Элемент.Значение); - - КонецЦикла; - - Если НЕ ПустаяСтрока(Условия) Тогда - Условия = "ГДЕ " + Условия; - КонецЕсли; - - КонецЕсли; - - Если РеквизитУпорядочивания <> Неопределено Тогда - ВыбираемыеПоля.Добавить(РеквизитУпорядочивания); - КонецЕсли; - + РеквизитУпорядочивания = РеквизитУпорядочивания(ОписаниеОбъектаМетаданных); + ВыбираемыеПоля = ВыбираемыеПоля(ОписаниеОбъектаМетаданных, РеквизитУпорядочивания); + Условия = Условия(Параметры, ОписаниеОбъектаМетаданных, Запрос); Реквизиты = СтрСоединить(ВыбираемыеПоля, ", "); + НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(МаксимальныйНомерЭлемента); - НомерЭлемента = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100); + // BSLLS:QueryParseError-off Запрос.Текст = СтрШаблон( "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | * @@ -129,6 +94,7 @@ | |УПОРЯДОЧИТЬ ПО | %5", НомерЭлемента, Реквизиты, ПолноеИмя, Условия, РеквизитУпорядочивания); + // BSLLS:QueryParseError-on ЗначенияРеквизитов = ЮТЗапросыСлужебныйВызовСервера.ЗначенияИзЗапроса(Запрос, Реквизиты); @@ -224,6 +190,59 @@ Возврат "Ссылка"; КонецЕсли; + Возврат Неопределено; + +КонецФункции + +Функция Условия(Параметры, ОписаниеОбъектаМетаданных, Запрос) + + Условия = ""; + + Если Параметры <> Неопределено И Параметры.Свойство("Отбор") Тогда + + ДоступныГруппы = (ЮТМетаданные.ЭтоСправочник(ОписаниеОбъектаМетаданных) + Или ЮТМетаданные.ЭтоПланВидовХарактеристик(ОписаниеОбъектаМетаданных)) + И ОписаниеОбъектаМетаданных.Реквизиты.Свойство("ЭтоГруппа"); + + Для Каждого Элемент Из Параметры.Отбор Цикл + + Если СтрСравнить(Элемент.Ключ, "ЭтоГруппа") = 0 И НЕ ДоступныГруппы Тогда + Продолжить; + КонецЕсли; + + ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1); + Условия = ЮТСтроки.ДобавитьСтроку(Условия, СтрШаблон("%1 = &%2", Элемент.Ключ, ИмяПараметра), " И "); + Запрос.УстановитьПараметр(ИмяПараметра, Элемент.Значение); + + КонецЦикла; + + Если НЕ ПустаяСтрока(Условия) Тогда + Условия = "ГДЕ " + Условия; + КонецЕсли; + + КонецЕсли; + + Возврат Условия; + +КонецФункции + +Функция ВыбираемыеПоля(ОписаниеОбъектаМетаданных, РеквизитУпорядочивания) + + ВыбираемыеПоля = Новый Массив; + Для Каждого Реквизит Из ОписаниеОбъектаМетаданных.Реквизиты Цикл + + Если Реквизит.Значение.ЭтоКлюч Тогда + ВыбираемыеПоля.Добавить(Реквизит.Ключ); + КонецЕсли; + + КонецЦикла; + + Если РеквизитУпорядочивания <> Неопределено Тогда + ВыбираемыеПоля.Добавить(РеквизитУпорядочивания); + КонецЕсли; + + Возврат ВыбираемыеПоля; + КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 0d2c50e8e..d42428b7d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -304,8 +304,8 @@ Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); Если Описание = Неопределено Тогда - ВызватьИсключение "Несуществующий объект метаданных, либо " + - ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); + ВызватьИсключение "Несуществующий объект метаданных, либо " + + ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТОбщийВызовСервера.Менеджер", Менеджер); КонецЕсли; Тип = ЮТТипыДанныхСлужебный.НовыйТипМенеджера(Описание); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 667d5adae..118bcc14f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -324,7 +324,15 @@ КонецФункции -Функция СоответсвуетШаблону(Строка, Шаблон) Экспорт +// Проверяет что строк соответствует "простому" шаблону - тексту со звездочками. +// +// Параметры: +// Строка - Строка - Проверямая строка +// Шаблон - Строка - Шаблон +// +// Возвращаемое значение: +// Булево - Соответствует шаблону +Функция СоответствуетШаблону(Строка, Шаблон) Экспорт Если Шаблон = "" Тогда Возврат Ложь; @@ -338,7 +346,6 @@ Блоки = СтрРазделить(Шаблон, "*", Истина); Позиция = -1; - Успешно = Истина; ПервыйБлок = 0; ПоследнийБлок = Блоки.ВГраница(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 0c0bea083..a0a3d85dc 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -25,7 +25,7 @@ .ДобавитьТест("СтрокаСимволов") .ДобавитьТест("СравнитьВерсии") .ДобавитьТест("УникальныеСтроки") - .ДобавитьТест("СоответсвуетШаблону") + .ДобавитьТест("СоответствуетШаблону") ; КонецПроцедуры @@ -102,32 +102,32 @@ КонецПроцедуры -Процедура СоответсвуетШаблону() Экспорт +Процедура СоответствуетШаблону() Экспорт Строка = "123321"; - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*23321")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*23321")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "12332*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "12332*")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*32*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "1*32*")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "1*")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*1")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*1")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "1*1")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "1*1")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "2*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "2*")) .ЭтоЛожь(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*2")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*2")) .ЭтоЛожь(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*21*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*21*")) .ЭтоЛожь(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*33*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*33*")) .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТСтроки.СоответсвуетШаблону(Строка, "*3*3*")) + ЮТест.ОжидаетЧто(ЮТСтроки.СоответствуетШаблону(Строка, "*3*3*")) .ЭтоЛожь(); КонецПроцедуры From 965a1f5044b8a35a4b9f6a2cb61f342d1afea2fd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 27 Aug 2024 10:41:37 +0300 Subject: [PATCH 55/86] =?UTF-8?q?doc:=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D1=8B=D0=BC=D0=BE=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/smoke/index.md | 113 ++++++++++++++++++ documentation/docusaurus.config.js | 2 +- .../Module.bsl" | 79 ++++++------ .../smoke/src/Configuration/Configuration.mdo | 1 + 4 files changed, 153 insertions(+), 42 deletions(-) create mode 100644 documentation/docs/features/smoke/index.md diff --git a/documentation/docs/features/smoke/index.md b/documentation/docs/features/smoke/index.md new file mode 100644 index 000000000..b25a1bdab --- /dev/null +++ b/documentation/docs/features/smoke/index.md @@ -0,0 +1,113 @@ +# Дымовые тесты + +В YAxUnit реализована поддержка дымовых тестов. + +:::warning Черновая реализация +Реализация дымовых тестов может быть изменена. +::: + +Возможности: + +* Тестирование открытия форм: + * Нового элемента + * Существующего элемента + * Скопированного элемента + +## Запуск + +Для запуска дымовых тестов необходимо: + +1. Добавить расширение `smoke.cfe` +2. Создать файл настроек +3. Запустить 1С:Предприятие и открыть обработку "Юнит-тесты" +4. Загрузить настройки и перезагрузить тесты. +5. Запустить тесты. + +## Файл настроек + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|----------------|-------------------|-----------------------|-------------------------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование дымовых тестов | +| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](#настройка-тестов-открытия-форм) | + +### Настройка тестов открытия форм + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|--------------------------|-------------------|-----------------------|-----------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование тестов открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов | +| `<Имя типа теста>` | `Object\|boolean` | `true` | [Настройка типа теста](#настройка-типа-теста) | +| `<Имя вида метаданного>` | `Object\|boolean` | `true` | Настройка тестирования для вида объектов метаданных | + +#### Настройка типа теста + +Доступные следующие типы тестов открытия форм: + +* `Новый` - открытие формы - открытие формы **нового** элемента элемента +* `Существующий` - открытие формы **существующего** элемента +* `Скопированный` - открытие формы **скопированного** элемента +* `Список` - открытие формы **списка** +* `Выбор` - открытие формы **выбора** + +Для каждого из типов можно указать свои настройки + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|----------------|-----------------|-----------------------|-------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование типа тестов открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов для типа теста | + +#### Настройка вида метаданных + +Для каждого вида метаданных можно указать свои настройки. В качестве ключа используется имя вида метаданных (Справочник, Справочники, Catalog, Catalogs). +Есть возможность выключить или задать исключаемые объекты. + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|----------------|-----------------|-----------------------|------------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование вида метаданных в тестах открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов вида метаданных | + +## Примеры настроек + +Настройка для запуска/загрузки дымовых тестов открытия форм + +```json title="Дымовые тесты.json" +{ + "filter": { + "extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов + }, + "showReport": true, + // Настройка дымовых тестов + "ДымовыеТесты": { + "Использовать": true, // Включение дымовых тестов + "ОткрытиеФорм": true // Использование тестов открытия форм + } +} +``` + +Настройка исключений + +```json title="Исключения.json" +{ + "filter": { + "extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов + }, + // Настройка дымовых тестов + "ДымовыеТесты": { + "Использовать": true, + "ОткрытиеФорм": { + "Использовать": true, + "БизнесПроцессы": false, // Отключение проверки бизнес процессов + "Исключения": "Удалить_*", // Отключение проверки для объектов, название которых начинается с "Удалить_" + "Документы": { + "Исключения": [ + "ПКО", "РКО" // Отключение проверки документов ПКО и РКО + ] + }, + "Скопированный": false, // Отключение текстов открытия скопированного элемента, + "Новый": { + "Исключения": ["Номенклатура"] // Исключение номенклатуры из тестов открытия нового элемента + } + } + } +} +``` diff --git a/documentation/docusaurus.config.js b/documentation/docusaurus.config.js index a720fc194..9b1e84a54 100644 --- a/documentation/docusaurus.config.js +++ b/documentation/docusaurus.config.js @@ -170,7 +170,7 @@ const config = { prism: { theme: prismThemes.vsLight, darkTheme: prismThemes.vsDark, - additionalLanguages: ['bsl'], + additionalLanguages: ['bsl', 'json'], }, }), markdown: { diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" index 8f89af79a..bf9be44b6 100644 --- "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -20,13 +20,11 @@ Процедура ИсполняемыеСценарии() Экспорт -// Настройки = Настройки(); -// -// Если НЕ Настройки.Использовать Тогда -// Возврат; -// КонецЕсли; - Настройки = НастройкиПоУмолчанию(); - Настройки.Использовать = Истина; + Настройки = Настройки(); + + Если НЕ Настройки.Использовать Тогда + Возврат; + КонецЕсли; ЮТТесты.ВТранзакции().УдалениеТестовыхДанных(); @@ -37,7 +35,7 @@ Для Каждого ВладелецФорм Из ВладельцыФорм Цикл - Если НЕ ВладелецФорм.Просмотр Тогда + Если НЕ ВладелецФорм.Просмотр Тогда Продолжить; КонецЕсли; @@ -60,28 +58,6 @@ КонецПроцедуры -Функция ОтборМетаданных(Настройки) - - Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); - ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); - Отбор.Исключения = Настройки.Исключения; - - Для Каждого Элемент Из Настройки Цикл - - Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда - ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); - ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать; - ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения; - - Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных); - КонецЕсли; - - КонецЦикла; - - Возврат Отбор; - -КонецФункции - Процедура Инициализация(ПараметрыЗапуска) Экспорт ЗагружаемыеНастройки = ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, "ОткрытиеФорм"); @@ -106,11 +82,11 @@ ОписаниеФормы.ТипФормы = "ФормаГруппы"; - Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда + Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы"); ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированной группы"); КонецЕсли; - Если ОписаниеОбъектаМетаданных.Редактирование Тогда + Если ОписаниеОбъектаМетаданных.Редактирование Тогда ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующей группы"); Иначе ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующей группы"); @@ -119,11 +95,11 @@ ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда ОписаниеФормы.ТипФормы = "ФормаОбъекта"; - Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда + Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта"); ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта"); КонецЕсли; - Если ОписаниеОбъектаМетаданных.Редактирование Тогда + Если ОписаниеОбъектаМетаданных.Редактирование Тогда ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующего объекта"); Иначе ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующего объекта"); @@ -155,7 +131,7 @@ Возврат (Настройки.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать) Или (Настройки.Свойство(ТипМетаданного, НастройкаТипаМетаданных) - И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста) + И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать); КонецФункции @@ -168,7 +144,7 @@ НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста); КонецЕсли; - Возврат НастройкаТипаТеста <> Неопределено И + Возврат НастройкаТипаТеста <> Неопределено И ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодИсключения(ОписаниеФормы.Владелец.Имя, НастройкаТипаТеста.Исключения); КонецФункции @@ -188,6 +164,28 @@ КонецПроцедуры +Функция ОтборМетаданных(Настройки) + + Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); + Отбор.Исключения = Настройки.Исключения; + + Для Каждого Элемент Из Настройки Цикл + + Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда + ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); + ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать; + ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения; + + Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных); + КонецЕсли; + + КонецЦикла; + + Возврат Отбор; + +КонецФункции + #Область Тесты Процедура ОткрытьФорму_Новый(ОписаниеФормы) Экспорт @@ -244,7 +242,7 @@ КонецПроцедуры -Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено) +Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено) ПолноеИмяФормы = СтрШаблон("%1.%2.%3", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, ИмяФормы); ЮТЛогирование.Отладка("Открытие формы: " + ПолноеИмяФормы); @@ -319,7 +317,6 @@ КонецФункции - #КонецОбласти #Область ЗагрузкаНастроек @@ -339,10 +336,10 @@ Если ЭтоБазоваяНастройка Тогда Продолжить; - ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда + ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда Настройка = НастройкаТипаТеста(Элемент.Значение, Путь + "." + Элемент.Ключ); НастройкиТестов.Вставить(Элемент.Ключ, Настройка); - ИначеЕсли ЮТМетаданные.ТипыМетаданных().Свойство(Элемент.Ключ) Тогда + ИначеЕсли ЮТМетаданные.ТипыМетаданных().Свойство(Элемент.Ключ) Тогда ПрочитатьНастройкиТипаМетаданных(НастройкиТестов, Элемент.Ключ, Элемент.Значение, Путь); КонецЕсли; @@ -369,7 +366,7 @@ Если ЭтоБазоваяНастройка Тогда Продолжить; - ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда + ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда Настройка = НастройкаТипаТеста(Элемент.Значение, Путь + "." + Элемент.Ключ); НастройкиТипаМетаданных.Вставить(Элемент.Ключ, Настройка); КонецЕсли; diff --git a/exts/smoke/src/Configuration/Configuration.mdo b/exts/smoke/src/Configuration/Configuration.mdo index 881e16484..311302c34 100644 --- a/exts/smoke/src/Configuration/Configuration.mdo +++ b/exts/smoke/src/Configuration/Configuration.mdo @@ -18,6 +18,7 @@ 8.3.10 AddOn Russian + 0.2.1 Subsystem.ДТ_ЮТПодключаемыеМодули CommonModule.ДТОткрытиеФорм From dd3e8c3e3198d4e547b736f9ddd9a47d831b2e75 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 29 Aug 2024 13:33:50 +0300 Subject: [PATCH 56/86] =?UTF-8?q?ci(sq):=20fix=20=D0=B0=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sonar-qube-analysis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/sonar-qube-analysis.yml b/.github/workflows/sonar-qube-analysis.yml index f4e71d6eb..08ec0c26f 100644 --- a/.github/workflows/sonar-qube-analysis.yml +++ b/.github/workflows/sonar-qube-analysis.yml @@ -27,17 +27,15 @@ jobs: path: ./exts/yaxunit/src id: extract_version - - name: Установка сканера Sonar - uses: warchant/setup-sonar-scanner@v8 - with: - version: 6.1.0.4477 - # Анализ проекта в SonarQube (ветка) - name: Анализ в SonarQube (${{ github.ref_name }}) if: github.event_name == 'push' + uses: sonarsource/sonarqube-scan-action@v2.3.0 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: sonar-scanner + LC_ALL: "ru_RU.UTF-8" + with: + args: > -Dsonar.host.url=https://sonar.openbsl.ru -Dsonar.branch.name=${{ github.ref_name }} -Dsonar.projectVersion=${{ steps.extract_version.outputs.version }} @@ -48,9 +46,11 @@ jobs: # https://docs.sonarqube.org/latest/analysis/pull-request/ - name: Анализ в SonarQube (pull-request ${{ github.event.number }}) if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request' + uses: sonarsource/sonarqube-scan-action@v2.3.0 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: sonar-scanner + with: + args: > -Dsonar.host.url=https://sonar.openbsl.ru -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} -Dsonar.pullrequest.branch=${{ github.event.pull_request.head.ref }} From b7c494835aa05854a6f9b5ae7517776eec9ba643 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 29 Aug 2024 14:34:43 +0300 Subject: [PATCH 57/86] test: downgrade to 8.3.10 --- .../demo-configuration/DT-INF/PROJECT.PMF | 2 +- .../Form.form" | 2 - .../Form.form" | 1 - .../Form.form" | 1 - .../Form.form" | 8 - .../Form.form" | 1 - .../Form.form" | 9 - .../Form.form" | 5 - .../Form.form" | 9 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 32 - .../Form.form" | 1 - .../Form.form" | 1 - .../Form.form" | 1 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 14 - .../Form.form" | 1 - .../Form.form" | 5 - .../Form.form" | 3 - .../Form.form" | 4 - .../Form.form" | 2 - .../Form.form" | 4 - .../Form.form" | 21 - .../Form.form" | 2 - .../Form.form" | 14 - .../Form.form" | 5 - .../Form.form" | 5 - .../Form.form" | 8 - .../Form.form" | 1 - .../Form.form" | 9 - .../Form.form" | 8 - .../src/Configuration/Configuration.mdo | 22 +- .../Form.form" | 2 - .../Form.form" | 12 - .../Form.form" | 24 - .../Form.form" | 4 - .../Form.form" | 20 - .../Form.form" | 2 - .../Form.form" | 6 - .../Form.form" | 1 - .../Form.form" | 4 - .../Form.form" | 11 - .../Form.form" | 7 - .../Form.form" | 6 - .../Form.form" | 8 - .../Form.form" | 11 - .../Form.form" | 12 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 13 - .../Form.form" | 3 - .../Form.form" | 3 - .../Form.form" | 1 - .../Form.form" | 1 - .../Form.form" | 6 - .../Form.form" | 3 - .../Form.form" | 2 - .../Form.form" | 14 - .../Form.form" | 3 - .../Form.form" | 1 - .../Form.form" | 1 - .../Help/ru.html" | 1 - .../Template.dcs" | 543 --------- ...1\200\320\276\320\264\320\260\320\266.mdo" | 34 - .../Rights.rights" | 954 ++++++++-------- .../Rights.rights" | 1001 ++++++++--------- .../Rights.rights" | 754 ++++++------- .../Form.form" | 2 - .../Form.form" | 2 - .../CommandInterface.cmi" | 10 - ...0\276\320\264\320\260\320\266\320\270.mdo" | 15 +- .../Module.bsl" | 11 +- tests/src/Configuration/Configuration.mdo | 1 - 78 files changed, 1363 insertions(+), 2374 deletions(-) delete mode 100644 "fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Help/ru.html" delete mode 100644 "fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" delete mode 100644 "fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266.mdo" diff --git a/fixtures/demo-configuration/DT-INF/PROJECT.PMF b/fixtures/demo-configuration/DT-INF/PROJECT.PMF index c76f2f598..9ecf8971f 100644 --- a/fixtures/demo-configuration/DT-INF/PROJECT.PMF +++ b/fixtures/demo-configuration/DT-INF/PROJECT.PMF @@ -1,4 +1,4 @@ Manifest-Version: 1.0 -Runtime-Version: 8.3.21 +Runtime-Version: 8.3.10 Product-Version: 1.8.0 Store-Version: 1.0.0 diff --git "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" index 8d188f48b..91991e4de 100644 --- "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" +++ "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Form.form" @@ -523,7 +523,6 @@ true true - Vertical true true true @@ -646,7 +645,6 @@ ОбновитьВыполнить - Auto diff --git "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 48e0b1564..a85106694 100644 --- "a/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/AccumulationRegisters/\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -560,7 +560,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index be552b5a2..1b61f17b2 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\320\260\320\273\321\216\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -113,7 +113,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" index fc38d1ad4..46ad8ce71 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\232\320\260\320\273\320\265\320\275\320\264\320\260\321\200\321\214/Form.form" @@ -104,11 +104,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -540,7 +538,6 @@ true true Auto - DontUse @@ -648,11 +645,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -688,7 +683,6 @@ true true Auto - DontUse @@ -715,7 +709,6 @@ true true - Vertical true true true @@ -892,7 +885,6 @@ TextPicture - DontUse diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index dc15e5e2d..6068f4edd 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -582,7 +582,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 1d0f8ddc2..f0e82d02c 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\201\321\202\321\200\320\265\321\207\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -149,11 +149,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -313,11 +311,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -353,7 +349,6 @@ true true Auto - DontUse @@ -491,7 +486,6 @@ true true Auto - DontUse @@ -576,11 +570,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -655,7 +647,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index d9478c31a..9d225a71f 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -238,7 +238,6 @@ Page - Vertical true @@ -327,7 +326,6 @@ Page - Vertical true @@ -361,7 +359,6 @@ Pages - DontUse @@ -442,7 +439,6 @@ true true - Vertical true true true @@ -535,7 +531,6 @@ Ответить - Auto ВходящееПисьмо diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 59330fc84..21ece1b7f 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\230\321\201\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -279,7 +279,6 @@ true true Auto - DontUse @@ -460,12 +459,10 @@ UsualGroup - Vertical NormalSeparation true true Auto - DontUse @@ -661,7 +658,6 @@ ПриСозданииНаСервере true - Vertical true true true @@ -721,7 +717,6 @@ true - DontUse Отправить @@ -743,7 +738,6 @@ true - DontUse ВставитьКонтактноеЛицо @@ -764,7 +758,6 @@ ВставитьКонтактноеЛицо - DontUse ВыделитьВажное @@ -789,7 +782,6 @@ TextPicture - DontUse ЗаполнитьПоШаблону @@ -810,7 +802,6 @@ ЗаполнитьПоШаблону - DontUse ВходящееПисьмо diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index f1e345d61..3c49a637b 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -363,7 +361,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 9e0611cc1..87bb87ab2 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -880,7 +878,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index cef01aad4..30d18608e 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -237,7 +237,6 @@ true true Auto - DontUse true @@ -262,11 +261,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -347,7 +344,6 @@ true true Auto - DontUse true @@ -385,7 +381,6 @@ true Auto - DontUse @@ -724,7 +719,6 @@ UsualGroup - Vertical true true @@ -732,7 +726,6 @@ Адрес Auto - DontUse @@ -1038,11 +1031,9 @@ UsualGroup - AlwaysHorizontal WeakSeparation true true - DontUse @@ -1125,11 +1116,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -1158,7 +1147,6 @@ UsualGroup - Vertical true true @@ -1166,7 +1154,6 @@ Контакты Auto - DontUse true @@ -1195,14 +1182,12 @@ UsualGroup - PopUp Picture NormalSeparation true true true Auto - DontUse @@ -1340,7 +1325,6 @@ UsualGroup - Collapsible true Picture NormalSeparation @@ -1348,7 +1332,6 @@ true true Auto - DontUse @@ -1434,8 +1417,6 @@ UsualGroup - Vertical - Collapsible Picture NormalSeparation true @@ -1445,7 +1426,6 @@ true Auto - DontUse @@ -1805,7 +1785,6 @@ true true - Vertical true true true @@ -1880,7 +1859,6 @@ НовыйРасчетныйСчетВыполнить - DontUse СделатьФотоснимок @@ -1901,7 +1879,6 @@ СделатьФотоснимок - DontUse СделатьВидеозапись @@ -1922,7 +1899,6 @@ СделатьВидеозапись - DontUse СделатьАудиозапись @@ -1943,7 +1919,6 @@ СделатьАудиозапись - DontUse ПостроитьМаршрут @@ -1964,7 +1939,6 @@ ПостроитьМаршрут - DontUse ПоказатьКарту @@ -1985,7 +1959,6 @@ ПоказатьКарту - DontUse Позвонить @@ -2009,7 +1982,6 @@ Позвонить - DontUse ОтправитьСМС @@ -2033,7 +2005,6 @@ ОтправитьСМС - DontUse НапомнитьОЗвонке @@ -2054,7 +2025,6 @@ НапомнитьОЗвонке - DontUse ИспользоватьТекущееМестоположение @@ -2075,7 +2045,6 @@ ИспользоватьТекущееМестоположение - DontUse ИзКонтактов @@ -2096,7 +2065,6 @@ ЗаполнитьИзКонтактов - DontUse diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 77f565725..da49efa63 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\242\320\276\321\200\320\263\320\276\320\262\320\276\320\263\320\276\320\236\320\261\320\276\321\200\321\203\320\264\320\276\320\262\320\260\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -269,7 +269,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index b03a838b6..745147d68 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\236\321\200\320\263\320\260\320\275\320\270\320\267\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -155,7 +155,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 98e649578..8a5502190 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -113,7 +113,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index 40da31286..b29db3416 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -496,7 +494,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index c8af6b40c..5794f047e 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\240\320\260\321\201\321\207\320\265\321\202\320\275\321\213\320\265\320\241\321\207\320\265\321\202\320\260\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -396,7 +394,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index 7699bc044..153a0c594 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -33,13 +33,11 @@ UsualGroup - Vertical WeakSeparation true true true Auto - DontUse @@ -364,7 +362,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 6f175064a..1fdb6f7c3 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -488,7 +486,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" index a2c36e157..5edf069e1 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\241\320\236\321\201\321\202\320\260\321\202\320\272\320\260\320\274\320\270/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -496,7 +494,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index f6e5e53c7..798b3f691 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\242\320\276\320\262\320\260\321\200\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -521,7 +521,6 @@ true true Auto - DontUse @@ -603,7 +602,6 @@ Page - Vertical true @@ -736,7 +734,6 @@ Page - Vertical true @@ -864,7 +861,6 @@ Page - Vertical true @@ -1018,7 +1014,6 @@ Page - Vertical true @@ -1052,7 +1047,6 @@ Pages - DontUse true @@ -1085,7 +1079,6 @@ Page - Vertical true @@ -1120,7 +1113,6 @@ Pages TabsOnTop - DontUse @@ -1141,7 +1133,6 @@ 60 true true - Vertical true true true @@ -1316,7 +1307,6 @@ true - DontUse УдалитьХарактеристику @@ -1338,7 +1328,6 @@ true - DontUse ОбновитьКартинку @@ -1359,7 +1348,6 @@ ОбновитьКартинку - DontUse РедактироватьОписание @@ -1380,7 +1368,6 @@ РедактироватьОписание - DontUse ЗакончитьРедактирование @@ -1401,7 +1388,6 @@ ЗакончитьРедактирование - DontUse diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 6a2632816..a2e3e8f8e 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -268,7 +268,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" index 159d9b01c..6732680c3 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\241\320\277\320\270\321\201\320\276\320\272\320\241\320\265\321\200\321\202\320\270\321\204\320\270\320\272\320\260\321\202\320\276\320\262/Form.form" @@ -365,7 +365,6 @@ None None None - SelectionPresentation @@ -516,7 +515,6 @@ LockWholeInterface true - Vertical true true true @@ -626,7 +624,6 @@ TextPicture - DontUse OK @@ -647,7 +644,6 @@ OK - DontUse ПоказатьСписок @@ -668,7 +664,6 @@ ПоказатьСписок - DontUse МножественныйВыбор diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" index bcb486c3e..a8b4f8fca 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -30,12 +30,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -346,7 +344,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" index 55db92288..1aeba86fb 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270\320\244\320\260\320\271\320\273\320\276\320\262/Form.form" @@ -543,7 +543,6 @@ LockWholeInterface true true - Vertical true true true @@ -631,7 +630,6 @@ TextPicture - DontUse ДобавитьКаталог @@ -656,7 +654,6 @@ TextPicture - DontUse Загрузить @@ -677,7 +674,6 @@ Загрузить - DontUse diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" index 8808d747a..8e85d917a 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\276\320\273\321\217/Form.form" @@ -131,7 +131,6 @@ LockWholeInterface true - Vertical true true true @@ -174,7 +173,6 @@ ОК - Auto diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 5cc001f02..661ce1bf1 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -662,7 +660,6 @@ true true - Vertical true true true @@ -714,7 +711,6 @@ ЗагрузитьФайлы - DontUse ОткрытьФайл diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" index 983bb7b13..5936375b9 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\245\321\200\320\260\320\275\320\270\320\274\321\213\320\265\320\244\320\260\320\271\320\273\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -328,7 +328,6 @@ true true Auto - DontUse @@ -476,13 +475,11 @@ UsualGroup - HorizontalIfPossible WeakSeparation true true true Auto - DontUse @@ -587,13 +584,11 @@ UsualGroup - HorizontalIfPossible WeakSeparation true true true Auto - DontUse @@ -698,13 +693,11 @@ UsualGroup - HorizontalIfPossible WeakSeparation true true true Auto - DontUse @@ -953,7 +946,6 @@ LockOwnerWindow true true - Vertical true true true @@ -996,7 +988,6 @@ ВыбратьФайлСДискаИЗаписать - DontUse ПрочитатьФайлИСохранитьНаДиск @@ -1017,7 +1008,6 @@ ПрочитатьФайлИСохранитьНаДиск - DontUse Подписать @@ -1038,7 +1028,6 @@ Подписать - DontUse ПроверитьПодпись @@ -1059,7 +1048,6 @@ ПроверитьПодпись - DontUse ПоместитьЗашифрованныйНаСервер @@ -1080,7 +1068,6 @@ ПоместитьЗашифрованныйНаСервер - DontUse ПолучитьСРасшифровкой @@ -1101,7 +1088,6 @@ ПолучитьСРасшифровкой - DontUse Зашифровать @@ -1122,7 +1108,6 @@ Зашифровать - DontUse ДобавитьСохраненноеАудиоИЗаписать @@ -1143,7 +1128,6 @@ ДобавитьСохраненноеАудиоИЗаписать - DontUse ДобавитьСохраненноеВидеоИЗаписать @@ -1164,7 +1148,6 @@ ДобавитьСохраненноеВидеоИЗаписать - DontUse ДобавитьСохраненноеФотоИЗаписать @@ -1185,7 +1168,6 @@ ДобавитьСохраненноеФотоИЗаписать - DontUse СделатьАудиозаписьИЗаписать @@ -1206,7 +1188,6 @@ СделатьАудиозапись - DontUse СделатьВидеозаписьИЗаписать @@ -1227,7 +1208,6 @@ СделатьВидеозапись - DontUse СделатьФотоснимокИЗаписать @@ -1248,7 +1228,6 @@ СделатьФотоснимок - DontUse diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" index 9a5ee867f..717b02226 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\227\320\262\320\276\320\275\320\276\320\272/Form.form" @@ -94,7 +94,6 @@ true true - Vertical true true true @@ -158,7 +157,6 @@ Позвонить - DontUse diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" index 188496240..bcbbbbb4f 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260Push\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\320\271/Form.form" @@ -273,12 +273,10 @@ UsualGroup - Vertical NormalSeparation true true Auto - DontUse @@ -436,7 +434,6 @@ true true Auto - DontUse true @@ -469,12 +466,10 @@ UsualGroup - Vertical NormalSeparation true true Auto - DontUse @@ -665,12 +660,10 @@ UsualGroup - Vertical NormalSeparation true true Auto - DontUse true @@ -703,7 +696,6 @@ Page - Vertical true @@ -819,7 +811,6 @@ true true Auto - DontUse true @@ -852,7 +843,6 @@ Page - Vertical true @@ -886,7 +876,6 @@ Pages - DontUse @@ -906,7 +895,6 @@ true true - Vertical true true true @@ -1011,7 +999,6 @@ ЗагрузитьСертификат - DontUse ПолучитьЛогин @@ -1032,7 +1019,6 @@ ПолучитьЛогин - DontUse diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" index dca6ce4f7..21e687ac0 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\260\320\235\320\265\320\276\321\202\321\200\320\260\320\261\320\276\321\202\320\260\320\275\320\275\321\213\321\205\320\227\320\260\320\272\320\260\320\267\320\276\320\262/Form.form" @@ -144,7 +144,6 @@ true true Auto - DontUse @@ -291,7 +290,6 @@ true true Auto - DontUse @@ -393,12 +391,10 @@ UsualGroup - HorizontalIfPossible NormalSeparation true true Auto - DontUse None @@ -422,7 +418,6 @@ LockOwnerWindow true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" index c27276a4d..a57c57416 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\237\320\276\321\207\321\202\321\213/Form.form" @@ -389,7 +389,6 @@ Page - Vertical true @@ -725,7 +724,6 @@ Page - Vertical true @@ -1061,7 +1059,6 @@ Page - Vertical true @@ -1088,7 +1085,6 @@ Pages TabsOnTop - DontUse @@ -1198,7 +1194,6 @@ LockWholeInterface true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" index f974c0d0b..98d2eef04 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\276\320\263\320\276\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" @@ -354,13 +354,11 @@ UsualGroup - Vertical WeakSeparation true true true Auto - DontUse true @@ -393,7 +391,6 @@ Page - Vertical true @@ -484,13 +481,11 @@ UsualGroup - Vertical WeakSeparation true true true Auto - DontUse true @@ -523,7 +518,6 @@ Page - Vertical true @@ -558,7 +552,6 @@ Pages TabsOnTop - DontUse None @@ -583,7 +576,6 @@ LockOwnerWindow true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" index b951bc52c..8f998a9b1 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\236\320\261\321\211\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" @@ -113,7 +113,6 @@ 8 true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" index 573850c88..cb27f834c 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260/Form.form" @@ -86,7 +86,6 @@ UsualGroup - Vertical true true @@ -94,7 +93,6 @@ Параметры Auto - DontUse @@ -842,7 +840,6 @@ true true Auto - DontUse true @@ -867,7 +864,6 @@ UsualGroup - Vertical true true @@ -875,7 +871,6 @@ Список товаров Auto - DontUse @@ -1256,7 +1251,6 @@ UsualGroup - Vertical WeakSeparation true true @@ -1266,7 +1260,6 @@ true Auto - DontUse @@ -1432,7 +1425,6 @@ LockOwnerWindow true - Vertical true true true @@ -1675,7 +1667,6 @@ ОКВыполнить - Auto Склад diff --git "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" index a6f2d3339..f04c2068a 100644 --- "a/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/CommonForms/\320\244\320\276\321\200\320\274\320\260\320\237\320\276\320\264\320\261\320\276\321\200\320\260\320\234\320\276\320\261\320\270\320\273\321\214\320\275\320\260\321\217/Form.form" @@ -342,7 +342,6 @@ true true Auto - DontUse true @@ -371,7 +370,6 @@ UsualGroup - Vertical true true @@ -379,7 +377,6 @@ Список товаров Auto - DontUse @@ -720,7 +717,6 @@ UsualGroup - Vertical true true @@ -728,7 +724,6 @@ Отобранные товары Auto - DontUse @@ -841,7 +836,6 @@ LockOwnerWindow true - Vertical true true true @@ -975,7 +969,6 @@ ОКВыполнить - DontUse НачатьСканирование @@ -999,7 +992,6 @@ НачатьСканирование - DontUse АдресТоваровДокумента diff --git a/fixtures/demo-configuration/src/Configuration/Configuration.mdo b/fixtures/demo-configuration/src/Configuration/Configuration.mdo index 6334cbe34..269ee917f 100644 --- a/fixtures/demo-configuration/src/Configuration/Configuration.mdo +++ b/fixtures/demo-configuration/src/Configuration/Configuration.mdo @@ -12,7 +12,6 @@ - 8.3.21 ManagedApplication PersonalComputer @@ -28,24 +27,6 @@ true true SettingsStorage.ХранилищеВариантовОтчетов - - Multimedia - - - Multimedia - - - Multimedia - - - Multimedia - - - Multimedia - - - Multimedia - Language.Русский @@ -73,7 +54,7 @@ NotAutoFree DontUse DontUse - 8.3.21 + 8.3.10 CommonForm.ОбщиеНастройки Русский @@ -262,7 +243,6 @@ Enum.НазначениеХарактеристик Enum.СостоянияЗаказов Report.ВзаимосвязьПродажТоваров - Report.ДинамикаПродаж Report.ДокументыОплата Report.ОстаткиТоваровНаСкладах Report.ОтчетПоВзаиморасчетам diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 2d2e568cf..232771d8e 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\270\320\262\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\270\321\201/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -205,7 +205,6 @@ true true - Vertical true true true @@ -244,7 +243,6 @@ ОчиститьИсториюВыполнить - Auto diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" index 83d8a82c5..a430bcb38 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" @@ -573,7 +573,6 @@ true LeftNarrow Auto - DontUse @@ -930,7 +929,6 @@ ColumnGroup - Vertical true @@ -1071,7 +1069,6 @@ ColumnGroup - Vertical true @@ -1208,7 +1205,6 @@ ColumnGroup - Vertical true @@ -1387,7 +1383,6 @@ ColumnGroup - Vertical true @@ -1702,7 +1697,6 @@ ColumnGroup - Vertical true @@ -2041,7 +2035,6 @@ SaveValues Yes true - Vertical true true UseIfNecessary @@ -2623,7 +2616,6 @@ УстановитьИнтервалДатДляПросмотра - Auto УстановитьОтбор @@ -2647,7 +2639,6 @@ ВыполнитьУстановитьОтбор - Auto ОтключитьОтбор @@ -2671,7 +2662,6 @@ ОтключитьОтбор - Auto СписокАктивныхПользователей @@ -2695,7 +2685,6 @@ СписокАктивныхПользователей - Auto ОбновитьТекущийСписок @@ -2719,7 +2708,6 @@ ОбновитьТекущийСписок - Auto Пользователь diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" index 72749c718..f94319967 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\236\321\202\320\261\320\276\321\200\320\226\321\203\321\200\320\275\320\260\320\273\320\260\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Form.form" @@ -141,7 +141,6 @@ true true Auto - DontUse @@ -457,11 +456,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -702,7 +699,6 @@ true true Auto - DontUse @@ -1014,12 +1010,10 @@ UsualGroup - Vertical NormalSeparation true true Auto - DontUse true @@ -1058,7 +1052,6 @@ LeftWide true Auto - DontUse @@ -1258,13 +1251,11 @@ UsualGroup - Vertical NormalSeparation true true true Auto - DontUse @@ -1507,7 +1498,6 @@ true true Auto - DontUse @@ -1870,11 +1860,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -2129,12 +2117,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse true @@ -2159,12 +2145,10 @@ UsualGroup - Vertical NormalSeparation true true Auto - DontUse true @@ -2203,7 +2187,6 @@ LeftNarrow true Auto - DontUse @@ -2320,7 +2303,6 @@ 90 LockWholeInterface true - Vertical true true true @@ -2838,7 +2820,6 @@ ВажностьУстановитьВсе - DontUse ВажностьСнятьВсе @@ -2862,7 +2843,6 @@ ВажностьСнятьВсе - DontUse СтатусТранзакцииУстановитьВсе @@ -2886,7 +2866,6 @@ СтатусТранзакцииУстановитьВсе - DontUse СтатусТранзакцииСнятьВсе @@ -2910,7 +2889,6 @@ СтатусТранзакцииСнятьВсе - DontUse ОК @@ -2931,7 +2909,6 @@ ОК - DontUse Отмена @@ -2952,7 +2929,6 @@ Отмена - DontUse Отбор diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" index ec525ae10..c252258bb 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\240\320\265\320\264\320\260\320\272\321\202\320\276\321\200\320\241\320\276\321\201\321\202\320\260\320\262\320\260\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\260/Form.form" @@ -135,7 +135,6 @@ ColumnGroup - InCell true @@ -557,7 +556,6 @@ LockWholeInterface true - Vertical true true true @@ -670,7 +668,6 @@ УстановитьВсеФлажки - DontUse СнятьВсе @@ -694,7 +691,6 @@ СнятьВсеФлажки - DontUse diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" index d5b8f540f..66d312913 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\226\321\203\321\200\320\275\320\260\320\273\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/Form.form" @@ -147,11 +147,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -293,11 +291,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -333,7 +329,6 @@ true true Auto - DontUse @@ -477,12 +472,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -679,12 +672,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -826,12 +817,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -923,11 +912,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -1130,7 +1117,6 @@ true true Auto - DontUse true @@ -1163,11 +1149,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -1205,7 +1189,6 @@ true LeftNarrowest Auto - DontUse @@ -1317,12 +1300,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse None @@ -1349,7 +1330,6 @@ LockOwnerWindow DefaultButton true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 301efe7f1..f08ae715c 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -154,7 +154,6 @@ true true - Vertical true true true @@ -229,7 +228,6 @@ Сохранить - DontUse diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 2d30d3453..80082c65f 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\200\320\276\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -145,7 +145,6 @@ true true Auto - DontUse @@ -252,11 +251,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -866,7 +863,6 @@ true true Auto - DontUse @@ -990,7 +986,6 @@ UseList true true - Vertical true true true @@ -1126,7 +1121,6 @@ TextPicture - Auto Исключить diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" index 639c312f9..723de7bb5 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\214/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\321\203\321\202\320\265\320\262\320\276\320\264\320\270\321\202\320\265\320\273\321\217/Form.form" @@ -130,7 +130,6 @@ 30 true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" index 8a6e2a92a..d214375d1 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\241\320\277\320\270\321\201\320\276\320\272\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260\320\220\320\272\321\202\320\270\320\262\320\275\321\213\321\205\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\265\320\271/Form.form" @@ -968,7 +968,6 @@ Retry Yes true - Vertical true true true @@ -1264,7 +1263,6 @@ ОбновитьВыполнить - DontUse СортировкаПоВозрастанию @@ -1288,7 +1286,6 @@ СортироватьПоВозрастанию - DontUse СортировкаПоУбыванию @@ -1312,7 +1309,6 @@ СортироватьПоУбыванию - DontUse diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" index 35c1e7d0d..9e5c3e069 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\264\320\260\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\274\320\265\321\207\320\265\320\275\320\275\321\213\321\205\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -114,7 +114,6 @@ Page - Vertical true @@ -203,7 +202,6 @@ Page - Vertical true @@ -513,7 +511,6 @@ Page - Vertical true @@ -666,7 +663,6 @@ ColumnGroup - InCell true @@ -992,7 +988,6 @@ Page - Vertical true @@ -1027,7 +1022,6 @@ Pages - DontUse @@ -1253,7 +1247,6 @@ SaveValues Yes true - Vertical true true true @@ -1508,7 +1501,6 @@ ВыполнитьДалее - DontUse КомандаСписокПомеченныхУстановитьВсе @@ -1532,7 +1524,6 @@ КомандаСписокПомеченныхУстановитьВсе - DontUse КомандаСписокПомеченныхСнятьВсе @@ -1556,7 +1547,6 @@ КомандаСписокПомеченныхСнятьВсе - DontUse КомандаУдалить @@ -1580,7 +1570,6 @@ ВыполнитьУдаление - DontUse diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index e1839ef91..5d838ac06 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\220\320\263\321\200\320\265\320\263\320\260\321\202\320\260\320\274\320\270\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -209,7 +209,6 @@ true true Auto - DontUse @@ -376,7 +375,6 @@ true true Auto - DontUse @@ -495,7 +493,6 @@ true true Auto - DontUse None @@ -516,7 +513,6 @@ LockOwnerWindow true true - Vertical true true true @@ -660,7 +656,6 @@ ОбновитьНажатие - Auto Перестроить @@ -681,7 +676,6 @@ Перестроить - Auto ОпределитьОптимальные @@ -702,7 +696,6 @@ ОпределитьОптимальные - Auto diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index bb9c58c56..33591e339 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260\320\274\320\270\320\244\320\276\321\200\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -187,7 +187,6 @@ true true Auto - DontUse @@ -577,7 +576,6 @@ DefaultButton true true - Vertical true true true @@ -767,7 +765,6 @@ ОбновитьВыполнить - DontUse Скопировать @@ -788,7 +785,6 @@ СкопироватьВыполнить - DontUse Удалить @@ -809,7 +805,6 @@ УдалитьВыполнить - DontUse Искать @@ -830,7 +825,6 @@ ИскатьВыполнить - DontUse diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 449f28f61..599d3ac3f 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\320\276\320\273\320\275\320\276\321\202\320\265\320\272\321\201\321\202\320\276\320\262\321\213\320\274\320\237\320\276\320\270\321\201\320\272\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -180,11 +180,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -330,11 +328,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -370,7 +366,6 @@ true true Auto - DontUse None @@ -391,7 +386,6 @@ LockOwnerWindow true - Vertical true true true @@ -485,7 +479,6 @@ TextPicture - Auto ОчиститьИндекс @@ -510,7 +503,6 @@ TextPicture - Auto diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index ab104e8de..6075829d0 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\241\320\270\321\201\321\202\320\265\320\274\320\276\320\271\320\222\320\267\320\260\320\270\320\274\320\276\320\264\320\265\320\271\321\201\321\202\320\262\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -128,7 +128,6 @@ Page - Vertical Center Center true @@ -341,15 +340,12 @@ UsualGroup - Vertical - Collapsible true NormalSeparation true true true Auto - DontUse @@ -416,7 +412,6 @@ Page - Vertical true @@ -549,7 +544,6 @@ Page - Vertical true @@ -583,7 +577,6 @@ Pages - DontUse None @@ -604,7 +597,6 @@ LockOwnerWindow true - Vertical true true true @@ -731,7 +723,6 @@ Зарегистрировать - DontUse ОтменитьРегистрацию @@ -752,7 +743,6 @@ ОтменитьРегистрацию - DontUse ПолучитьКодРегистрации @@ -773,7 +763,6 @@ ПолучитьКодРегистрации - DontUse diff --git "a/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" "b/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" index 449a8b1b7..b2b678416 100644 --- "a/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DataProcessors/\320\255\320\273\320\265\320\272\321\202\321\200\320\276\320\275\320\275\320\260\321\217\320\237\320\276\321\207\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Form.form" @@ -576,7 +576,6 @@ true true Auto - DontUse @@ -1004,7 +1003,6 @@ Page - Vertical true @@ -1212,7 +1210,6 @@ true true Auto - DontUse @@ -1631,7 +1628,6 @@ Page - Vertical true @@ -1666,7 +1662,6 @@ Pages TabsOnTop - DontUse None @@ -1692,7 +1687,6 @@ 80 80 true - Vertical true true true @@ -1836,7 +1830,6 @@ КомандаНовоеПисьмо - DontUse КомандаПолучитьПисьма @@ -1857,7 +1850,6 @@ КомандаПолучитьПисьма - DontUse КомандаОтветить @@ -1878,7 +1870,6 @@ КомандаОтветить - DontUse КомандаСоздатьПочтовыйЯщикIMAP @@ -1899,7 +1890,6 @@ КомандаСоздатьПочтовыйЯщикIMAP - DontUse КомандаНастроить @@ -1920,7 +1910,6 @@ КомандаНастройкаПочты - DontUse КомандаНовоеПисьмоПоШаблону @@ -1941,7 +1930,6 @@ КомандаНовоеПисьмоПоШаблону - DontUse diff --git "a/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 1e6ee24ee..47feeb314 100644 --- "a/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DocumentJournals/\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213\320\237\321\200\320\276\320\264\320\260\320\266/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -669,7 +667,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 15c427909..ca2bedede 100644 --- "a/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/DocumentJournals/\320\244\320\270\320\275\320\260\320\275\321\201\320\276\320\262\321\213\320\265\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -659,7 +657,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index f7b250dbe..005826087 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -264,7 +264,6 @@ true true Auto - DontUse @@ -347,11 +346,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -561,11 +558,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -601,7 +596,6 @@ true true Auto - DontUse @@ -1205,7 +1199,6 @@ true true Auto - DontUse true @@ -1234,13 +1227,11 @@ UsualGroup - Vertical WeakSeparation true true true Auto - DontUse @@ -1411,7 +1402,6 @@ true true - Vertical true true true @@ -1515,7 +1505,6 @@ true - DontUse ОтправитьСМС @@ -1539,7 +1528,6 @@ ОтправитьСМС - DontUse Позвонить @@ -1563,7 +1551,6 @@ Позвонить - DontUse diff --git "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 639413eeb..88cbe91bd 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\227\320\260\320\272\320\260\320\267/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -673,7 +671,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 453066d05..1471d664d 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\265\321\200\320\260\321\206\320\270\321\217\320\237\320\276\320\243\321\207\320\265\321\202\321\203\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -768,7 +768,6 @@ Page - Vertical true @@ -795,7 +794,6 @@ Pages TabsOnTop - DontUse @@ -819,7 +817,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 81b963282..cf0953e9b 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -445,7 +445,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 7853ef73c..b54c93084 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -445,7 +445,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 472eae0ae..681766a5d 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -985,7 +985,6 @@ Web.Gainsboro Auto - DontUse true @@ -1018,13 +1017,11 @@ UsualGroup - HorizontalIfPossible WeakSeparation true true true Auto - DontUse @@ -1052,7 +1049,6 @@ true true - Vertical true true true @@ -1116,7 +1112,6 @@ CommonCommand.УстановитьСканерШтрихкодов Added - FormCommandBarImportant 0 true @@ -1125,7 +1120,6 @@ CommonCommand.НастроитьСканерШтрихКодов Added - FormCommandBarImportant 1 true diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 8fafc517f..f15d92cf6 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\321\200\320\270\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -556,7 +554,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" index 1b4661838..155e14b3f 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\236\321\204\320\276\321\200\320\274\320\273\320\265\320\275\320\270\320\265\320\224\320\276\321\201\321\202\320\260\320\262\320\272\320\270/Form.form" @@ -271,7 +271,6 @@ true true - Vertical true true true @@ -352,7 +351,6 @@ ПечатьПакетаДокументов - Auto ДатаДокумента diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" index 013208293..c6117336a 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\260/Form.form" @@ -264,7 +264,6 @@ true true Auto - DontUse @@ -339,11 +338,9 @@ UsualGroup - Vertical true true Auto - DontUse @@ -476,11 +473,9 @@ UsualGroup - Vertical true true Auto - DontUse true @@ -509,7 +504,6 @@ true LeftWide Auto - DontUse @@ -1172,7 +1166,6 @@ Web.Gainsboro Auto - DontUse true @@ -1201,7 +1194,6 @@ Page - Vertical true Объект.Товары.RowsCount @@ -1287,7 +1279,6 @@ Page - Vertical true @@ -1314,7 +1305,6 @@ Pages TabsOnTop - DontUse @@ -1420,7 +1410,6 @@ true true - Vertical true true true @@ -1507,7 +1496,6 @@ true - DontUse Пересчитать @@ -1529,7 +1517,6 @@ true - DontUse ОформитьДоставку @@ -1550,7 +1537,6 @@ ОформитьДоставкуВыполнить - DontUse diff --git "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" index 4d1a3217c..b81ebd678 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" +++ "b/fixtures/demo-configuration/src/Documents/\320\240\320\260\321\201\321\205\320\276\320\264\320\242\320\276\320\262\320\260\321\200\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -33,12 +33,10 @@ UsualGroup - Vertical WeakSeparation true true Auto - DontUse @@ -682,7 +680,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" index 7f5cf09e5..bb3110bec 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\242\320\265\320\272\321\203\321\211\320\270\320\265\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Form.form" @@ -384,7 +384,6 @@ true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" index ada7ed9b4..1ab3f493f 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\245\320\260\321\200\320\260\320\272\321\202\320\265\321\200\320\270\321\201\321\202\320\270\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" @@ -178,7 +178,6 @@ LockOwnerWindow true true - Vertical true true true diff --git "a/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Help/ru.html" "b/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Help/ru.html" deleted file mode 100644 index 8f89f8f00..000000000 --- "a/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Help/ru.html" +++ /dev/null @@ -1 +0,0 @@ -Этот отчет позволяет проследить динамику продаж по товарам предприятия. \ No newline at end of file diff --git "a/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" "b/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" deleted file mode 100644 index 3938e64df..000000000 --- "a/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/Templates/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\241\321\205\320\265\320\274\320\260\320\232\320\276\320\274\320\277\320\276\320\275\320\276\320\262\320\272\320\270\320\224\320\260\320\275\320\275\321\213\321\205/Template.dcs" +++ /dev/null @@ -1,543 +0,0 @@ - - - - ИсточникДанных1 - Local - - - НаборДанных1 - - Период - Период - - 1 - Main - - - - Покупатель - Покупатель - - - СуммаОборот - СуммаОборот - - - Товар - Товар - - ИсточникДанных1 - ВЫБРАТЬ - ПродажиОбороты.СуммаОборот, - ПродажиОбороты.Период, - ПродажиОбороты.Покупатель, - ПродажиОбороты.Товар -ИЗ - РегистрНакопления.Продажи.Обороты(, , День, ) КАК ПродажиОбороты - - - СуммаОборот - Сумма(СуммаОборот) - - - НачалоПериода - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Начало периода</v8:content> - </v8:item> - - - xs:dateTime - - DateTime - - - - true - &Период.ДатаНачала - - - КонецПериода - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Конец периода</v8:content> - </v8:item> - - - xs:dateTime - - DateTime - - - - true - &Период.ДатаОкончания - - - Период - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Период</v8:content> - </v8:item> - - - v8:StandardPeriod - - - ThisYear - - false - - - ДиаграммаПоПериодам - - - ru - Диаграмма по периодам - - - - - - СуммаОборот - - - - - false - Покупатель - Equal - Справочник.Контрагенты.ПустаяСсылка - 984bc0af-8755-459d-b3ba-28e0f41ddb15 - - - false - Товар - Equal - Справочник.Товары.ПустаяСсылка - 39f6fc0e-a6b6-41f7-89fe-cb0b9e17d66c - - Normal - 55d3424a-5753-4379-99f1-4bd5cf8af806 - - - - false - НачалоПериода - - Custom - 0001-01-01T00:00:00 - - - - Период - - ThisYear - - 971f3f1d-b077-4616-bb86-bb8efb215b5a - - - - - Период - Asc - - - - - - - - - ЛинииТрендаВДиаграмме - - - - Solid - - #2D3AED - true - true - - - auto - auto - - WithoutBorder - - auto - - - - - - - МаркерВДиаграмме - None - - - - - - - ТипДиаграммы - Line - - ТипДиаграммы.РежимСглаживания - SmoothCurve - - - - - - - - Период - Items - None - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - - - - - - - - - - - - - Формат - - - ru - ДФ=dd.MM.yyyy - - - - - - - - - - - - - - - ПродажиТоваровПоПокупателям - - - ru - Продажи товаров по покупателям - - - - - - СуммаОборот - - - - Normal - 0f3fa251-788a-40af-be94-91ae48093a64 - - - - false - НачалоПериода - - Custom - 0001-01-01T00:00:00 - - - - Период - - ThisYear - - a65b8d71-acb1-45ab-beb3-29e6dbee347b - - - - - Период - Asc - - Normal - cfd01a01-c2c0-429a-80ad-7094efcceb85 - - - Normal - 5dee628d-6f08-4aa2-8dad-9cff2035af13 - - - - ТипДиаграммы - Line - - - - - - Товар - Items - None - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - - - - - - - - - - Покупатель - Items - None - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - - - - - - - - - b1d3d9a1-9ccb-4fbd-9a90-010ec2f17e42 - - - - ДиаграммаПоПериодамВСравненииСЖелаемымУровнем - - - ru - Диаграмма по периодам в сравнении с желаемым уровнем - - - - - - СуммаОборот - - - - - false - Покупатель - Equal - Справочник.Контрагенты.ПустаяСсылка - 984bc0af-8755-459d-b3ba-28e0f41ddb15 - - - false - Товар - Equal - Справочник.Товары.ПустаяСсылка - 39f6fc0e-a6b6-41f7-89fe-cb0b9e17d66c - - Normal - 55d3424a-5753-4379-99f1-4bd5cf8af806 - - - - false - НачалоПериода - - Custom - 0001-01-01T00:00:00 - - - - Период - - ThisYear - - 971f3f1d-b077-4616-bb86-bb8efb215b5a - - - - - Период - Asc - - - - - - - - - МаркерВДиаграмме - None - - - - - - - ТипДиаграммы - Line - - ТипДиаграммы.РежимСглаживания - SmoothCurve - - - ТипДиаграммы.ИнформационныеИнтервалыЗначений - - - 0 - 10000 - - - - - auto - auto - - WithoutBorder - - auto - - #FF3800 - auto - 0.0 - 1.0 - false - false - - - 10000 - 20000 - - - - - auto - auto - - WithoutBorder - - auto - - #FFC700 - auto - 0.0 - 1.0 - false - false - - - 20000 - 100000 - - - # - Желаемый уровень продаж - - - - - LeftBottom - - auto - auto - - WithoutBorder - - auto - - #79FE00 - auto - 0.0 - 1.0 - false - false - - - - - ТипДиаграммы.ИнформационныеЛинииТочек - - - 2012-09-03T00:00:00 - - - # - Старт рекламной компании - - - - - - auto - auto - - WithoutBorder - - auto - - auto - false - - - - - - - - - - Период - Items - None - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - - - - - - - - - - - - - Формат - - - ru - ДФ=dd.MM.yyyy - - - - - - - - - - - - - - \ No newline at end of file diff --git "a/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266.mdo" "b/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266.mdo" deleted file mode 100644 index 9b71b34ec..000000000 --- "a/fixtures/demo-configuration/src/Reports/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266/\320\224\320\270\320\275\320\260\320\274\320\270\320\272\320\260\320\237\321\200\320\276\320\264\320\260\320\266.mdo" +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - ДинамикаПродаж - - ru - Динамика продаж - - - true - Report.ДинамикаПродаж.Template.ОсновнаяСхемаКомпоновкиДанных - true - - - ru - - - - ru - Отчет по динамике продаж товаров (объемы продаж по периодам) - - - ОсновнаяСхемаКомпоновкиДанных - - ru - Основная схема компоновки данных - - - DataCompositionSchema - - diff --git "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" index 0ec51cfff..1f411566b 100644 --- "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" +++ "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\227\320\260\320\272\321\203\320\277\320\272\320\260\320\274/Rights.rights" @@ -9,6 +9,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -69,53 +93,53 @@ InteractiveDeleteMarkedPredefinedData true + + + ExchangePlan.Мобильные - ReadDataHistory + Read true - ReadDataHistoryOfMissingData + View true + + + Subsystem.Финансы - UpdateDataHistoryVersionComment + View true + + + Catalog.РасчетныеСчета - ViewDataHistory + Read true - EditDataHistoryVersionComment + ReadDataHistory true - SwitchToDataHistoryVersion + ReadDataHistoryOfMissingData true - - - ExchangePlan.Мобильные - Read + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - - - Subsystem.Финансы - View + EditDataHistoryVersionComment true - - - Catalog.РасчетныеСчета - Read + SwitchToDataHistoryVersion true @@ -178,6 +202,20 @@ InteractiveDeleteMarkedPredefinedData true + + + Document.РасходТовара.Attribute.Склад + + Edit + false + + + + Catalog.Контрагенты + + Read + true + ReadDataHistory true @@ -202,20 +240,6 @@ SwitchToDataHistoryVersion true - - - Document.РасходТовара.Attribute.Склад - - Edit - false - - - - Catalog.Контрагенты - - Read - true - Insert true @@ -276,30 +300,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.ТолькоЗащищеннаяАутентификацияSMTP @@ -501,6 +501,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -553,6 +577,13 @@ InteractiveDeleteMarkedPredefinedData true + + + Catalog.ПочтовыеВложения + + Read + true + ReadDataHistory true @@ -577,13 +608,6 @@ SwitchToDataHistoryVersion true - - - Catalog.ПочтовыеВложения - - Read - true - Insert true @@ -644,6 +668,13 @@ InteractiveDeleteMarkedPredefinedData true + + + InformationRegister.Характеристики + + Read + true + ReadDataHistory true @@ -668,13 +699,6 @@ SwitchToDataHistoryVersion true - - - InformationRegister.Характеристики - - Read - true - Update true @@ -687,6 +711,13 @@ Edit true + + + Catalog.НастройкиТорговогоОборудования + + Read + true + ReadDataHistory true @@ -711,13 +742,6 @@ SwitchToDataHistoryVersion true - - - Catalog.НастройкиТорговогоОборудования - - Read - true - Insert true @@ -778,6 +802,20 @@ InteractiveDeleteMarkedPredefinedData true + + + Document.ПоступлениеДенег.Attribute.Покупатель + + Edit + false + + + + Catalog.Регионы + + Read + true + ReadDataHistory true @@ -802,20 +840,6 @@ SwitchToDataHistoryVersion true - - - Document.ПоступлениеДенег.Attribute.Покупатель - - Edit - false - - - - Catalog.Регионы - - Read - true - Insert true @@ -876,30 +900,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.ПортIMAP @@ -1019,6 +1019,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Update true @@ -1067,61 +1091,61 @@ InteractiveDeleteMarkedPredefinedData true + + + Constant.ТолькоЗащищеннаяАутентификацияIMAP - ReadDataHistory - true - - - ReadDataHistoryOfMissingData + Read true - UpdateDataHistoryVersionComment + Update true - ViewDataHistory + View true - EditDataHistoryVersionComment + Edit true + + + CommonCommand.УстановитьРасширениеРаботыСФайлами - SwitchToDataHistoryVersion + View true - Constant.ТолькоЗащищеннаяАутентификацияIMAP + InformationRegister.КурсыВалют Read true - Update + ReadDataHistory true - View + ReadDataHistoryOfMissingData true - Edit + UpdateDataHistoryVersionComment true - - - CommonCommand.УстановитьРасширениеРаботыСФайлами - View + ViewDataHistory true - - - InformationRegister.КурсыВалют - Read + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion true @@ -1136,6 +1160,13 @@ Edit true + + + Document.Заказ + + Read + true + ReadDataHistory true @@ -1160,15 +1191,15 @@ SwitchToDataHistoryVersion true - - - Document.Заказ - Read + View true + + + Document.ПриходТовара - View + Read true @@ -1195,13 +1226,6 @@ SwitchToDataHistoryVersion true - - - Document.ПриходТовара - - Read - true - Insert true @@ -1266,54 +1290,54 @@ InputByString true + + + Constant.SSLSMTP - ReadDataHistory + Read true - ReadDataHistoryOfMissingData + Update true - UpdateDataHistoryVersionComment + View true - ViewDataHistory + Edit true + + + Catalog.ИсходящиеПисьма - EditDataHistoryVersionComment + Read true - SwitchToDataHistoryVersion + ReadDataHistory true - - - Constant.SSLSMTP - Read + ReadDataHistoryOfMissingData true - Update + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - Edit + EditDataHistoryVersionComment true - - - Catalog.ИсходящиеПисьма - Read + SwitchToDataHistoryVersion true @@ -1376,61 +1400,61 @@ InteractiveDeleteMarkedPredefinedData true + + + Constant.SSLIMAP - ReadDataHistory - true - - - ReadDataHistoryOfMissingData + Read true - UpdateDataHistoryVersionComment + Update true - ViewDataHistory + View true - EditDataHistoryVersionComment + Edit true + + + Document.ПоступлениеДенег.Attribute.Сумма - SwitchToDataHistoryVersion - true + Edit + false - Constant.SSLIMAP + Catalog.Банки Read true - Update + ReadDataHistory true - View + ReadDataHistoryOfMissingData true - Edit + UpdateDataHistoryVersionComment true - - - Document.ПоступлениеДенег.Attribute.Сумма - Edit - false + ViewDataHistory + true - - - Catalog.Банки - Read + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion true @@ -1493,54 +1517,54 @@ InteractiveDeleteMarkedPredefinedData true + + + Constant.ИспользоватьPushУведомления - ReadDataHistory + Read true - ReadDataHistoryOfMissingData + Update true - UpdateDataHistoryVersionComment + View true - ViewDataHistory + Edit true + + + Catalog.ХранимыеФайлы - EditDataHistoryVersionComment + Read true - SwitchToDataHistoryVersion + ReadDataHistory true - - - Constant.ИспользоватьPushУведомления - Read + ReadDataHistoryOfMissingData true - Update + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - Edit + EditDataHistoryVersionComment true - - - Catalog.ХранимыеФайлы - Read + SwitchToDataHistoryVersion true @@ -1603,54 +1627,54 @@ InteractiveDeleteMarkedPredefinedData true + + + Constant.КодНовогоУзлаПланаОбмена - ReadDataHistory + Read true - ReadDataHistoryOfMissingData + Update true - UpdateDataHistoryVersionComment + View true - ViewDataHistory + Edit true + + + Catalog.Товары - EditDataHistoryVersionComment + Read true - SwitchToDataHistoryVersion + ReadDataHistory true - - - Constant.КодНовогоУзлаПланаОбмена - Read + ReadDataHistoryOfMissingData true - Update + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - Edit + EditDataHistoryVersionComment true - - - Catalog.Товары - Read + SwitchToDataHistoryVersion true @@ -1713,30 +1737,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Document.РасходТовара.Attribute.ВидЦен @@ -1804,87 +1804,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1947,91 +1947,91 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - Posting + ViewDataHistory true - UndoPosting + EditDataHistoryVersionComment true - View + SwitchToDataHistoryVersion true - InteractiveInsert + Insert true - Edit + Update true - InteractiveSetDeletionMark + Delete true - InteractiveClearDeletionMark + Posting true - InteractiveDeleteMarked + UndoPosting true - InteractivePosting + View true - InteractivePostingRegular + InteractiveInsert true - InteractiveUndoPosting + Edit true - InteractiveChangeOfPosted + InteractiveSetDeletionMark true - InputByString + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InteractivePosting true - UpdateDataHistoryVersionComment + InteractivePostingRegular true - ViewDataHistory + InteractiveUndoPosting true - EditDataHistoryVersionComment + InteractiveChangeOfPosted true - SwitchToDataHistoryVersion + InputByString true @@ -2153,6 +2153,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -2213,6 +2237,13 @@ InteractiveDeleteMarkedPredefinedData true + + + Catalog.ВидыЦен + + Read + true + ReadDataHistory true @@ -2237,13 +2268,6 @@ SwitchToDataHistoryVersion true - - - Catalog.ВидыЦен - - Read - true - Insert true @@ -2304,30 +2328,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - InformationRegister.МобильныеОтчеты @@ -2335,10 +2335,6 @@ Read true - - View - true - ReadDataHistory true @@ -2363,6 +2359,10 @@ SwitchToDataHistoryVersion true + + View + true + SessionParameter.ТекущийПользователь @@ -2430,39 +2430,39 @@ true - Update + ReadDataHistory true - View + ReadDataHistoryOfMissingData true - Edit + UpdateDataHistoryVersionComment true - ReadDataHistory + ViewDataHistory true - ReadDataHistoryOfMissingData + EditDataHistoryVersionComment true - UpdateDataHistoryVersionComment + SwitchToDataHistoryVersion true - ViewDataHistory + Update true - EditDataHistoryVersionComment + View true - SwitchToDataHistoryVersion + Edit true @@ -2473,92 +2473,96 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true Configuration.ДемонстрационноеПриложение + + MobileClient + true + UpdateDataBaseConfiguration true @@ -2583,10 +2587,6 @@ WebClient true - - MobileClient - true - ThickClient true @@ -2685,6 +2685,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -2709,6 +2733,13 @@ View true + + + Document.ОперацияПоУчетуТоваров + + Read + true + ReadDataHistory true @@ -2733,13 +2764,6 @@ SwitchToDataHistoryVersion true - - - Document.ОперацияПоУчетуТоваров - - Read - true - Insert true @@ -2804,30 +2828,6 @@ InputByString true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.АдресPOP3Сервера @@ -2862,87 +2862,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -3005,87 +3005,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -3187,6 +3187,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Update true @@ -3199,6 +3223,13 @@ Edit true + + + InformationRegister.СостояниеИсходящихПисем + + Read + true + ReadDataHistory true @@ -3223,13 +3254,6 @@ SwitchToDataHistoryVersion true - - - InformationRegister.СостояниеИсходящихПисем - - Read - true - Update true @@ -3242,6 +3266,13 @@ Edit true + + + Catalog.РасчетныеСчетаКонтрагентов + + Read + true + ReadDataHistory true @@ -3266,13 +3297,6 @@ SwitchToDataHistoryVersion true - - - Catalog.РасчетныеСчетаКонтрагентов - - Read - true - Insert true @@ -3333,6 +3357,13 @@ InteractiveDeleteMarkedPredefinedData true + + + Document.ПоступлениеДенег + + Read + true + ReadDataHistory true @@ -3357,13 +3388,6 @@ SwitchToDataHistoryVersion true - - - Document.ПоступлениеДенег - - Read - true - Insert true @@ -3388,30 +3412,6 @@ View true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.ПортPOP3 diff --git "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" index a3f2eb8e7..55d4f334a 100644 --- "a/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" +++ "b/fixtures/demo-configuration/src/Roles/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\320\276\320\237\321\200\320\276\320\264\320\260\320\266\320\260\320\274/Rights.rights" @@ -9,6 +9,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -69,53 +93,53 @@ InteractiveDeleteMarkedPredefinedData true + + + ExchangePlan.Мобильные - ReadDataHistory + Read true - ReadDataHistoryOfMissingData + Update true + + + Subsystem.Финансы - UpdateDataHistoryVersionComment + View true + + + Catalog.РасчетныеСчета - ViewDataHistory + Read true - EditDataHistoryVersionComment + ReadDataHistory true - SwitchToDataHistoryVersion + ReadDataHistoryOfMissingData true - - - ExchangePlan.Мобильные - Read + UpdateDataHistoryVersionComment true - Update + ViewDataHistory true - - - Subsystem.Финансы - View + EditDataHistoryVersionComment true - - - Catalog.РасчетныеСчета - Read + SwitchToDataHistoryVersion true @@ -178,6 +202,20 @@ InteractiveDeleteMarkedPredefinedData true + + + Document.ПриходТовара.TabularSection.Товары.Attribute.Товар + + Edit + false + + + + Catalog.Контрагенты + + Read + true + ReadDataHistory true @@ -202,20 +240,6 @@ SwitchToDataHistoryVersion true - - - Document.ПриходТовара.TabularSection.Товары.Attribute.Товар - - Edit - false - - - - Catalog.Контрагенты - - Read - true - Insert true @@ -276,30 +300,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Document.ПриходТовара.TabularSection.Товары.Attribute.Количество @@ -502,79 +502,79 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - Edit + EditDataHistoryVersionComment true - InteractiveDelete + SwitchToDataHistoryVersion true - InteractiveSetDeletionMark + Insert true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -614,6 +614,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -674,6 +698,13 @@ InteractiveDeleteMarkedPredefinedData true + + + InformationRegister.Характеристики + + Read + true + ReadDataHistory true @@ -698,13 +729,6 @@ SwitchToDataHistoryVersion true - - - InformationRegister.Характеристики - - Read - true - Update true @@ -717,6 +741,13 @@ Edit true + + + Catalog.НастройкиТорговогоОборудования + + Read + true + ReadDataHistory true @@ -741,15 +772,15 @@ SwitchToDataHistoryVersion true - - - Catalog.НастройкиТорговогоОборудования - Read + View true + + + Catalog.Регионы - View + Read true @@ -776,13 +807,6 @@ SwitchToDataHistoryVersion true - - - Catalog.Регионы - - Read - true - Insert true @@ -843,30 +867,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.ПортIMAP @@ -980,75 +980,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1095,6 +1095,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Update true @@ -1107,6 +1131,13 @@ Edit true + + + Document.Заказ + + Read + true + ReadDataHistory true @@ -1131,13 +1162,6 @@ SwitchToDataHistoryVersion true - - - Document.Заказ - - Read - true - Insert true @@ -1202,6 +1226,13 @@ InputByString true + + + Document.ПриходТовара + + Read + true + ReadDataHistory true @@ -1226,13 +1257,6 @@ SwitchToDataHistoryVersion true - - - Document.ПриходТовара - - Read - true - Insert true @@ -1257,30 +1281,6 @@ View true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.SSLSMTP @@ -1315,87 +1315,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1431,6 +1431,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -1491,54 +1515,54 @@ InteractiveDeleteMarkedPredefinedData true + + + Constant.ИспользоватьPushУведомления - ReadDataHistory + Read true - ReadDataHistoryOfMissingData + Update true - UpdateDataHistoryVersionComment + View true - ViewDataHistory + Edit true + + + Catalog.ХранимыеФайлы - EditDataHistoryVersionComment + Read true - SwitchToDataHistoryVersion + ReadDataHistory true - - - Constant.ИспользоватьPushУведомления - Read + ReadDataHistoryOfMissingData true - Update + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - Edit + EditDataHistoryVersionComment true - - - Catalog.ХранимыеФайлы - Read + SwitchToDataHistoryVersion true @@ -1601,30 +1625,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Document.РасходТовара.Command.ПечатьРасходнойНакладной @@ -1659,87 +1659,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1802,87 +1802,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1945,51 +1945,51 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - Posting + ViewDataHistory true - UndoPosting + EditDataHistoryVersionComment true - View + SwitchToDataHistoryVersion true - ReadDataHistory + Insert true - ReadDataHistoryOfMissingData + Update true - UpdateDataHistoryVersionComment + Delete true - ViewDataHistory + Posting true - EditDataHistoryVersionComment + UndoPosting true - SwitchToDataHistoryVersion + View true @@ -2131,17 +2131,6 @@ true - - Report.ДинамикаПродаж - - Use - true - - - View - true - - Document.Оплата.Attribute.Сумма @@ -2155,6 +2144,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -2215,42 +2228,42 @@ InteractiveDeleteMarkedPredefinedData true + + + WebService.MAExchange.Operation.ЗаписатьДанные - ReadDataHistory + Use true + + + Catalog.ВидыЦен - ReadDataHistoryOfMissingData + Read true - UpdateDataHistoryVersionComment + ReadDataHistory true - ViewDataHistory + ReadDataHistoryOfMissingData true - EditDataHistoryVersionComment + UpdateDataHistoryVersionComment true - SwitchToDataHistoryVersion + ViewDataHistory true - - - WebService.MAExchange.Operation.ЗаписатьДанные - Use + EditDataHistoryVersionComment true - - - Catalog.ВидыЦен - Read + SwitchToDataHistoryVersion true @@ -2313,6 +2326,13 @@ InteractiveDeleteMarkedPredefinedData true + + + InformationRegister.МобильныеОтчеты + + Read + true + ReadDataHistory true @@ -2337,13 +2357,6 @@ SwitchToDataHistoryVersion true - - - InformationRegister.МобильныеОтчеты - - Read - true - Update true @@ -2356,30 +2369,6 @@ Edit true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - SessionParameter.ТекущийПользователь @@ -2440,39 +2429,39 @@ true - Update + ReadDataHistory true - View + ReadDataHistoryOfMissingData true - Edit + UpdateDataHistoryVersionComment true - ReadDataHistory + ViewDataHistory true - ReadDataHistoryOfMissingData + EditDataHistoryVersionComment true - UpdateDataHistoryVersionComment + SwitchToDataHistoryVersion true - ViewDataHistory + Update true - EditDataHistoryVersionComment + View true - SwitchToDataHistoryVersion + Edit true @@ -2483,87 +2472,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -2583,6 +2572,10 @@ Configuration.ДемонстрационноеПриложение + + MobileClient + true + UpdateDataBaseConfiguration true @@ -2607,10 +2600,6 @@ WebClient true - - MobileClient - true - ThickClient true @@ -2695,6 +2684,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -2759,6 +2772,13 @@ InputByString true + + + Document.ОперацияПоУчетуТоваров + + Read + true + ReadDataHistory true @@ -2783,13 +2803,6 @@ SwitchToDataHistoryVersion true - - - Document.ОперацияПоУчетуТоваров - - Read - true - Insert true @@ -2854,30 +2867,6 @@ InputByString true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Document.Оплата.Attribute.РасчетныйСчетПоставщика @@ -2919,87 +2908,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -3069,87 +3058,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -3244,6 +3233,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Update true @@ -3256,6 +3269,13 @@ Edit true + + + InformationRegister.СостояниеИсходящихПисем + + Read + true + ReadDataHistory true @@ -3280,13 +3300,6 @@ SwitchToDataHistoryVersion true - - - InformationRegister.СостояниеИсходящихПисем - - Read - true - Update true @@ -3299,6 +3312,13 @@ Edit true + + + Catalog.РасчетныеСчетаКонтрагентов + + Read + true + ReadDataHistory true @@ -3323,13 +3343,6 @@ SwitchToDataHistoryVersion true - - - Catalog.РасчетныеСчетаКонтрагентов - - Read - true - Insert true @@ -3390,42 +3403,42 @@ InteractiveDeleteMarkedPredefinedData true + + + WebService.MAExchange.Operation.ПолучитьОтчет - ReadDataHistory + Use true + + + Document.ПоступлениеДенег - ReadDataHistoryOfMissingData + Read true - UpdateDataHistoryVersionComment + ReadDataHistory true - ViewDataHistory + ReadDataHistoryOfMissingData true - EditDataHistoryVersionComment + UpdateDataHistoryVersionComment true - SwitchToDataHistoryVersion + ViewDataHistory true - - - WebService.MAExchange.Operation.ПолучитьОтчет - Use + EditDataHistoryVersionComment true - - - Document.ПоступлениеДенег - Read + SwitchToDataHistoryVersion true @@ -3492,30 +3505,6 @@ InputByString true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Constant.ПортPOP3 diff --git "a/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" "b/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" index 3f7920494..67f3b858b 100644 --- "a/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" +++ "b/fixtures/demo-configuration/src/Roles/\320\237\321\200\320\276\320\264\320\260\320\262\320\265\321\206/Rights.rights" @@ -9,6 +9,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -69,6 +93,20 @@ InteractiveDeleteMarkedPredefinedData true + + + InformationRegister.КурсыВалют.Resource.Курс + + Edit + false + + + + Catalog.РасчетныеСчета + + Read + true + ReadDataHistory true @@ -93,20 +131,6 @@ SwitchToDataHistoryVersion true - - - InformationRegister.КурсыВалют.Resource.Курс - - Edit - false - - - - Catalog.РасчетныеСчета - - Read - true - Update true @@ -155,6 +179,13 @@ InteractiveDeleteMarkedPredefinedData true + + + Catalog.Контрагенты + + Read + true + ReadDataHistory true @@ -179,13 +210,6 @@ SwitchToDataHistoryVersion true - - - Catalog.Контрагенты - - Read - true - Update true @@ -234,30 +258,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - Catalog.Контрагенты.StandardAttribute.Predefined @@ -496,6 +496,30 @@ Read true + + ReadDataHistory + true + + + ReadDataHistoryOfMissingData + true + + + UpdateDataHistoryVersionComment + true + + + ViewDataHistory + true + + + EditDataHistoryVersionComment + true + + + SwitchToDataHistoryVersion + true + Insert true @@ -548,6 +572,13 @@ InteractiveDeleteMarkedPredefinedData true + + + Catalog.ПочтовыеВложения + + Read + true + ReadDataHistory true @@ -572,13 +603,6 @@ SwitchToDataHistoryVersion true - - - Catalog.ПочтовыеВложения - - Read - true - Insert true @@ -639,6 +663,13 @@ InteractiveDeleteMarkedPredefinedData true + + + InformationRegister.Характеристики + + Read + true + ReadDataHistory true @@ -663,15 +694,15 @@ SwitchToDataHistoryVersion true - - - InformationRegister.Характеристики - Read + View true + + + Catalog.НастройкиТорговогоОборудования - View + Read true @@ -698,15 +729,15 @@ SwitchToDataHistoryVersion true - - - Catalog.НастройкиТорговогоОборудования - Read + View true + + + Catalog.Регионы - View + Read true @@ -733,13 +764,6 @@ SwitchToDataHistoryVersion true - - - Catalog.Регионы - - Read - true - Update true @@ -788,30 +812,6 @@ InteractiveDeleteMarkedPredefinedData true - - ReadDataHistory - true - - - ReadDataHistoryOfMissingData - true - - - UpdateDataHistoryVersionComment - true - - - ViewDataHistory - true - - - EditDataHistoryVersionComment - true - - - SwitchToDataHistoryVersion - true - AccumulationRegister.ТоварныеЗапасы.Dimension.Товар @@ -923,75 +923,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1027,10 +1027,6 @@ Read true - - View - true - ReadDataHistory true @@ -1055,6 +1051,10 @@ SwitchToDataHistoryVersion true + + View + true + Document.Заказ @@ -1062,10 +1062,6 @@ Read true - - View - true - ReadDataHistory true @@ -1090,6 +1086,10 @@ SwitchToDataHistoryVersion true + + View + true + Document.ПриходТовара @@ -1097,10 +1097,6 @@ Read true - - View - true - ReadDataHistory true @@ -1125,6 +1121,10 @@ SwitchToDataHistoryVersion true + + View + true + Constant.SSLSMTP @@ -1159,87 +1159,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1269,75 +1269,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1367,75 +1367,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1493,75 +1493,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1666,75 +1666,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -1796,10 +1796,6 @@ Read true - - View - true - ReadDataHistory true @@ -1824,6 +1820,10 @@ SwitchToDataHistoryVersion true + + View + true + CommonForm.НастройкаПочты @@ -1951,75 +1951,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -2037,75 +2037,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -2115,10 +2115,6 @@ Read true - - View - true - ReadDataHistory true @@ -2143,6 +2139,10 @@ SwitchToDataHistoryVersion true + + View + true + SessionParameter.ТекущийПользователь @@ -2202,10 +2202,6 @@ Read true - - View - true - ReadDataHistory true @@ -2230,6 +2226,10 @@ SwitchToDataHistoryVersion true + + View + true + Catalog.ВходящиеПисьма @@ -2238,87 +2238,87 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - View + ViewDataHistory true - InteractiveInsert + EditDataHistoryVersionComment true - Edit + SwitchToDataHistoryVersion true - InteractiveDelete + Insert true - InteractiveSetDeletionMark + Update true - InteractiveClearDeletionMark + Delete true - InteractiveDeleteMarked + View true - InputByString + InteractiveInsert true - InteractiveDeletePredefinedData + Edit true - InteractiveSetDeletionMarkPredefinedData + InteractiveDelete true - InteractiveClearDeletionMarkPredefinedData + InteractiveSetDeletionMark true - InteractiveDeleteMarkedPredefinedData + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InputByString true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -2331,6 +2331,10 @@ Configuration.ДемонстрационноеПриложение + + MobileClient + true + UpdateDataBaseConfiguration true @@ -2355,10 +2359,6 @@ WebClient true - - MobileClient - true - ThickClient true @@ -2428,91 +2428,91 @@ true - Insert + ReadDataHistory true - Update + ReadDataHistoryOfMissingData true - Delete + UpdateDataHistoryVersionComment true - Posting + ViewDataHistory true - UndoPosting + EditDataHistoryVersionComment true - View + SwitchToDataHistoryVersion true - InteractiveInsert + Insert true - Edit + Update true - InteractiveSetDeletionMark + Delete true - InteractiveClearDeletionMark + Posting true - InteractiveDeleteMarked + UndoPosting true - InteractivePosting + View true - InteractivePostingRegular + InteractiveInsert true - InteractiveUndoPosting + Edit true - InteractiveChangeOfPosted + InteractiveSetDeletionMark true - InputByString + InteractiveClearDeletionMark true - ReadDataHistory + InteractiveDeleteMarked true - ReadDataHistoryOfMissingData + InteractivePosting true - UpdateDataHistoryVersionComment + InteractivePostingRegular true - ViewDataHistory + InteractiveUndoPosting true - EditDataHistoryVersionComment + InteractiveChangeOfPosted true - SwitchToDataHistoryVersion + InputByString true @@ -2529,10 +2529,6 @@ Read true - - View - true - ReadDataHistory true @@ -2557,6 +2553,10 @@ SwitchToDataHistoryVersion true + + View + true + Constant.АдресPOP3Сервера @@ -2584,75 +2584,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -2708,75 +2708,75 @@ true - Update + ReadDataHistory true - Delete + ReadDataHistoryOfMissingData true - View + UpdateDataHistoryVersionComment true - Edit + ViewDataHistory true - InteractiveDelete + EditDataHistoryVersionComment true - InteractiveSetDeletionMark + SwitchToDataHistoryVersion true - InteractiveClearDeletionMark + Update true - InteractiveDeleteMarked + Delete true - InteractiveDeletePredefinedData + View true - InteractiveSetDeletionMarkPredefinedData + Edit true - InteractiveClearDeletionMarkPredefinedData + InteractiveDelete true - InteractiveDeleteMarkedPredefinedData + InteractiveSetDeletionMark true - ReadDataHistory + InteractiveClearDeletionMark true - ReadDataHistoryOfMissingData + InteractiveDeleteMarked true - UpdateDataHistoryVersionComment + InteractiveDeletePredefinedData true - ViewDataHistory + InteractiveSetDeletionMarkPredefinedData true - EditDataHistoryVersionComment + InteractiveClearDeletionMarkPredefinedData true - SwitchToDataHistoryVersion + InteractiveDeleteMarkedPredefinedData true @@ -2843,39 +2843,39 @@ true - Update + ReadDataHistory true - View + ReadDataHistoryOfMissingData true - Edit + UpdateDataHistoryVersionComment true - ReadDataHistory + ViewDataHistory true - ReadDataHistoryOfMissingData + EditDataHistoryVersionComment true - UpdateDataHistoryVersionComment + SwitchToDataHistoryVersion true - ViewDataHistory + Update true - EditDataHistoryVersionComment + View true - SwitchToDataHistoryVersion + Edit true @@ -2886,39 +2886,39 @@ true - Update + ReadDataHistory true - View + ReadDataHistoryOfMissingData true - Edit + UpdateDataHistoryVersionComment true - ReadDataHistory + ViewDataHistory true - ReadDataHistoryOfMissingData + EditDataHistoryVersionComment true - UpdateDataHistoryVersionComment + SwitchToDataHistoryVersion true - ViewDataHistory + Update true - EditDataHistoryVersionComment + View true - SwitchToDataHistoryVersion + Edit true @@ -2935,10 +2935,6 @@ Read true - - View - true - ReadDataHistory true @@ -2963,6 +2959,10 @@ SwitchToDataHistoryVersion true + + View + true + Catalog.ХранимыеФайлы.Attribute.ИмяФайла @@ -2977,10 +2977,6 @@ Read true - - View - true - ReadDataHistory true @@ -3005,6 +3001,10 @@ SwitchToDataHistoryVersion true + + View + true + Constant.ПортPOP3 diff --git "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" index 03484708f..a6085ec7f 100644 --- "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" +++ "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\270/Form.form" @@ -473,7 +473,6 @@ ПриСозданииНаСервере true - Vertical true true true @@ -574,7 +573,6 @@ ЗагрузитьВыполнить - Auto КлючОбъекта diff --git "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" index bbf311155..5b76b9294 100644 --- "a/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" +++ "b/fixtures/demo-configuration/src/SettingsStorages/\320\245\321\200\320\260\320\275\320\270\320\273\320\270\321\211\320\265\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\276\320\262\320\236\321\202\321\207\320\265\321\202\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\276\321\205\321\200\320\260\320\275\320\265\320\275\320\270\321\217/Form.form" @@ -549,7 +549,6 @@ DefaultButton true - Vertical true true true @@ -662,7 +661,6 @@ СохранитьВыполнить - Auto КлючОбъекта diff --git "a/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/CommandInterface.cmi" "b/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/CommandInterface.cmi" index 119ac75ec..f28f36a45 100644 --- "a/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/CommandInterface.cmi" +++ "b/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/CommandInterface.cmi" @@ -86,15 +86,6 @@ - - Report.ДинамикаПродаж.StandardCommand.Open - - true - - Role.Продавец - - - Report.ОстаткиТоваровНаСкладах.StandardCommand.Open @@ -151,7 +142,6 @@ ActionsPanelReports - Report.ДинамикаПродаж.StandardCommand.Open Report.ОстаткиТоваровНаСкладах.StandardCommand.Open Report.ОтчетПоВзаиморасчетам.StandardCommand.Open Report.ВзаимосвязьПродажТоваров.StandardCommand.Open diff --git "a/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/\320\237\321\200\320\276\320\264\320\260\320\266\320\270.mdo" "b/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/\320\237\321\200\320\276\320\264\320\260\320\266\320\270.mdo" index abea9c6fb..a35acf9d5 100644 --- "a/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/\320\237\321\200\320\276\320\264\320\260\320\266\320\270.mdo" +++ "b/fixtures/demo-configuration/src/Subsystems/\320\237\321\200\320\276\320\264\320\260\320\266\320\270/\320\237\321\200\320\276\320\264\320\260\320\266\320\270.mdo" @@ -11,17 +11,16 @@ CommonPicture.ПодсистемаПродажи - Catalog.Товары + AccumulationRegister.Продажи + AccumulationRegister.ТоварныеЗапасы Catalog.Контрагенты Catalog.РасчетныеСчетаКонтрагентов - Document.РасходТовара - Report.ОстаткиТоваровНаСкладах - Report.ДинамикаПродаж - Report.ОтчетПоВзаиморасчетам - AccumulationRegister.ТоварныеЗапасы - AccumulationRegister.Продажи + Catalog.Товары Document.Заказ - Enum.СостоянияЗаказов + Document.РасходТовара DocumentJournal.ДокументыПродаж + Enum.СостоянияЗаказов Report.ВзаимосвязьПродажТоваров + Report.ОстаткиТоваровНаСкладах + Report.ОтчетПоВзаиморасчетам diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 6219a504a..01240398c 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -220,7 +220,7 @@ .Свойство("[3].Второй[-1]").Равно(2) .Свойство("[3].Второй[0]").Равно(2); - Ссылка = Ютест.Данные().СоздатьЭлемент("Справочники.Товары"); + Ссылка = ЮТест.Данные().СоздатьЭлемент("Справочники.Товары"); Объект = Новый Соответствие(); Объект.Вставить(Ссылка, 1); ЮТУтверждения.Что(Объект, "Проверка свойства соответствия") @@ -556,9 +556,8 @@ Исключение Ошибка = ИнформацияОбОшибке(); КонецПопытки; - - - ПредставлениеЗначения = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); + + ПредставлениеЗначения = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Неопределено")); ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Ожидали, что проверяемое значение `%1` не равно `%1`, но это не так", ПредставлениеЗначения)); КонецПроцедуры @@ -1040,7 +1039,7 @@ КонецПопытки; ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Строка")); - ПроверитьОшибкуУтверждения(Ошибка, + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Пустая строка: ожидали, что проверяемое значение `%1` не существует, но это не так", ПредставлениеЗначение)); ПроверитьДанныеОшибкиСравнения("", Неопределено); @@ -1090,7 +1089,7 @@ КонецПопытки; ПредставлениеЗначение = СтрШаблон("<Пустое значение, Тип: %1>", Тип("Строка")); - ПроверитьОшибкуУтверждения(Ошибка, + ПроверитьОшибкуУтверждения(Ошибка, СтрШаблон("Пустая строка: ожидали, что проверяемое значение `%1` является неопределено, но это не так", ПредставлениеЗначение)); Попытка diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index a7ffb2071..d57b71f24 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -9,7 +9,6 @@ - true Расш1_ 8.3.10 From 08d4fc1a9d95905c7cc6c5f06ae0f52eca1658db Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 30 Aug 2024 11:53:04 +0300 Subject: [PATCH 58/86] =?UTF-8?q?ci(test):=20=D0=9F=D0=BE=D0=B4=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=BE=20=D1=80=D0=B0=D1=81=D1=88?= =?UTF-8?q?=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=20=D0=B4=D1=8B?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2=D1=8B=D0=BC=D0=B8=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-release.yml | 8 +++++++ .../step-build-artifacts-windows.yml | 12 +++++++++-- .github/workflows/step-export-xml.yml | 21 ++++++++++++++++++- .github/workflows/step-run-tests.yml | 18 ++++++++++------ .gitignore | 3 ++- 5 files changed, 52 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index d53c25614..7b9142fc2 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -57,10 +57,18 @@ jobs: run: ibcmd infobase config import --db-path=file-db --extension=YAXUNIT export/yaxunit timeout-minutes: 5 + - name: Импорт Smoke из исходников + run: ibcmd infobase config import --db-path=file-db --extension=Smoke export/smoke + timeout-minutes: 5 + - name: Сохрание расширения YAxUnit run: ibcmd infobase config save --db-path=file-db --extension=YAXUNIT YAxUnit-${{ needs.export_to_designer.outputs.yaxunit_version }}.cfe timeout-minutes: 5 + - name: Сохрание расширения Smoke + run: ibcmd infobase config save --db-path=file-db --extension=Smoke Smoke-${{ needs.export_to_designer.outputs.smoke_version }}.cfe + timeout-minutes: 5 + - name: Создание черновика релиза ${{ needs.export_to_designer.outputs.yaxunit_version }} uses: softprops/action-gh-release@v2 if: ${{ success() }} diff --git a/.github/workflows/step-build-artifacts-windows.yml b/.github/workflows/step-build-artifacts-windows.yml index ad2fe911d..74532cd91 100644 --- a/.github/workflows/step-build-artifacts-windows.yml +++ b/.github/workflows/step-build-artifacts-windows.yml @@ -64,6 +64,10 @@ jobs: run: ibcmd infobase config import --db-path=file-db --extension=tests export\tests timeout-minutes: 5 + - name: Импорт дымовых тестов из исходников + run: ibcmd infobase config import --db-path=file-db --extension=Smoke export\smoke + timeout-minutes: 5 + - name: Сохрание расширения YAxUnit run: ibcmd infobase config save --db-path=file-db --extension=YAXUNIT binary\yaxunit.cfe timeout-minutes: 5 @@ -71,11 +75,15 @@ jobs: - name: Сохрание расширения с тестами run: ibcmd infobase config save --db-path=file-db --extension=tests binary\tests.cfe timeout-minutes: 5 - + + - name: Сохрание расширения с дымовыми тестами + run: ibcmd infobase config save --db-path=file-db --extension=Smoke binary\smoke.cfe + timeout-minutes: 5 + - name: Сохрание тестовой конфигурации run: ibcmd infobase config save --db-path=file-db binary\configuration.cf timeout-minutes: 5 - + - name: Публикация артефактов uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/step-export-xml.yml b/.github/workflows/step-export-xml.yml index 52e2735f0..70466c5f3 100644 --- a/.github/workflows/step-export-xml.yml +++ b/.github/workflows/step-export-xml.yml @@ -17,6 +17,9 @@ on: outputs: yaxunit_version: value: ${{ jobs.export.outputs.yaxunit_version }} + + smoke_version: + value: ${{ jobs.export.outputs.smoke_version }} concurrency: group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.number }}-export @@ -28,6 +31,7 @@ jobs: runs-on: ubuntu-latest outputs: yaxunit_version: ${{ steps.extract_version.outputs.version }} + smoke_version: ${{ steps.extract_smoke_version.outputs.version }} steps: - name: Извлечение исходников PR @@ -41,12 +45,18 @@ jobs: if: github.event_name == 'push' uses: actions/checkout@v4 - - name: Извлечение версии проекта + - name: Извлечение версии YAxUnit uses: ./.github/actions/extract-version with: path: ./exts/yaxunit/src id: extract_version + - name: Извлечение версии Smoke + uses: ./.github/actions/extract-version + with: + path: ./exts/yaxunit/src + id: extract_smoke_version + - name: Установка 1C:EDT uses: alkoleft/onec-setup-build-env-action@develop with: @@ -87,6 +97,15 @@ jobs: timeout: 5 timeout-minutes: 10 + - name: Ковертация исходников дымовых тестов + uses: alkoleft/onec-edtcli-command-action@main + with: + export: true + from: exts/smoke + to: export/smoke + timeout: 5 + timeout-minutes: 10 + - name: Упаковка исходников в архив run: | cd export diff --git a/.github/workflows/step-run-tests.yml b/.github/workflows/step-run-tests.yml index ae2cc57ea..87ace1021 100644 --- a/.github/workflows/step-run-tests.yml +++ b/.github/workflows/step-run-tests.yml @@ -78,18 +78,24 @@ jobs: ibcmd infobase create --db-path=file-db --load=binary/configuration.cf --apply --force timeout-minutes: 5 - - name: Загрузка расширения YAxUnit - uses: alkoleft/yaxunit/.github/actions/load-extension@develop - with: - name: YAXUNIT - path: binary/yaxunit.cfe - - name: Загрузка расширения c тестами uses: alkoleft/yaxunit/.github/actions/load-extension@develop with: name: tests path: binary/tests.cfe + - name: Загрузка расширения c дымовыми тестами + uses: alkoleft/yaxunit/.github/actions/load-extension@develop + with: + name: Smoke + path: binary/smoke.cfe + + - name: Загрузка расширения YAxUnit + uses: alkoleft/yaxunit/.github/actions/load-extension@develop + with: + name: YAXUNIT + path: binary/yaxunit.cfe + - name: Создание файла конфигурации тестирования uses: DamianReeves/write-file-action@master with: diff --git a/.gitignore b/.gitignore index f1aff8215..6957df178 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,5 @@ tests/.settings/* #wsdl /fixtures/wsdl documentation/api/ -documentation/bsldoc.jar +*.jar +/tools/**/distr/ From 689baa05495e0896ece83e907fe776fe0b615c09 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 2 Sep 2024 00:44:48 +0300 Subject: [PATCH 59/86] =?UTF-8?q?tests:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BF=D0=B0=D0=B4=D0=B0=D1=8E?= =?UTF-8?q?=D1=89=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 69 +++++-------------- .../Module.bsl" | 4 +- .../Module.bsl" | 2 +- 3 files changed, 21 insertions(+), 54 deletions(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 69ba61353..44daefe11 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -1,54 +1,31 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + #Область СлужебныйПрограммныйИнтерфейс Процедура ИсполняемыеСценарии() Экспорт ЮТТесты - .ДобавитьТест("ИсключитьТест") .ДобавитьТест("ЗагружаемаяНастройкаДымовогоТеста") ; КонецПроцедуры -Процедура ИсключитьТест() Экспорт - - Настройки = Новый Структура("Использовать, Справочник", Истина, Ложь); - - УстановитьНастройки(Настройки); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник")) - .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура")) - .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Документ")) - .ЭтоЛожь(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Документ.ПКО")) - .ЭтоЛожь(); - - Настройки.Справочник = Новый Структура("Исключения", "Номенклатура"); - УстановитьНастройки(Настройки); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник")) - .ЭтоЛожь(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура")) - .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура_Удалить")) - .ЭтоЛожь(); - Настройки.Справочник.Исключения = ЮТКоллекции.ЗначениеВМассиве("*Удалить"); - УстановитьНастройки(Настройки); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура_Удалить")) - .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Удалить")) - .ЭтоЛожь(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Удалить_Номенклатура")) - .ЭтоЛожь(); - Настройки = Новый Структура("Использовать, Исключения", Истина, ЮТКоллекции.ЗначениеВМассиве("Удалить*")); - УстановитьНастройки(Настройки); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Документ.Удалить_Номенклатура")) - .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Удалить_Справочник.Номенклатура")) - .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ИсключитьТест("Справочник.Номенклатура_Удалить")) - .ЭтоЛожь(); -КонецПроцедуры - Процедура ЗагружаемаяНастройкаДымовогоТеста() Экспорт ПараметрыЗапуска = Новый Структура; @@ -105,13 +82,3 @@ КонецПроцедуры #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура УстановитьНастройки(Настройки) - - ЮТДымовыеТестыСлужебныйКлиентСервер.Инициализация(Новый Структура("ДымовыеТесты", Настройки)); - -КонецПроцедуры - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 055a34617..de62d74f8 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -78,13 +78,13 @@ ПолноеИмя = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".github")).ПолноеИмя; - ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмя), "Каталог проекта не доступен") + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмя), "Каталог проекта не доступен: " + ПолноеИмя) .ЭтоИстина(); ЮТест.ОжидаетЧто(ЮТФайлы.ЭтоКаталог(ПолноеИмя), "Это не каталог") .ЭтоИстина(); - ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(ПолноеИмя, "workflows", "main-build.yml")), "Файл проекта не доступен") + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(ПолноеИмя, "workflows", "build-release.yml")), "Файл проекта не доступен") .ЭтоИстина(); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 026542b1f..d531a1aa5 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -89,7 +89,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(35); + .ИмеетДлину(39); КонецПроцедуры From e0cbc70a18fe2e4e2482c83ffb6ca0fbab9a2ed0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 30 Aug 2024 11:37:55 +0300 Subject: [PATCH 60/86] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D1=83=D0=B1=D0=BA=D0=BE=D0=BD=D1=82=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/step-run-tests.yml | 2 +- .../Module.bsl" | 16 +++- .../Module.bsl" | 96 ------------------- ...0\236\320\261\321\211\320\270\320\271.mdo" | 11 --- .../Module.bsl" | 93 +++++++++++++++++- .../Module.bsl" | 2 +- tests/src/Configuration/Configuration.mdo | 1 - 7 files changed, 105 insertions(+), 116 deletions(-) delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" diff --git a/.github/workflows/step-run-tests.yml b/.github/workflows/step-run-tests.yml index 87ace1021..f65bf720a 100644 --- a/.github/workflows/step-run-tests.yml +++ b/.github/workflows/step-run-tests.yml @@ -66,7 +66,7 @@ jobs: with: type: onec onec_version: ${{ inputs.v8_version }} - cache: false + cache: ${{runner.os == 'Windows'}} env: ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }} ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }} diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index d42428b7d..5494d0d2a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -35,7 +35,11 @@ Значение = Объект; Для Каждого Часть Из Путь Цикл - Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда + ТипЗначения = ТипЗнч(Значение); + ТипПоля = ТипЗнч(Часть); + ИзСоответствия = ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения); + + Если ТипЗначения = Тип("ХранилищеЗначения") Тогда #Если ВебКлиент Или ТонкийКлиент Тогда Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение); #Иначе @@ -43,11 +47,17 @@ #КонецЕсли КонецЕсли; - Если ТипЗнч(Часть) = Тип("Число") И Часть < 0 И ТипЗнч(Значение) <> Тип("Соответствие") Тогда + Если ТипПоля = Тип("Число") И Часть < 0 И НЕ ИзСоответствия Тогда Часть = Значение.Количество() + Часть; КонецЕсли; - Значение = Значение[Часть]; + Если ТипПоля = Тип("Строка") И НЕ ИзСоответствия Тогда + Прокси = Новый Структура(Часть); + ЗаполнитьЗначенияСвойств(Прокси, Значение); + Значение = Прокси[Часть]; + Иначе + Значение = Значение[Часть]; + КонецЕсли; КонецЦикла; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" deleted file mode 100644 index 98f2def77..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ /dev/null @@ -1,96 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// Copyright 2021-2024 BIA-Technologies Limited Liability Company -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//©///////////////////////////////////////////////////////////////////////////©// - -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ЮТТесты - .ДобавитьТест("Пауза") - .ДобавитьТест("ВывестиВКонсоль") - .ДобавитьСерверныйТест("Менеджер") - .ДобавитьТест("ЗначениеСвойства") - ; - -КонецПроцедуры - -Процедура Пауза() Экспорт - - Начало = ТекущаяУниверсальнаяДатаВМиллисекундах(); - ЮТОбщий.Пауза(1); - ЮТОбщий.Пауза(1); - ЮТОбщий.Пауза(1); - Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало; - - ЮТест.ОжидаетЧто(Дельта) - .МеждуВключаяГраницы(3000, 3999); - -КонецПроцедуры - -Процедура ВывестиВКонсоль() Экспорт - - ЮТОбщий.ВывестиВКонсоль(ТекущаяДата()); - -КонецПроцедуры - -#Если Сервер Тогда -Процедура Менеджер() Экспорт - - Варианты = ЮТест.Варианты("Параметр, Результат") - .Добавить("Справочник.Товары", Справочники.Товары) - .Добавить("Справочники.Товары", Справочники.Товары) - .Добавить(Справочники.Товары, Справочники.Товары) - .Добавить(Справочники.Товары.ПустаяСсылка(), Справочники.Товары) - .Добавить(Тип("СправочникМенеджер.Товары"), Справочники.Товары) - .Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары) - .Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары) - .Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты) - ; - - Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - - Описание = СтрШаблон("%1 (%2)", Вариант.Параметр, ТипЗнч(Вариант.Параметр)); - ЮТест.ОжидаетЧто(ЮТОбщий.Менеджер(Вариант.Параметр), Описание) - .Равно(Вариант.Результат); - - КонецЦикла; - -КонецПроцедуры -#КонецЕсли - -Процедура ЗначениеСвойства() Экспорт - - Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); - Структура = Новый Структура("Число, Массив", 1, Массив); - - Варианты = ЮТест.Варианты("Значение, Свойство, Результат") - .Добавить(Массив, 0, 1) - .Добавить(Массив, -1, 3) - .Добавить(Массив, "[0]", 1) - .Добавить(Массив, 1, 2) - .Добавить(Структура, "Число", 1) - .Добавить(Структура, "Массив[0]", 1) - ; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" deleted file mode 100644 index 4fe6752c0..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271.mdo" +++ /dev/null @@ -1,11 +0,0 @@ - - - ОМ_Общий - - ru - Общий - - true - true - true - diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index cdb9adb86..a04c2421d 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -21,11 +21,76 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты + .ДобавитьТест("Пауза") + .ДобавитьТест("ВывестиВКонсоль") + .ДобавитьТест("ЗначениеСвойства") .ДобавитьТест("ОписаниеТиповЛюбаяСсылка") + .ДобавитьСерверныйТест("Менеджер") + .ДобавитьСерверныйТест("ЗначениеСвойства_Субконто") ; КонецПроцедуры +Процедура Пауза() Экспорт + + Начало = ТекущаяУниверсальнаяДатаВМиллисекундах(); + ЮТОбщий.Пауза(1); + ЮТОбщий.Пауза(1); + ЮТОбщий.Пауза(1); + Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало; + + ЮТест.ОжидаетЧто(Дельта) + .МеждуВключаяГраницы(3000, 3999); + +КонецПроцедуры + +Процедура ВывестиВКонсоль() Экспорт + + ЮТОбщий.ВывестиВКонсоль(ТекущаяДата()); + +КонецПроцедуры + +#Если Сервер Тогда +Процедура Менеджер() Экспорт + + Варианты = ЮТест.Варианты("Параметр, Результат") + .Добавить("Справочник.Товары", Справочники.Товары) + .Добавить("Справочники.Товары", Справочники.Товары) + .Добавить(Справочники.Товары, Справочники.Товары) + .Добавить(Справочники.Товары.ПустаяСсылка(), Справочники.Товары) + .Добавить(Тип("СправочникМенеджер.Товары"), Справочники.Товары) + .Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары) + .Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары) + .Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты) + ; + + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл + + Описание = СтрШаблон("%1 (%2)", Вариант.Параметр, ТипЗнч(Вариант.Параметр)); + ЮТест.ОжидаетЧто(ЮТОбщий.Менеджер(Вариант.Параметр), Описание) + .Равно(Вариант.Результат); + + КонецЦикла; + +КонецПроцедуры +#КонецЕсли + +Процедура ЗначениеСвойства() Экспорт + + Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3); + Структура = Новый Структура("Число, Массив", 1, Массив); + + Варианты = ЮТест.Варианты("Значение, Свойство, Результат") + .Добавить(Массив, 0, 1) + .Добавить(Массив, -1, 3) + .Добавить(Массив, "[0]", 1) + .Добавить(Массив, 1, 2) + .Добавить(Структура, "Число", 1) + .Добавить(Структура, "Массив[0]", 1) + ; + +КонецПроцедуры + Процедура ОписаниеТиповЛюбаяСсылка() Экспорт ЛюбаяСсылка = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); @@ -36,8 +101,30 @@ КонецПроцедуры -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции +#Если Сервер Тогда +Процедура ЗначениеСвойства_Субконто() Экспорт + + Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты); + Счет = ЮТест.Данные().КонструкторОбъекта("ПланыСчетов.Основной") + .Установить("Валютный", Истина) + .Установить("Количественный", Истина) + .ТабличнаяЧасть("ВидыСубконто") + .ДобавитьСтроку() + .Установить("ВидСубконто", ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконто.Валюта")) + .Фикция("Суммовой") + .Установить("Валютный", Истина) + .Установить("Количественный", Истина) + .Записать(); + + Набор = РегистрыБухгалтерии.Основной.СоздатьНаборЗаписей(); + Запись = Набор.Добавить(); + Запись.Счет = Счет; + Запись.Субконто.Валюта = Валюта; + + ЮТест.ОжидаетЧто(Запись) + .Свойство("Субконто.Валюта").Равно(Валюта); + +КонецПроцедуры +#КонецЕсли #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d531a1aa5..f3ed434e4 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -89,7 +89,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(39); + .ИмеетДлину(38); КонецПроцедуры diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index d57b71f24..efbd28911 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -34,7 +34,6 @@ CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение CommonModule.ОМ_МокитоСлужебный - CommonModule.ОМ_Общий CommonModule.ОМ_ОшибкаЗагрузкиСценариев CommonModule.ОМ_ЮТДымовыеТестыСлужебныйВызовСервера CommonModule.ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер From a4c8c0b10b7e1de8e89973363250a702a2af698e Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 30 Aug 2024 17:12:01 +0300 Subject: [PATCH 61/86] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BF=D1=80=D0=B5=D0=B4=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D1=8B=20=D0=9C=D0=B5=D0=B6=D0=B4=D1=83*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 88 +++++- .../Module.bsl" | 51 ++-- .../Module.bsl" | 68 ++++- .../Module.bsl" | 255 ++++++++---------- 4 files changed, 299 insertions(+), 163 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index 92afa69f1..357beb995 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -326,6 +326,78 @@ КонецФункции +// Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. +// +// Проверяемое значение может находится на границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала) Экспорт + + Предикат = ДобавитьПредикат(Выражения().МеждуВключаяГраницы, НачалоИнтервала); + Предикат.Вставить("ОкончаниеИнтервала", ОкончаниеИнтервала); + Возврат ЮТПредикаты; + +КонецФункции + +// Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. +// +// Проверяемое значение не может находится на границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуИсключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала) Экспорт + + Предикат = ДобавитьПредикат(Выражения().МеждуИсключаяГраницы, НачалоИнтервала); + Предикат.Вставить("ОкончаниеИнтервала", ОкончаниеИнтервала); + Возврат ЮТПредикаты; + +КонецФункции + +// Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. +// +// Проверяемое значение может находится на начальной границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуВключаяНачалоГраницы(НачалоИнтервала, ОкончаниеИнтервала) Экспорт + + Предикат = ДобавитьПредикат(Выражения().МеждуВключаяНачалоГраницы, НачалоИнтервала); + Предикат.Вставить("ОкончаниеИнтервала", ОкончаниеИнтервала); + Возврат ЮТПредикаты; + +КонецФункции + +// Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. +// +// Проверяемое значение может находится на конечной границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуВключаяОкончаниеГраницы(НачалоИнтервала, ОкончаниеИнтервала) Экспорт + + Предикат = ДобавитьПредикат(Выражения().МеждуВключаяОкончаниеГраницы, НачалоИнтервала); + Предикат.Вставить("ОкончаниеИнтервала", ОкончаниеИнтервала); + Возврат ЮТПредикаты; + +КонецФункции + // Возвращает набор сформированных утверждений. // // Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов @@ -341,6 +413,10 @@ КонецФункции +// Возвращает структуру-перечисление с типами выражений предикатов +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - Выражения Функция Выражения() Экспорт Выражения = Новый Структура; @@ -363,7 +439,12 @@ Выражения.Вставить("СодержитСтрокуПоШаблону", "СодержитСтрокуПоШаблону"); Выражения.Вставить("НеСодержитСтрокуПоШаблону", "НеСодержитСтрокуПоШаблону"); Выражения.Вставить("ВСписке", "ВСписке"); + Выражения.Вставить("МеждуВключаяГраницы", "МеждуВключаяГраницы"); + Выражения.Вставить("МеждуИсключаяГраницы", "МеждуИсключаяГраницы"); + Выражения.Вставить("МеждуВключаяНачалоГраницы", "МеждуВключаяНачалоГраницы"); + Выражения.Вставить("МеждуВключаяОкончаниеГраницы", "МеждуВключаяОкончаниеГраницы"); + //@skip-check constructor-function-return-section Возврат Новый ФиксированнаяСтруктура(Выражения); КонецФункции @@ -378,7 +459,6 @@ // Ключ - Строка - Имя реквизита // Значение - Произвольный - Значение, которому должен быть равен реквизит // -// // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания Функция Инициализировать(Условия = Неопределено) Экспорт @@ -428,13 +508,15 @@ КонецФункции -Процедура ДобавитьПредикат(ВидСравнения, Значение) +Функция ДобавитьПредикат(ВидСравнения, Значение) Контекст = Контекст(); Предикат = ЮТФабрика.ВыражениеПредиката(ВидСравнения, Контекст.ИмяРеквизита, Значение); Контекст.Предикаты.Добавить(Предикат); -КонецПроцедуры + Возврат Предикат; + +КонецФункции #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index bdfd835c2..5b567dd6d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -100,6 +100,7 @@ Представления = Новый Массив(); Предикаты = НаборПредикатов(Предикаты); ИмяРеквизита = Неопределено; + Для Каждого Выражение Из Предикаты Цикл НеДобавлятьИмяРеквизита = ИмяРеквизита = Выражение.ИмяРеквизита; ИмяРеквизита = Выражение.ИмяРеквизита; @@ -110,6 +111,27 @@ КонецФункции +Функция ПредставлениеПредиката(ВыражениеПредиката, ШаблонСвойства, НеДобавлятьИмяРеквизита) Экспорт + + Если НеДобавлятьИмяРеквизита ИЛИ ВыражениеПредиката.ИмяРеквизита = Неопределено Тогда + ПроверяемоеЗначение = ""; + Иначе + ПроверяемоеЗначение = СтрШаблон(ШаблонСвойства, ВыражениеПредиката.ИмяРеквизита) + " "; + КонецЕсли; + + Шаблон = ШаблонВыражения(ВыражениеПредиката.ВидСравнения); + Если ЭтоПредикатМежду(ВыражениеПредиката) Тогда + Выражение = СтрШаблон(Шаблон, ВыражениеПредиката.Значение, ВыражениеПредиката.ОкончаниеИнтервала); + ИначеЕсли СтрНайти(Шаблон, "%1") Тогда + Выражение = СтрШаблон(Шаблон, ЮТСообщенияСлужебный.ПредставлениеЗначения(ВыражениеПредиката.Значение)); + Иначе + Выражение = Шаблон; + КонецЕсли; + + Возврат СтрШаблон("%1%2", ПроверяемоеЗначение, Выражение); + +КонецФункции + Функция ШаблонВыражения(Знач Выражение) Экспорт Отрицание = СтрНачинаетсяС(Выражение, "Не"); @@ -144,6 +166,14 @@ Шаблон = "содержит подстроку соответствующую шаблону %1"; ИначеЕсли Выражение = Выражения.ВСписке Тогда Шаблон = "в списке %1"; + ИначеЕсли Выражение = Выражения.МеждуВключаяГраницы Тогда + Шаблон = "находится в интервале [%1; %2]"; + ИначеЕсли Выражение = Выражения.МеждуИсключаяГраницы Тогда + Шаблон = "находится в интервале (%1; %2)"; + ИначеЕсли Выражение = Выражения.МеждуВключаяНачалоГраницы Тогда + Шаблон = "находится в интервале [%1; %2)"; + ИначеЕсли Выражение = Выражения.МеждуВключаяОкончаниеГраницы Тогда + Шаблон = "находится в интервале (%1; %2]"; Иначе ВызватьИсключение "Не описан шаблон сообщения для выражения предиката " + Выражение; КонецЕсли; @@ -193,25 +223,16 @@ КонецФункции -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция ПредставлениеПредиката(ВыражениеПредиката, ШаблонСвойства, НеДобавлятьИмяРеквизита) +Функция ЭтоПредикатМежду(ВыражениеПредиката) Экспорт - Если НеДобавлятьИмяРеквизита ИЛИ ВыражениеПредиката.ИмяРеквизита = Неопределено Тогда - ПроверяемоеЗначение = ""; - Иначе - ПроверяемоеЗначение = СтрШаблон(ШаблонСвойства, ВыражениеПредиката.ИмяРеквизита) + " "; - КонецЕсли; - - Выражение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонВыражения(ВыражениеПредиката.ВидСравнения), - ВыражениеПредиката.Значение); - - Возврат СтрШаблон("%1%2", ПроверяемоеЗначение, Выражение); + Возврат СтрНачинаетсяС(ВыражениеПредиката.ВидСравнения, "Между") Или СтрНачинаетсяС(ВыражениеПредиката.ВидСравнения, "НеМежду"); КонецФункции +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция ЭтоПредикатОбщийМодуль(ТипПредикатов, Предикаты) Возврат ТипПредикатов = Тип("ОбщийМодуль") И Предикаты = ЮТПредикаты; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index adbdf3349..3c9ce0296 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -485,6 +485,10 @@ Результат = ПроверитьВСписке(СтатусПроверки, ПроверяемоеЗначение, ОжидаемоеЗначение, ПараметрыПроверки); + ИначеЕсли ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикатМежду(Выражение) Тогда + + Результат = ПроверитьМежду(СтатусПроверки, ПроверяемоеЗначение, Выражение, ВидСравненияВыражения, ПараметрыПроверки); + Иначе ВызватьИсключение СтрШаблон("Неизвестное выражение предиката `%1`", Выражение.ВидСравнения); @@ -500,11 +504,23 @@ Результат = НЕ Результат; КонецЕсли; - ОбработатьРезультатСравнения(Результат, СтатусПроверки, ПараметрыПроверки, ПроверяемоеЗначение); + ОбработатьРезультатПроверкиПредиката(Результат, СтатусПроверки, Выражение, ПараметрыПроверки, ПроверяемоеЗначение); КонецПроцедуры -Процедура ОбработатьРезультатСравнения(Результат, РезультатПроверки, ПараметрыПроверки, ФактическоеЗначение) +Процедура ОбработатьРезультатПроверкиПредиката(Результат, СтатусПроверки, Предикат, ПараметрыПроверки, ФактическоеЗначение) + + Если Результат Тогда + Возврат; + КонецЕсли; + + Сообщение = ЮТПредикатыСлужебныйКлиентСервер.ПредставлениеПредиката(Предикат, Неопределено, Истина); + + ДобавитьОшибкуСравненияКРезультатуПроверки(СтатусПроверки, Сообщение, ПараметрыПроверки, ФактическоеЗначение); + +КонецПроцедуры + +Процедура ОбработатьРезультатСравнения(Результат, СтатусПроверки, ПараметрыПроверки, ФактическоеЗначение) Если Результат Тогда Возврат; @@ -513,10 +529,16 @@ ШаблонСообщения = ЮТПредикатыСлужебныйКлиентСервер.ШаблонВыражения(ПараметрыПроверки.ВидСравнения); Сообщение = ЮТСообщенияСлужебный.ПодставитьПредставлениеЗначенияВШаблон(ШаблонСообщения, ПараметрыПроверки.ОжидаемоеЗначение); + ДобавитьОшибкуСравненияКРезультатуПроверки(СтатусПроверки, Сообщение, ПараметрыПроверки, ФактическоеЗначение); + +КонецПроцедуры + +Процедура ДобавитьОшибкуСравненияКРезультатуПроверки(СтатусПроверки, Сообщение, ПараметрыПроверки, ФактическоеЗначение) + ТекстОшибки = ЮТСообщенияСлужебный.ФорматированныйТекстОшибкиУтверждения(ПараметрыПроверки, Сообщение, ПараметрыПроверки.ТекстПроверяемоеЗначение); ТекстОшибки = ЮТРегистрацияОшибокСлужебный.ДобавитьОписания(ТекстОшибки, ПараметрыПроверки); - ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуСравненияКРезультатуПроверки(РезультатПроверки, + ЮТРегистрацияОшибокСлужебный.ДобавитьОшибкуСравненияКРезультатуПроверки(СтатусПроверки, ТекстОшибки, ФактическоеЗначение, ПараметрыПроверки.ОжидаемоеЗначение); @@ -652,6 +674,46 @@ КонецФункции +Функция ПроверитьМежду(СтатусПроверки, ПроверяемоеЗначение, Выражение, ВидСравненияВыражения, ПараметрыПроверки) + + НачалоИнтервала = Выражение.Значение; + ОкончаниеИнтервала = Выражение.ОкончаниеИнтервала; + + ТипЗначения = ТипЗнч(ПроверяемоеЗначение); + + Суффикс = ". Он должен совпадать с типом проверяемого значения"; + ПроверитьТипЗначения(СтатусПроверки, НачалоИнтервала, ТипЗначения, "левой границы интервала", , Суффикс); + ПроверитьТипЗначения(СтатусПроверки, ОкончаниеИнтервала, ТипЗначения, "правой границы интервала", , Суффикс); + + Если НачалоИнтервала > ОкончаниеИнтервала Тогда + ТекстОшибки = СтрШаблон("Не корректно задан интервал, левая граница (%1) не должна быть больше правой (%2)", + НачалоИнтервала, + ОкончаниеИнтервала); + ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, ПараметрыПроверки); + КонецЕсли; + + Выражения = ЮТПредикаты.Выражения(); + ВключаяНачало = ВидСравненияВыражения = Выражения.МеждуВключаяГраницы Или ВидСравненияВыражения = Выражения.МеждуВключаяНачалоГраницы; + ВключаяОкончание = ВидСравненияВыражения = Выражения.МеждуВключаяГраницы Или ВидСравненияВыражения = Выражения.МеждуВключаяОкончаниеГраницы; + + Результат = Истина; + + Если ВключаяНачало Тогда + Результат = НачалоИнтервала <= ПроверяемоеЗначение; + Иначе + Результат = НачалоИнтервала < ПроверяемоеЗначение; + КонецЕсли; + + Если ВключаяОкончание Тогда + Результат = Результат И ПроверяемоеЗначение <= ОкончаниеИнтервала; + Иначе + Результат = Результат И ПроверяемоеЗначение < ОкончаниеИнтервала; + КонецЕсли; + + Возврат Результат; + +КонецФункции + #КонецОбласти #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 0012122af..a7eafb753 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -209,7 +209,7 @@ Функция Равно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); - ПроверитьПредикат(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Равно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); Возврат ЮТУтверждения; КонецФункции @@ -228,7 +228,7 @@ Функция НеРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт ПараметрыСравнения = Новый Структура("ГлубокийАнализ", Истина); - ПроверитьПредикат(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеРавно, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения); Возврат ЮТУтверждения; КонецФункции @@ -243,7 +243,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция Больше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Больше, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -258,7 +258,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция БольшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().БольшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -273,7 +273,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция Меньше(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Меньше, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -288,7 +288,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция МеньшеИлиРавно(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().МеньшеРавно, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -302,7 +302,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция Заполнено(Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Заполнено, , ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -316,7 +316,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция НеЗаполнено(Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеЗаполнено, , ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -331,7 +331,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().ИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -346,7 +346,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция НеИмеетТип(Знач ОжидаемоеЗначение, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеИмеетТип, ОжидаемоеЗначение, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -379,7 +379,7 @@ Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Ложь); Иначе - ПроверитьПредикат(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().Содержит, ОжидаемоеЗначение, ОписаниеПроверки); КонецЕсли; Возврат ЮТУтверждения; @@ -414,7 +414,7 @@ Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикат(ОжидаемоеЗначение) Тогда ПроверитьСодержаниеПредиката(ОжидаемоеЗначение, ОписаниеПроверки, Истина); Иначе - ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеСодержит, ОжидаемоеЗначение, ОписаниеПроверки); КонецЕсли; Возврат ЮТУтверждения; @@ -431,7 +431,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция СодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().СодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -446,7 +446,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция НеСодержитСтрокуПоШаблону(Знач Шаблон, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеСодержитСтрокуПоШаблону, Шаблон, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -462,7 +462,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция ИмеетСвойство(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().ИмеетСвойство, ИмяСвойства, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -479,7 +479,7 @@ // ОбщийМодуль - Этот модуль для замыкания Функция НеИмеетСвойства(Знач ИмяСвойства, Знач ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().НеИмеетСвойство, ИмяСвойства, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -495,7 +495,79 @@ // ОбщийМодуль - Этот модуль для замыкания Функция ВСписке(Значения, ОписаниеПроверки = Неопределено) Экспорт - ПроверитьПредикат(ЮТПредикаты.Выражения().ВСписке, Значения, ОписаниеПроверки); + ПроверитьПредикатУтверждения(ЮТПредикаты.Выражения().ВСписке, Значения, ОписаниеПроверки); + Возврат ЮТУтверждения; + +КонецФункции + +// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// +// Проверяемое значение может находится на границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// ОписаниеПроверки - Строка - Описание конкретной проверки +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт + + ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуВключаяГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); + Возврат ЮТУтверждения; + +КонецФункции + +// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// +// Проверяемое значение не может находится на границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// ОписаниеПроверки - Строка - Описание конкретной проверки +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуИсключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт + + ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуИсключаяГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); + Возврат ЮТУтверждения; + +КонецФункции + +// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// +// Проверяемое значение может находится на начальной границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// ОписаниеПроверки - Строка - Описание конкретной проверки +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуВключаяНачалоГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт + + ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуВключаяНачалоГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); + Возврат ЮТУтверждения; + +КонецФункции + +// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. +// +// Проверяемое значение может находится на конечной границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// ОписаниеПроверки - Строка - Описание конкретной проверки +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция МеждуВключаяОкончаниеГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт + + ПроверитьПредикатМежду(ЮТПредикаты.Выражения().МеждуВключаяОкончаниеГраницы, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки); Возврат ЮТУтверждения; КонецФункции @@ -986,86 +1058,6 @@ КонецФункции -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// -// Проверяемое значение может находится на границе интервала. -// -// Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки -// -// Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт - - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверитьМежду(Контекст, НачалоИнтервала, ОкончаниеИнтервала, Истина, Истина); - Возврат ЮТУтверждения; - -КонецФункции - -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// -// Проверяемое значение не может находится на границе интервала. -// -// Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки -// -// Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция МеждуИсключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт - - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверитьМежду(Контекст, НачалоИнтервала, ОкончаниеИнтервала, Ложь, Ложь); - Возврат ЮТУтверждения; - -КонецФункции - -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// -// Проверяемое значение может находится на начальной границе интервала. -// -// Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки -// -// Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция МеждуВключаяНачалоГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт - - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверитьМежду(Контекст, НачалоИнтервала, ОкончаниеИнтервала, Истина, Ложь); - Возврат ЮТУтверждения; - -КонецФункции - -// Проверяет вхождение установленного значение (или его свойства) в заданный интервал. -// -// Проверяемое значение может находится на конечной границе интервала. -// -// Параметры: -// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения -// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения -// ОписаниеПроверки - Строка - Описание конкретной проверки -// -// Возвращаемое значение: -// ОбщийМодуль - Этот модуль для замыкания -Функция МеждуВключаяОкончаниеГраницы(НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки = Неопределено) Экспорт - - Контекст = Контекст(); - УстановитьОписаниеПроверки(Контекст, ОписаниеПроверки); - ПроверитьМежду(Контекст, НачалоИнтервала, ОкончаниеИнтервала, Ложь, Истина); - Возврат ЮТУтверждения; - -КонецФункции - // Проверяет каждый элемент установленного значения (или его свойства), все элементы должны иметь указанное свойство. // // Параметры: @@ -1486,6 +1478,7 @@ ПройденныйПуть.Добавить(Часть); Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда + //@skip-check bsl-legacy-check-dynamic-feature-access Значение = Значение.Получить(); КонецЕсли; @@ -1734,48 +1727,6 @@ КонецПроцедуры -Процедура ПроверитьМежду(Контекст, НачалоИнтервала, ОкончаниеИнтервала, ВключаяНачало, ВключаяОкончание) - - ПроверяемоеЗначение = ПроверяемоеЗначение(Контекст); - - ТипЗначения = ТипЗнч(ПроверяемоеЗначение); - - Суффикс = ". Он должен совпадать с типом проверяемого значения"; - ПроверитьТипЗначения(Контекст, НачалоИнтервала, ТипЗначения, "левой границы интервала", , Суффикс); - ПроверитьТипЗначения(Контекст, ОкончаниеИнтервала, ТипЗначения, "правой границы интервала", , Суффикс); - - Если НачалоИнтервала > ОкончаниеИнтервала Тогда - ТекстОшибки = СтрШаблон("Не корректно задан интервал, левая граница (%1) не должна быть больше правой (%2)", - НачалоИнтервала, - ОкончаниеИнтервала); - ЮТРегистрацияОшибокСлужебный.СгенерироватьОшибкуВыполнения(ТекстОшибки, Контекст); - КонецЕсли; - Результат = Истина; - - Если ВключаяНачало Тогда - Результат = НачалоИнтервала <= ПроверяемоеЗначение; - Иначе - Результат = НачалоИнтервала < ПроверяемоеЗначение; - КонецЕсли; - - Если ВключаяОкончание Тогда - Результат = Результат И ПроверяемоеЗначение <= ОкончаниеИнтервала; - Иначе - Результат = Результат И ПроверяемоеЗначение < ОкончаниеИнтервала; - КонецЕсли; - - Если НЕ Результат Тогда - Интервал = СтрШаблон("%1%2; %3%4", - ?(ВключаяНачало, "[", "("), - НачалоИнтервала, - ОкончаниеИнтервала, - ?(ВключаяОкончание, "]", ")")); - Сообщение = "находится в интервале " + Интервал; - СгенерироватьОшибкуСравнения(Сообщение, ПроверяемоеЗначение, Интервал); - КонецЕсли; - -КонецПроцедуры - Процедура ПроверитьЗаполненностьЗначения(Контекст, Значение, Описание) Если НЕ ЗначениеЗаполнено(Значение) Тогда @@ -1876,15 +1827,35 @@ #Область Предикаты -Процедура ПроверитьПредикат(Выражение, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения = Неопределено) +Процедура ПроверитьПредикатУтверждения(Выражение, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения = Неопределено) Контекст = Контекст(); Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение); + ПроверитьПредикат(Контекст, Предикат, ОписаниеПроверки, ПараметрыСравнения); + +КонецПроцедуры + +Процедура ПроверитьПредикатМежду(Выражение, НачалоИнтервала, ОкончаниеИнтервала, ОписаниеПроверки) + + Контекст = Контекст(); + Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, НачалоИнтервала); + Предикат.Вставить("ОкончаниеИнтервала", ОкончаниеИнтервала); + ПроверитьПредикат(Контекст, Предикат, ОписаниеПроверки, Неопределено); + +КонецПроцедуры + +Процедура ПроверитьПредикат(Контекст, Предикат, ОписаниеПроверки, ПараметрыСравнения = Неопределено) + ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); - ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление); - Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); + ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, + , + Контекст.ОбъектПроверки.Представление); + Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, + Предикат, + ПараметрыСообщенийОбОшибке, + ПараметрыСравнения); ОбработатьРезультатПроверкиПредиката(Результат); From c200a1e7d02016ef96b09662ed80fd90dabef985 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 30 Aug 2024 19:07:03 +0300 Subject: [PATCH 62/86] =?UTF-8?q?feat:=20=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=D0=B6=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B5=D0=B4=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D0=B2=20=D0=9C=D0=B5=D0=B6=D0=B4=D1=83*=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 36 +++++++-- .../Module.bsl" | 16 ++++ .../Module.bsl" | 76 +++++++++++++++++++ 3 files changed, 122 insertions(+), 6 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 147658a67..f0bbd00b4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -301,6 +301,14 @@ Шаблон = "%1 ПОДОБНО ""%%"" + &%2 + ""%%"""; ИначеЕсли Выражение = ВыраженияПредикатов.ВСписке Тогда Шаблон = "%1 В (&%2)"; + ИначеЕсли Выражение = ВыраженияПредикатов.МеждуВключаяГраницы Тогда + Шаблон = "%1 МЕЖДУ &%2 И &%3"; + ИначеЕсли Выражение = ВыраженияПредикатов.МеждуИсключаяГраницы Тогда + Шаблон = "%1 > &%2 И %1 < &%3"; + ИначеЕсли Выражение = ВыраженияПредикатов.МеждуВключаяНачалоГраницы Тогда + Шаблон = "%1 >= &%2 И %1 < &%3"; + ИначеЕсли Выражение = ВыраженияПредикатов.МеждуВключаяОкончаниеГраницы Тогда + Шаблон = "%1 > &%2 И %1 <= &%3"; ИначеЕсли Выражение = ВыраженияПредикатов.Заполнено Тогда // TODO Реализовать ВызватьИсключение "Проверка заполненности пока не поддерживается"; @@ -379,14 +387,9 @@ Продолжить; КонецЕсли; - ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1); - ТипРеквизита = ТипыРеквизитов[Условие.ИмяРеквизита]; - Шаблон = ШаблонУсловия(Условие, ВидыСравнения, ТипРеквизита); - - ТекстУсловия = СтрШаблон(Шаблон, Условие.ИмяРеквизита, ИмяПараметра); + ТекстУсловия = УсловиеПоПредикату(Условие, Запрос, ВидыСравнения, ТипыРеквизитов); Результат.Добавить(ТекстУсловия); - Запрос.Параметры.Вставить(ИмяПараметра, Условие.Значение); КонецЦикла; @@ -394,4 +397,25 @@ КонецФункции +Функция УсловиеПоПредикату(Условие, Запрос, ВидыСравнения, ТипыРеквизитов) + + ТипРеквизита = ТипыРеквизитов[Условие.ИмяРеквизита]; + Шаблон = ШаблонУсловия(Условие, ВидыСравнения, ТипРеквизита); + + ИмяПараметра = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1); + Запрос.Параметры.Вставить(ИмяПараметра, Условие.Значение); + + Если ЮТПредикатыСлужебныйКлиентСервер.ЭтоПредикатМежду(Условие) Тогда + ИмяПараметра2 = "Параметр_" + ЮТОбщий.ЧислоВСтроку(Запрос.Параметры.Количество() + 1); + Запрос.Параметры.Вставить(ИмяПараметра2, Условие.ОкончаниеИнтервала); + + ТекстУсловия = СтрШаблон(Шаблон, Условие.ИмяРеквизита, ИмяПараметра, ИмяПараметра2); + Иначе + ТекстУсловия = СтрШаблон(Шаблон, Условие.ИмяРеквизита, ИмяПараметра); + КонецЕсли; + + Возврат ТекстУсловия; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index 357beb995..5251c3f6e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -326,6 +326,22 @@ КонецФункции +// Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. +// +// Проверяемое значение может находится на границе интервала. +// +// Параметры: +// НачалоИнтервала - Произвольный - Левая граница интервала. Может иметь любой тип, позволяющий сравнивать значения +// ОкончаниеИнтервала - Произвольный - Правая граница. Может иметь любой тип, позволяющий сравнивать значения +// +// Возвращаемое значение: +// ОбщийМодуль - Этот модуль для замыкания +Функция Между(НачалоИнтервала, ОкончаниеИнтервала) Экспорт + + Возврат МеждуВключаяГраницы(НачалоИнтервала, ОкончаниеИнтервала); + +КонецФункции + // Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. // // Проверяемое значение может находится на границе интервала. diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index 9b10792c1..3c7071cc9 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -34,6 +34,7 @@ .ДобавитьТест("ЗначениеРеквизитаЗаписи") .ДобавитьТест("ДвиженияДокумента") .ДобавитьТест("Записи_Условие_ВСписке") + .ДобавитьТест("Записи_Условие_Между") ; КонецПроцедуры @@ -440,6 +441,81 @@ КонецПроцедуры +Процедура Записи_Условие_Между() Экспорт + + День = 24*3600; + + ИмяТаблицы = "РегистрСведений.КурсыВалют"; + Валюта = ЮТест.Данные().СоздатьЭлемент("Справочник.Валюты"); + Период = НачалоДня(ЮТест.Данные().СлучайнаяДата()); + ПериодПосле = Период + День; + ПериодДо = Период - День; + + ЮТест.Данные().КонструкторОбъекта(ИмяТаблицы) + .Установить("Валюта", Валюта) + .Установить("Период", ПериодДо).Установить("Курс", 5) + .ДобавитьЗапись() + .Установить("Период", Период).Установить("Курс", 10) + .ДобавитьЗапись() + .Установить("Период", ПериодПосле).Установить("Курс", 15) + .ДобавитьЗапись() + ; + + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Валюта").Равно(Валюта)) + ; + ЮТест.ОжидаетЧто(Результат, "Проверка записей в регистре") + .ИмеетДлину(3) + ; + // Между + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Валюта").Равно(Валюта) + .Свойство("Период").Между(Период, ПериодПосле)) + ; + ЮТест.ОжидаетЧто(Результат, "Между") + .ИмеетДлину(2) + .Свойство("[0].Курс").Равно(10) + .Свойство("[1].Курс").Равно(15) + ; + // МеждуИсключаяГраницы + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Валюта").Равно(Валюта) + .Свойство("Период").МеждуИсключаяГраницы(Период, ПериодПосле)) + ; + ЮТест.ОжидаетЧто(Результат, "МеждуИсключаяГраницы") + .ИмеетДлину(0) + ; + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Валюта").Равно(Валюта) + .Свойство("Период").МеждуИсключаяГраницы(Период, ПериодПосле + 1)) + ; + ЮТест.ОжидаетЧто(Результат, "МеждуИсключаяГраницы со смещенной датой") + .ИмеетДлину(1) + .Свойство("[0].Курс").Равно(15) + ; + + // МеждуВключаяНачалоГраницы + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Валюта").Равно(Валюта) + .Свойство("Период").МеждуВключаяНачалоГраницы(ПериодДо, Период)) + ; + ЮТест.ОжидаетЧто(Результат, "МеждуВключаяНачалоГраницы") + .ИмеетДлину(1) + .Свойство("[0].Курс").Равно(5) + ; + + // МеждуВключаяОкончаниеГраницы + Результат = ЮТЗапросы.Записи(ИмяТаблицы, ЮТест.Предикат() + .Свойство("Валюта").Равно(Валюта) + .Свойство("Период").МеждуВключаяОкончаниеГраницы(Период, ПериодПосле)) + ; + ЮТест.ОжидаетЧто(Результат, "МеждуВключаяОкончаниеГраницы") + .ИмеетДлину(1) + .Свойство("[0].Курс").Равно(15) + ; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции From fe661bea7c1b0ca0e58298c4e892a0e023636ce0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 2 Sep 2024 13:27:40 +0300 Subject: [PATCH 63/86] =?UTF-8?q?doc:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D1=8B=20=D0=B2=20=D0=BE=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B5=D0=B4=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/predicates.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/documentation/docs/features/predicates.md b/documentation/docs/features/predicates.md index 21246eb8c..f6a083a9e 100644 --- a/documentation/docs/features/predicates.md +++ b/documentation/docs/features/predicates.md @@ -87,6 +87,15 @@ sidebar_position: 4 * [`СодержитСтрокуПоШаблону`](/api/ЮТПредикаты#содержитстрокупошаблону) - Добавляет предикат, проверяющий, что строка соответствует указанному регулярному выражению * [`НеСодержитСтрокуПоШаблону`](/api/ЮТПредикаты#несодержитстрокупошаблону) - Добавляет предикат, проверяющий, что строка не соответствует указанному регулярному выражению * [`ВСписке`](/api/ЮТПредикаты#всписке) - Добавляет условие, что проверяемое значение (или значение его свойства) входит в список значений + * Между + * [`Между`](/api/ЮТПредикаты#между)/[`МеждуВключаяГраницы`](/api/ЮТПредикаты#междувключаяграницы)- Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. + Проверяемое значение **может** находится на границе интервала. + * [`МеждуИсключаяГраницы`](/api/ЮТПредикаты#междуисключаяграницы)- Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. + Проверяемое значение **не может** находится на границе интервала. + * [`МеждуВключаяНачалоГраницы`](/api/ЮТПредикаты#междувключаяначалограницы)- Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. + Проверяемое значение **может** находится на **начальной** границе интервала. + * [`МеждуВключаяОкончаниеГраницы`](/api/ЮТПредикаты#междувключаяокончаниеграницы)- Добавляет условие, что проверяемое значение (или значение его свойства) входит в заданный интервал. + Проверяемое значение **может** находится на **конечной** границе интервала. * Служебные * [`Получить`](/api/ЮТПредикаты#получить) - Возвращает набор сформированных утверждений. Рекомендуется использовать этот метод, если планируется отложенная проверка предикатов. Например, вы хотите сформировать два набору предикатов и проверять их в зависимости от условия. From f825d934529f287dcf7314419eb64d9a4eae69e9 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 29 Aug 2024 16:40:09 +0300 Subject: [PATCH 64/86] =?UTF-8?q?test:=20=D0=B2=D0=BE=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B8=D0=B7=D0=B2=D0=B5=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index c8ea18121..2d81a4304 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -34,6 +34,7 @@ .ДобавитьТест("СоздатьГруппу") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("УстановитьСсылкуНового") + .ДобавитьСерверныйТест("СозданиеОбъекта").ВТранзакции(Ложь) ; КонецПроцедуры @@ -327,7 +328,7 @@ Процедура УстановитьСсылкуНового() Экспорт Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары"); - + УникальныйИдентификатор = Новый УникальныйИдентификатор(); Ссылка = Конструктор.УстановитьСсылкуНового(УникальныйИдентификатор).Записать(); ЮТест.ОжидаетЧто(Ссылка.УникальныйИдентификатор(), "Уникальный идентификатор") @@ -378,4 +379,14 @@ КонецПроцедуры +Процедура СозданиеОбъекта() Экспорт + + Объект = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары") + .Записать(Истина); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип("СправочникОбъект.Товары"); + +КонецПроцедуры + #КонецОбласти From fbc09d649d132558bda2ef620ccb3f78e55cdcfd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 30 Aug 2024 15:02:10 +0300 Subject: [PATCH 65/86] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D0=B2,=20=D0=B0=20=D0=BD=D0=B5=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 4 --- .../Module.bsl" | 6 ++--- .../Module.bsl" | 1 - .../Module.bsl" | 26 ++++++++++++------- .../Module.bsl" | 16 +++++++++++- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index aa0b354a4..207c5b35e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -123,8 +123,6 @@ Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); - ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); - Возврат Ссылка; КонецФункции @@ -149,8 +147,6 @@ Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); - ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); - Возврат Ссылка; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index cd3e60732..1f5a72029 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -45,7 +45,6 @@ КонецЕсли; Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); - ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); Возврат Ссылка; @@ -75,7 +74,6 @@ КонецЕсли; Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); - ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(Ссылка); Возврат Ссылка; @@ -859,11 +857,11 @@ // Ссылки - Массив из ЛюбаяСсылка - Массив ссылок на объекты, которые необходимо удалить. // Привилегированно - Булево - Выполнить удаление в привилегированном режиме (без учета прав на объекты) Процедура Удалить(Ссылки, Привилегированно = Ложь) Экспорт - + Если ЗначениеЗаполнено(Ссылки) Тогда ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки, Привилегированно); КонецЕсли; - + КонецПроцедуры // Возвращает объект подражателя для формирования осмысленных тестовых данных diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 94066f5a0..0d89d50b9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -57,7 +57,6 @@ Иначе Значение = ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения); - ДобавитьТестовуюЗапись(Значение); КонецЕсли; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 0f6f36b0c..6b6b1c00d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -26,6 +26,7 @@ ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи); + ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); Если ВернутьОбъект Тогда Возврат Объект; @@ -148,7 +149,10 @@ ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); - Возврат ЗаписатьОбъект(Объект, ПараметрыЗаписи()); + КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи()); + ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); + + Возврат КлючЗаписи; КонецФункции @@ -268,7 +272,7 @@ // BSLLS:BeginTransactionBeforeTryCatch-off // BSLLS:PairingBrokenTransaction-off // BSLLS:PairingBrokenTransaction-off - НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); // BSLLS:BeginTransactionBeforeTryCatch-on // BSLLS:PairingBrokenTransaction-on // BSLLS:PairingBrokenTransaction-on @@ -465,32 +469,36 @@ КонецПроцедуры -Процедура УдалитьСсылку(Ссылка, ОшибкиОбработки) +Процедура УдалитьСсылку(Значение, ОшибкиОбработки) - ТипЗначения = ТипЗнч(Ссылка); + ТипЗначения = ТипЗнч(Значение); - Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда + Если Значение = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда Возврат; КонецЕсли; Попытка - Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда - Объект = Ссылка.ПолучитьОбъект(); + Если ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда + Если НЕ Значение.ЭтоНовый() Тогда + Значение.Удалить(); + КонецЕсли; + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда + Объект = Значение.ПолучитьОбъект(); Если Объект <> Неопределено Тогда Объект.Удалить(); КонецЕсли; Иначе Менеджер = ЮТОбщий.Менеджер(ТипЗначения); Запись = Менеджер.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Ссылка); + ЗаполнитьЗначенияСвойств(Запись, Значение); Запись.Прочитать(); Запись.Удалить(); КонецЕсли; Исключение - ОшибкиОбработки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Ссылка, ИнформацияОбОшибке())); + ОшибкиОбработки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Значение, ИнформацияОбОшибке())); КонецПопытки; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 94eb16220..1ab80f8df 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -78,6 +78,20 @@ КонецЦикла; +#Если Сервер Тогда + Объекты = Новый Массив; + Объекты.Добавить(ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара").Записать(Истина)); + Объекты.Добавить(ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара").НовыйОбъект()); + ЮТест.Данные().Удалить(Объекты); + + Для Каждого Объект Из Объекты Цикл + + СсылкаСуществует = ПомощникТестированияВызовСервера.СсылкаСуществует(Объект.Ссылка); + ЮТест.ОжидаетЧто(СсылкаСуществует, "Объект не удален").ЭтоЛожь(); + + КонецЦикла; +#КонецЕсли + КонецПроцедуры Процедура ВариантыПараметров() Экспорт @@ -621,7 +635,7 @@ ЮТест.Данные().УстановитьФоновуюБлокировку(Блокировка); ОжидаемаяОшибка = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), - "Lock conflict during the transaction", + "Lock conflict during the transaction", "Конфликт блокировок при выполнении транзакции"); ЮТест.ОжидаетЧто(Конструктор) From 45911126c8f3e582a9840757c178fd6d656fe30a Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 01:19:38 +0300 Subject: [PATCH 66/86] =?UTF-8?q?tests:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=B2=20=D0=BE=D0=B1=D1=8B=D1=87=D0=BD=D0=BE?= =?UTF-8?q?=D0=BC=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82-=D1=81=D0=B5?= =?UTF-8?q?=D1=80=D0=B2=D0=B5=D1=80=D0=BD=D0=BE=D0=BC=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 4 +--- .../Module.bsl" | 10 +++++++++- ...20\232\320\273\320\270\320\265\320\275\321\202.mdo" | 1 + ...20\263\321\200\320\260\321\206\320\270\321\217.mdo" | 1 + ...20\232\320\273\320\270\320\265\320\275\321\202.mdo" | 1 + ...21\216\320\227\320\260\320\264\320\260\321\207.mdo" | 1 + ...20\232\320\273\320\270\320\265\320\275\321\202.mdo" | 1 + ...20\263\321\200\320\260\321\206\320\270\321\217.mdo" | 8 -------- ...20\276\320\261\321\213\321\202\320\270\321\217.mdo" | 9 --------- ...20\262\320\260\321\202\320\265\320\273\320\270.mdo" | 9 --------- 11 files changed, 16 insertions(+), 31 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 68ff2fc46..d667e5fb2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -69,7 +69,7 @@ ПолучитьСообщенияПользователю(Истина); #КонецЕсли - // Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом + УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор, ОписаниеСобытия.Тест); ЮТКонтекстСлужебный.УстановитьКонтекстТеста(); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 17a6097bb..f4b9f9dfb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -27,11 +27,9 @@ КаталогПроекта = ЮТНастройкиВыполнения.КаталогПроекта(); - ЕстьПолноеИмя = ЮТОбщий.ПеременнаяСодержитСвойство(ПереданныеФайлы[0], "ПолноеИмя"); - Для Каждого Файл Из ПереданныеФайлы Цикл - ИмяФайла = ?(ЕстьПолноеИмя, Файл.ПолноеИмя, Файл.Имя); + ИмяФайла = ?(ЗначениеЗаполнено(Файл.ПолноеИмя), Файл.ПолноеИмя, Файл.Имя); ИмяВКаталоге = СтрЗаменить(ИмяФайла, КаталогПроекта, ""); ПолноеИмя = ЮТФайлы.ОбъединитьПути(Контекст.РабочийКаталог, ИмяВКаталоге); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index ac6cdbacd..edc65b829 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -102,7 +102,15 @@ Возврат; КонецЕсли; - РезультатПередачиФайлов = ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ПоместитьФайлыВРабочийКаталог(ПомещенныеФайлы); + ОписаниеФайлов = Новый Массив; + + Для Каждого Файл Из ПомещенныеФайлы Цикл + ОписаниеФайла = Новый Структура("Имя, Хранение, ПолноеИмя"); + ЗаполнитьЗначенияСвойств(ОписаниеФайла, Файл); + ОписаниеФайлов.Добавить(ОписаниеФайла); + КонецЦикла; + + РезультатПередачиФайлов = ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ПоместитьФайлыВРабочийКаталог(ОписаниеФайлов); Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); Результат.Успешно = РезультатПередачиФайлов <> Неопределено; diff --git "a/fixtures/demo-configuration/src/CommonModules/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/fixtures/demo-configuration/src/CommonModules/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index 8b54780b5..b0f376eea 100644 --- "a/fixtures/demo-configuration/src/CommonModules/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/fixtures/demo-configuration/src/CommonModules/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202/\320\223\320\265\320\276\320\277\320\276\320\267\320\270\321\206\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -7,4 +7,5 @@ true + true diff --git "a/fixtures/demo-configuration/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" "b/fixtures/demo-configuration/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" index 73da12a3a..de65472e6 100644 --- "a/fixtures/demo-configuration/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" +++ "b/fixtures/demo-configuration/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" @@ -7,4 +7,5 @@ true true + true diff --git "a/fixtures/demo-configuration/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/fixtures/demo-configuration/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index 643bd3a03..fdd919d34 100644 --- "a/fixtures/demo-configuration/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/fixtures/demo-configuration/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -7,4 +7,5 @@ true + true diff --git "a/fixtures/demo-configuration/src/CommonModules/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207.mdo" "b/fixtures/demo-configuration/src/CommonModules/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207.mdo" index 559b12799..b4cd8d85e 100644 --- "a/fixtures/demo-configuration/src/CommonModules/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207.mdo" +++ "b/fixtures/demo-configuration/src/CommonModules/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\275\320\265\320\273\321\214\321\216\320\227\320\260\320\264\320\260\321\207.mdo" @@ -7,4 +7,5 @@ true + true diff --git "a/fixtures/demo-configuration/src/CommonModules/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/fixtures/demo-configuration/src/CommonModules/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.mdo" index faee18a89..cb850add4 100644 --- "a/fixtures/demo-configuration/src/CommonModules/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.mdo" +++ "b/fixtures/demo-configuration/src/CommonModules/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202/\320\243\320\262\320\265\320\264\320\276\320\274\320\273\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -7,4 +7,5 @@ true + true diff --git "a/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" "b/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" index 87ab9fe6a..2023362b4 100644 --- "a/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" +++ "b/tests/src/CommonModules/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217/\320\230\320\275\321\202\320\265\320\263\321\200\320\260\321\206\320\270\321\217.mdo" @@ -4,13 +4,5 @@ Adopted Extended - Checked - Checked - Checked - Checked - Checked - Checked - true - true diff --git "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" index 4a80513c4..c21b2889a 100644 --- "a/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" +++ "b/tests/src/CommonModules/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217/\320\237\320\276\320\264\320\277\320\270\321\201\320\272\320\270\320\235\320\260\320\241\320\276\320\261\321\213\321\202\320\270\321\217.mdo" @@ -4,14 +4,5 @@ Adopted Extended - Checked - Checked - Checked - Checked - Checked - Checked - true - true - true diff --git "a/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.mdo" "b/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.mdo" index c5dd62212..c8ab82f37 100644 --- "a/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.mdo" +++ "b/tests/src/CommonModules/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270/\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\320\270.mdo" @@ -4,14 +4,5 @@ Adopted Extended - Checked - Checked - Checked - Checked - Checked - Checked - true - true - true From 348a0150af5741ea80b4dd2cb329ca60ed468096 Mon Sep 17 00:00:00 2001 From: Koryakin Aleksey Date: Wed, 4 Sep 2024 15:09:55 +0300 Subject: [PATCH 67/86] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D1=8B=20=D0=B4=D0=BB=D1=8F=20bug.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 1b94bf747..6ef6b1bb7 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -31,6 +31,26 @@ body: attributes: label: Версия 1С:Предприятие + - type: dropdown + id: run-mode + attributes: + label: Режим запуска 1С:Предприятие + multiple: true + options: + - Тонкий клиент. Управляемое приложение + - Толстый клиент. Управляемое приложение + - Обычное приложение + - Web-клиент + + - type: dropdown + id: base-mode + attributes: + label: Тип информационной базы + multiple: true + options: + - Клиент-серверная + - Файловая + - type: dropdown id: operating-systems attributes: @@ -40,4 +60,4 @@ body: - Linux - Windows - Mac - - Other \ No newline at end of file + - Other From b438556431602ebe893b556b7e2ac5e2d2c32d21 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 15:46:08 +0300 Subject: [PATCH 68/86] =?UTF-8?q?test:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 + .../Module.bsl" | 2 +- .../Module.bsl" | 4 +- .../Module.bsl" | 1 + .../Module.bsl" | 6 +- .../Module.bsl" | 90 +------------ .../Module.bsl" | 6 +- .../Module.bsl" | 119 ++++++++++++++++++ ...0\265\321\200\320\262\320\265\321\200.mdo" | 10 ++ .../Module.bsl" | 19 ++- .../Module.bsl" | 29 ++--- .../Module.bsl" | 36 +++++- ...0\265\321\200\320\262\320\265\321\200.mdo" | 2 +- .../src/Configuration/Configuration.mdo | 3 +- ...0\260\320\275\320\275\321\213\320\265.mdo" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 9 +- .../Module.bsl" | 23 ++-- .../Module.bsl" | 3 +- .../Module.bsl" | 8 +- 20 files changed, 234 insertions(+), 146 deletions(-) create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" (95%) rename "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" => "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" (80%) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index f2e5e13f1..60c58e4c0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -21,6 +21,12 @@ Функция СерверноеХранилищеТестов() Экспорт АдресХранилища = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаХранилище()); + + Если АдресХранилища = Неопределено Тогда + ВызватьИсключение "Не удалось получить адрес серверного хранилища тестов. + |Возможно сломана транзакция. ТранзакцияАктивна=" + ТранзакцияАктивна(); + КонецЕсли; + Возврат ПолучитьИзВременногоХранилища(АдресХранилища); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 5494d0d2a..274b23c9e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -310,7 +310,7 @@ Функция Менеджер(Знач Менеджер) Экспорт -#Если Сервер Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); Если Описание = Неопределено Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d4e7d158d..fb4d5236e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -80,7 +80,8 @@ Процедура СформироватьОтчетВФормате(РезультатВыполнения, ГенераторОтчета, ИмяФайлаОтчета, Формат, Обработчик) Если Формат.СамостоятельнаяЗаписьОтчета Тогда - ГенераторОтчета.ЗаписатьОтчет(РезультатВыполнения, ИмяФайлаОтчета, Формат, Обработчик) + ГенераторОтчета.ЗаписатьОтчет(РезультатВыполнения, ИмяФайлаОтчета, Формат, Обработчик); + ЮТЛогирование.Информация("Сохранен отчет о тестировании " + ИмяФайлаОтчета); Иначе ДанныеОтчета = ГенераторОтчета.ДанныеОтчета(РезультатВыполнения, Формат); @@ -88,6 +89,7 @@ ЮТЛогирование.Ошибка("Не удалось получить данные отчета"); Иначе ДанныеОтчета.Записать(ИмяФайлаОтчета); + ЮТЛогирование.Информация("Сохранен отчет о тестировании " + ИмяФайлаОтчета); КонецЕсли; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 0a7ee987c..df5ffa9df 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -86,6 +86,7 @@ ДанныеОшибки = ДанныеОшибки(Неопределено, Сообщение, ЮТФабрикаСлужебный.ТипыОшибок().Исполнения); Объект.Ошибки.Добавить(ДанныеОшибки); + ЮТЛогирование.Ошибка(Сообщение); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 1c8dcad51..d90f6f410 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -308,6 +308,7 @@ Функция ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия) + ЮТЛогирование.Отладка("Вызов серверной обработки события " + ИмяСобытия); Параметры = Новый Массив(4); Параметры[0] = ИмяСобытия; @@ -323,7 +324,10 @@ Параметры[3] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор, ОписаниеСобытия.Тест); КонецЕсли; - Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТСобытияСлужебный", "СерверныйВызовОбработкиСобытияИсполненияТестов", Параметры); + Результат = ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТСобытияСлужебный", "СерверныйВызовОбработкиСобытияИсполненияТестов", Параметры); + ЮТЛогирование.Отладка("Завершена серверная обработка события " + ИмяСобытия); + + Возврат Результат; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 8833c438e..36c75132c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -20,99 +20,13 @@ Функция ТаблицыРавны(Знач Данные1, Знач Данные2) Экспорт - Если Данные1.Количество() <> Данные2.Количество() Тогда - Возврат Ложь; - КонецЕсли; - - Если Данные1.Колонки.Количество() <> Данные2.Колонки.Количество() Тогда - Возврат Ложь; - КонецЕсли; - - Для Каждого Колонка Из Данные1.Колонки Цикл - Если Данные2.Колонки.Найти(Колонка.Имя) = Неопределено Тогда - Возврат Ложь; - КонецЕсли; - - Индекс = Данные1.Количество() - 1; - Пока Индекс >= 0 Цикл - Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда - Возврат Ложь; - КонецЕсли; - Индекс = Индекс - 1; - КонецЦикла; - КонецЦикла; - - Возврат Истина; + Возврат ЮТСравнениеСлужебныйСервер.ТаблицыРавны(Данные1, Данные2); КонецФункции Функция ТабличныеДокументыРавны(Знач ТабличныйДокумент1, Знач ТабличныйДокумент2) Экспорт - Данные1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент1); - Данные2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент2); - - Возврат ТаблицыРавны(Данные1, Данные2); - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// https://github.com/vanessa-opensource/add -// перенесен из Functest -Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) - - ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); - Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда - ВызватьИсключение "ПолучитьТаблицуЗначенийИзТабличногоДокумента: Требуется тип ТабличныйДокумент или ПолеТабличногоДокумента"; - КонецЕсли; - - Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда - ЮТОбщийСлужебныйВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); - КонецЕсли; - - НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; - НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; - - НоваяТаблицаЗначений = Новый ТаблицаЗначений; - Колонки = НоваяТаблицаЗначений.Колонки; - ТипСтрока = Новый ОписаниеТипов("Строка"); - - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимость колонки определяется по формату первой строки - УчитываемыеКолонки = Новый Массив; - Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл - ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); - - УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; - Если УчитыватьКолонку Тогда - УчитываемыеКолонки.Добавить(НомерКолонки); - ШиринаКолонки = ОбластьКолонки.ШиринаКолонки; - Если ШиринаКолонки <= 1 Тогда - ШиринаКолонки = 1; - КонецЕсли; - ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); - Колонки.Добавить(ИмяКолонки, ТипСтрока, ИмяКолонки, ШиринаКолонки); - КонецЕсли; - КонецЦикла; - - ГраницаКолонок = УчитываемыеКолонки.ВГраница(); - Для НомерСтроки = 1 По НомерПоследнейСтроки Цикл - - Если УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки, , НомерСтроки).Видимость Тогда - Продолжить; - КонецЕсли; - - НоваяСтрока = НоваяТаблицаЗначений.Добавить(); - - Для Индекс = 0 По ГраницаКолонок Цикл - НомерКолонки = УчитываемыеКолонки[Индекс]; - Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки); - НоваяСтрока[Индекс] = Область.Текст; - КонецЦикла; - КонецЦикла; - - Возврат НоваяТаблицаЗначений; + Возврат ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(ТабличныйДокумент1, ТабличныйДокумент2) КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 3c9ce0296..0329dc4bb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -65,7 +65,11 @@ ИначеЕсли ТипЗначения = Тип("ТабличныйДокумент") Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + Результат = ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(Данные1, Данные2); +#Иначе Результат = ЮТСравнениеСлужебныйВызовСервера.ТабличныеДокументыРавны(Данные1, Данные2); +#КонецЕсли ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоПримитивныйТип(ТипЗначения) ИЛИ ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда // Возвращаем ложь, так как для этих типов должно сработать обычное равенство @@ -75,7 +79,7 @@ #Если Сервер Тогда Если ТипЗначения = Тип("ТаблицаЗначений") Тогда - Результат = ЮТСравнениеСлужебныйВызовСервера.ТаблицыРавны(Данные1, Данные2); + Результат = ЮТСравнениеСлужебныйСервер.ТаблицыРавны(Данные1, Данные2); ИначеЕсли ТипЗначения = Тип("ХранилищеЗначения") Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..8833c438e --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,119 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ТаблицыРавны(Знач Данные1, Знач Данные2) Экспорт + + Если Данные1.Количество() <> Данные2.Количество() Тогда + Возврат Ложь; + КонецЕсли; + + Если Данные1.Колонки.Количество() <> Данные2.Колонки.Количество() Тогда + Возврат Ложь; + КонецЕсли; + + Для Каждого Колонка Из Данные1.Колонки Цикл + Если Данные2.Колонки.Найти(Колонка.Имя) = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Индекс = Данные1.Количество() - 1; + Пока Индекс >= 0 Цикл + Если НЕ ЮТСравнениеСлужебныйКлиентСервер.ЗначенияРавны(Данные1[Индекс][Колонка.Имя], Данные2[Индекс][Колонка.Имя]) Тогда + Возврат Ложь; + КонецЕсли; + Индекс = Индекс - 1; + КонецЦикла; + КонецЦикла; + + Возврат Истина; + +КонецФункции + +Функция ТабличныеДокументыРавны(Знач ТабличныйДокумент1, Знач ТабличныйДокумент2) Экспорт + + Данные1 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент1); + Данные2 = ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент2); + + Возврат ТаблицыРавны(Данные1, Данные2); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// https://github.com/vanessa-opensource/add +// перенесен из Functest +Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) + + ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); + Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда + ВызватьИсключение "ПолучитьТаблицуЗначенийИзТабличногоДокумента: Требуется тип ТабличныйДокумент или ПолеТабличногоДокумента"; + КонецЕсли; + + Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда + ЮТОбщийСлужебныйВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); + КонецЕсли; + + НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; + НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; + + НоваяТаблицаЗначений = Новый ТаблицаЗначений; + Колонки = НоваяТаблицаЗначений.Колонки; + ТипСтрока = Новый ОписаниеТипов("Строка"); + + // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимость колонки определяется по формату первой строки + УчитываемыеКолонки = Новый Массив; + Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл + ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); + + УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; + Если УчитыватьКолонку Тогда + УчитываемыеКолонки.Добавить(НомерКолонки); + ШиринаКолонки = ОбластьКолонки.ШиринаКолонки; + Если ШиринаКолонки <= 1 Тогда + ШиринаКолонки = 1; + КонецЕсли; + ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); + Колонки.Добавить(ИмяКолонки, ТипСтрока, ИмяКолонки, ШиринаКолонки); + КонецЕсли; + КонецЦикла; + + ГраницаКолонок = УчитываемыеКолонки.ВГраница(); + Для НомерСтроки = 1 По НомерПоследнейСтроки Цикл + + Если УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки, , НомерСтроки).Видимость Тогда + Продолжить; + КонецЕсли; + + НоваяСтрока = НоваяТаблицаЗначений.Добавить(); + + Для Индекс = 0 По ГраницаКолонок Цикл + НомерКолонки = УчитываемыеКолонки[Индекс]; + Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки); + НоваяСтрока[Индекс] = Область.Текст; + КонецЦикла; + КонецЦикла; + + Возврат НоваяТаблицаЗначений; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..0950ffae1 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,10 @@ + + + ЮТСравнениеСлужебныйСервер + + ru + Сравнение сервер + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 0d89d50b9..d5fbac304 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -165,12 +165,21 @@ ПараметрыЗаполнения = ЮТФабрикаСлужебный.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.ЗагрузитьИзМакета(Макет, + ОписанияТипов, + КэшЗначений, + ЗаменяемыеЗначения, + ПараметрыЗаполнения, + ТаблицаЗначений); +#Иначе Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ЗагрузитьИзМакета(Макет, - ОписанияТипов, - КэшЗначений, - ЗаменяемыеЗначения, - ПараметрыЗаполнения, - ТаблицаЗначений); + ОписанияТипов, + КэшЗначений, + ЗаменяемыеЗначения, + ПараметрыЗаполнения, + ТаблицаЗначений); +#КонецЕсли КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 6b6b1c00d..467ef4e9b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -22,8 +22,7 @@ ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); - Объект = НовыйОбъект(Менеджер, Данные, - ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); + Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи); ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); @@ -163,26 +162,12 @@ Знач ПараметрыЗаполнения, Знач ТаблицаЗначений) Экспорт - Таблица = ЮТТестовыеДанныеСлужебныйТаблицыЗначений.ЗагрузитьИзМакета(Макет, - ОписанияТипов, - КэшЗначений, - ЗаменяемыеЗначения, - ПараметрыЗаполнения); - - Если ТаблицаЗначений Тогда - Возврат Таблица; - КонецЕсли; - - Реквизиты = СтрСоединить(ЮТКоллекции.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ","); - Результат = Новый Массив(Таблица.Количество()); - - Для Инд = 0 По Таблица.Количество() - 1 Цикл - Запись = Новый Структура(Реквизиты); - ЗаполнитьЗначенияСвойств(Запись, Таблица[Инд]); - Результат[Инд] = Запись; - КонецЦикла; - - Возврат Результат; + Возврат ЮТТестовыеДанныеСлужебныйСервер.ЗагрузитьИзМакета(Макет, + ОписанияТипов, + КэшЗначений, + ЗаменяемыеЗначения, + ПараметрыЗаполнения, + ТаблицаЗначений); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" similarity index 95% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 734c06059..871127613 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,7 +18,37 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения) Экспорт +Функция ЗагрузитьИзМакета(Знач Макет, + Знач ОписанияТипов, + КэшЗначений, + Знач ЗаменяемыеЗначения, + Знач ПараметрыЗаполнения, + Знач ТаблицаЗначений) Экспорт + + Таблица = ЗагрузитьВТаблицуИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения); + + Если ТаблицаЗначений Тогда + Возврат Таблица; + КонецЕсли; + + Реквизиты = СтрСоединить(ЮТКоллекции.ВыгрузитьЗначения(Таблица.Колонки, "Имя"), ","); + Результат = Новый Массив(Таблица.Количество()); + + Для Инд = 0 По Таблица.Количество() - 1 Цикл + Запись = Новый Структура(Реквизиты); + ЗаполнитьЗначенияСвойств(Запись, Таблица[Инд]); + Результат[Инд] = Запись; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ЗагрузитьВТаблицуИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения) ДанныеМакета = ДанныеМакета(Макет); ТипДанныхМакета = ТипЗнч(ДанныеМакета); @@ -35,10 +65,6 @@ КонецФункции -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - Функция ЗагрузитьДанныеИзТабличногоДокумента(ДанныеМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения) КолонкиМакета = Новый Массив(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" similarity index 80% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" index 5efe35c92..3a3f3e639 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -1,6 +1,6 @@ - ЮТТестовыеДанныеСлужебныйТаблицыЗначений + ЮТТестовыеДанныеСлужебныйСервер ru Тестовые данные таблицы значений diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index de5fd754e..6293d43c1 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -139,11 +139,12 @@ CommonModule.ЮТСообщенияСлужебный CommonModule.ЮТСравнениеСлужебныйВызовСервера CommonModule.ЮТСравнениеСлужебныйКлиентСервер + CommonModule.ЮТСравнениеСлужебныйСервер CommonModule.ЮТСтроки CommonModule.ЮТТестовыеДанные CommonModule.ЮТТестовыеДанныеСлужебный CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера - CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений + CommonModule.ЮТТестовыеДанныеСлужебныйСервер CommonModule.ЮТТесты CommonModule.ЮТТестыСлужебный CommonModule.ЮТТипыДанныхСлужебный diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index 9c4b69b2a..798f93f73 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -18,7 +18,7 @@ CommonModule.ЮТТестовыеДанные CommonModule.ЮТТестовыеДанныеСлужебный CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера - CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений + CommonModule.ЮТТестовыеДанныеСлужебныйСервер DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных ЮТПодражатель diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 74399533e..5a66367aa 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -21,7 +21,7 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты - .ДобавитьТест("ЛомающийКонтекстТест") + .ДобавитьСерверныйТест("ЛомающийКонтекстТест") .ДобавитьТест("ПроверкаТранзакции") .СПараметрами(Ложь).ВТранзакции(Ложь) .СПараметрами(Истина).ВТранзакции(Истина) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 1ab80f8df..f7c33a6e7 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -394,11 +394,18 @@ .ВыбрасываетИсключение("не найдена в макете основная колонка с именем `Товар`"); ОжидаемоеСообщение = ?(ЮТОкружение.ИспользуетсяАнглийскаяЛокальПлатформы(), "Section not found", "Область не найдена"); + + Если ЮТест.Окружение().ОбычноеПриложение Тогда + ОжидаемоеИсключение = "Ошибка при вызове метода контекста (ПолучитьОбласть)"; + Иначе + ОжидаемоеИсключение = ОжидаемоеСообщение + ": ОсновнаяТаблица"; + КонецЕсли; + ЮТест.ОжидаетЧто(ЮТест.Данные()) .Метод("ЗагрузитьИзМакета") .Параметр("ОбщийМакет.ЮТ_МакетТестовыхДанных.ОсновнаяТаблица") .Параметр(Новый Структура("Цена", Новый ОписаниеТипов("Дата"))) - .ВыбрасываетИсключение(ОжидаемоеСообщение + ": ОсновнаяТаблица"); + .ВыбрасываетИсключение(ОжидаемоеИсключение); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 01240398c..cc2e86dab 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -79,15 +79,9 @@ .ДобавитьТест("СодержитПредикат") .ДобавитьТест("НеСодержитПредикат") .ДобавитьТест("ФорматированныеСтроки") - ; - - Массив = ЮТКоллекции.ЗначениеВМассиве(0, 1, "2"); - Список = Новый СписокЗначений(); - Список.ЗагрузитьЗначения(Массив); - - ЮТТесты.ДобавитьТест("ВСписке") - .СПараметрами(Массив) - .СПараметрами(Список) + .ДобавитьТест("ВСписке") + .СПараметрами("Массив") + .СПараметрами("Список") ; КонецПроцедуры @@ -2431,7 +2425,16 @@ КонецПроцедуры -Процедура ВСписке(Коллекция) Экспорт +Процедура ВСписке(ТипКоллекции) Экспорт + + Массив = ЮТКоллекции.ЗначениеВМассиве(0, 1, "2"); + + Если ТипКоллекции = "Массив" Тогда + Коллекция = Массив; + Иначе + Коллекция = Новый СписокЗначений(); + Коллекция.ЗагрузитьЗначения(Массив); + КонецЕсли; ЮТест.ОжидаетЧто(0) .ВСписке(Коллекция); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index f3ed434e4..992c0f920 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -78,11 +78,12 @@ ЮТест.ОжидаетЧто(Тесты.Количество(), "Количество тестов модуля") .БольшеИлиРавно(1); + ТипКлиента = ?(ЮТест.Окружение().ОбычноеПриложение, "КлиентОбычноеПриложение", "КлиентУправляемоеПриложение"); ЮТест.ОжидаетЧто(Тесты[0], "Первый тест") .Свойство("Имя").Равно("ИсполняемыеСценарииМодуля") .Свойство("Представление").НеЗаполнено() .Свойство("Теги").Равно(Новый Массив()) - .Свойство("КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве("КлиентУправляемоеПриложение")); + .Свойство("КонтекстВызова").Равно(ЮТКоллекции.ЗначениеВМассиве(ТипКлиента)); ПараметрыЗапуска = ЮТФабрика.ПараметрыЗапуска(); ПараметрыЗапуска.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("tests"); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 3d4589395..975fc181a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -76,11 +76,7 @@ Процедура ПослеВсехТестов() Экспорт ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов"); -#Если ТолстыйКлиентОбычноеПриложение Тогда - ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлинуБольше(17) - .ИмеетДлинуМеньше(21); -#ИначеЕсли Клиент Тогда +#Если Клиент Тогда ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) .ИмеетДлину(24); // Количество вызванных обработчиков событий #Иначе @@ -182,7 +178,7 @@ #ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда Утверждение.Свойство("ОбычноеПриложение").Равно(Ложь) .Свойство("ТолстыйКлиент").Равно(Истина); -#Иначе +#ИначеЕсли Клиент Тогда Утверждение.Свойство("ОбычноеПриложение").Равно(Ложь) .Свойство("ТолстыйКлиент").Равно(Ложь); #КонецЕсли From 04a182fa6bf7db3070295bc637001e7c8e0356fd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 17:38:01 +0300 Subject: [PATCH 69/86] =?UTF-8?q?fix(sonar):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 36c75132c..eb730142b 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -26,7 +26,7 @@ Функция ТабличныеДокументыРавны(Знач ТабличныйДокумент1, Знач ТабличныйДокумент2) Экспорт - Возврат ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(ТабличныйДокумент1, ТабличныйДокумент2) + Возврат ЮТСравнениеСлужебныйСервер.ТабличныеДокументыРавны(ТабличныйДокумент1, ТабличныйДокумент2); КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 8833c438e..d2df5c676 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -59,9 +59,9 @@ #Область СлужебныеПроцедурыИФункции -// https://github.com/vanessa-opensource/add -// перенесен из Functest Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) + // https://github.com/vanessa-opensource/add + // перенесен из Functest ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда From f6cef7f4c8b804e0979672a4b2b24f385ba36ef4 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Mon, 2 Sep 2024 01:14:59 +0300 Subject: [PATCH 70/86] =?UTF-8?q?feat(smoke):=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BD=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=82=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=20=D0=B8=20=D0=BF=D0=BE=D0=B4=D1=85=D0=BE=D0=B4=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/smoke/index.md | 73 +- .../docs/features/smoke/opening-forms.md | 77 + .../Module.bsl" | 338 +- .../Module.bsl" | 393 ++ ...1\200\320\262\320\265\321\200\320\260.mdo" | 10 + .../Module.bsl" | 64 + ...0\265\321\200\320\262\320\265\321\200.mdo" | 12 + .../Template.txt" | 17 + ...0\265\321\201\321\202\320\276\320\262.mdo" | 9 + .../smoke/src/Configuration/Configuration.mdo | 3 + ...0\267\320\260\321\206\320\270\321\217.mdo" | 1 - .../Module.bsl" | 26 +- .../Module.bsl" | 6 - .../Module.bsl" | 94 +- .../Module.bsl" | 119 - .../demo-configuration/.settings/Default.cset | 4 + .../.settings/ManagedEnvironments.prefs | 11 + .../.settings/RuntimePropertyLaunch.prefs | 2 + .../com.e1c.g5.v8.dt.formatter.bsl.prefs | 17 + .../com.e1c.g5.v8.dt.lcore.ui.templates.prefs | 2 + .../com.e1c.v8codestyle.autosort.prefs | 2 + .../.settings/com.e1c.v8codestyle.bsl.prefs | 3 + .../.settings/com.e1c.v8codestyle.prefs | 3 + .../Form.form" | 526 ++ .../Module.bsl" | 0 .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 655 +++ ...0\276\320\262\320\275\320\276\320\271.mdo" | 23 +- .../Form.form" | 143 + ...0\221\320\260\320\275\320\272\320\270.mdo" | 30 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 333 ++ ...0\270\321\201\321\214\320\274\320\260.mdo" | 42 +- .../Form.form" | 195 + ...0\263\320\265\320\275\321\202\321\213.mdo" | 60 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 379 ++ ...0\276\320\262\320\275\320\276\320\271.mdo" | 13 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 381 ++ ...0\272\320\276\320\275\321\202\320\276.mdo" | 12 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 379 ++ ...0\277\320\273\320\260\321\202\320\260.mdo" | 34 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 379 ++ ...0\224\320\265\320\275\320\265\320\263.mdo" | 34 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 334 ++ ...0\262\320\260\321\200\320\276\320\262.mdo" | 10 + .../Form.form" | 143 + ...0\273\321\214\320\275\321\213\320\265.mdo" | 58 +- .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 425 ++ ...0\222\320\260\320\273\321\216\321\202.mdo" | 22 +- .../Form.form" | 136 + .../ExtInfo/ListSettings.dcss" | 17 + .../Form.form" | 379 ++ ...0\237\320\270\321\201\320\265\320\274.mdo" | 24 +- .../Form.form" | 243 + ...0\262\320\260\321\200\320\276\320\262.mdo" | 17 +- .../Form.form" | 206 + ...0\273\320\260\320\264\320\260\321\205.mdo" | 10 + .../Form.form" | 4946 +++++++++++++++++ .../Module.bsl" | 365 ++ .../Form.form" | 82 + .../Form.form" | 206 + ...1\207\320\265\321\202\320\260\320\274.mdo" | 30 + .../Module.bsl" | 284 + ...1\200\320\262\320\265\321\200\320\260.mdo" | 5 + tests/src/Configuration/Configuration.mdo | 1 + tools/docker/docker-compose.yml | 24 + tools/docker/onec-server/Dockerfile | 90 + 73 files changed, 12552 insertions(+), 545 deletions(-) create mode 100644 documentation/docs/features/smoke/opening-forms.md create mode 100644 "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" create mode 100644 "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" create mode 100644 "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" create mode 100644 "exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" create mode 100644 "exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/Template.txt" create mode 100644 "exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262.mdo" create mode 100644 fixtures/demo-configuration/.settings/Default.cset create mode 100644 fixtures/demo-configuration/.settings/ManagedEnvironments.prefs create mode 100644 fixtures/demo-configuration/.settings/RuntimePropertyLaunch.prefs create mode 100644 fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs create mode 100644 fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.lcore.ui.templates.prefs create mode 100644 fixtures/demo-configuration/.settings/com.e1c.v8codestyle.autosort.prefs create mode 100644 fixtures/demo-configuration/.settings/com.e1c.v8codestyle.bsl.prefs create mode 100644 fixtures/demo-configuration/.settings/com.e1c.v8codestyle.prefs create mode 100644 "fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" create mode 100644 "fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Module.bsl" create mode 100644 "fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217/Form.form" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Form.form" create mode 100644 "fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/Forms/\320\244\320\276\321\200\320\274\320\260\320\243\320\267\320\273\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" create mode 100644 "fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Form.form" create mode 100644 "fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Module.bsl" create mode 100644 "fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Form.form" create mode 100644 "fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" create mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" create mode 100644 tools/docker/docker-compose.yml create mode 100644 tools/docker/onec-server/Dockerfile diff --git a/documentation/docs/features/smoke/index.md b/documentation/docs/features/smoke/index.md index b25a1bdab..bcad641dc 100644 --- a/documentation/docs/features/smoke/index.md +++ b/documentation/docs/features/smoke/index.md @@ -8,10 +8,7 @@ Возможности: -* Тестирование открытия форм: - * Нового элемента - * Существующего элемента - * Скопированного элемента +* [Тестирование открытия форм](opening-forms.md) ## Запуск @@ -28,43 +25,7 @@ | Имя параметра | Тип | Значение по умолчанию | Описание | |----------------|-------------------|-----------------------|-------------------------------------------------------------------| | `Использовать` | `boolean` | `false` | Использование дымовых тестов | -| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](#настройка-тестов-открытия-форм) | - -### Настройка тестов открытия форм - -| Имя параметра | Тип | Значение по умолчанию | Описание | -|--------------------------|-------------------|-----------------------|-----------------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование тестов открытия форм | -| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов | -| `<Имя типа теста>` | `Object\|boolean` | `true` | [Настройка типа теста](#настройка-типа-теста) | -| `<Имя вида метаданного>` | `Object\|boolean` | `true` | Настройка тестирования для вида объектов метаданных | - -#### Настройка типа теста - -Доступные следующие типы тестов открытия форм: - -* `Новый` - открытие формы - открытие формы **нового** элемента элемента -* `Существующий` - открытие формы **существующего** элемента -* `Скопированный` - открытие формы **скопированного** элемента -* `Список` - открытие формы **списка** -* `Выбор` - открытие формы **выбора** - -Для каждого из типов можно указать свои настройки - -| Имя параметра | Тип | Значение по умолчанию | Описание | -|----------------|-----------------|-----------------------|-------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование типа тестов открытия форм | -| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов для типа теста | - -#### Настройка вида метаданных - -Для каждого вида метаданных можно указать свои настройки. В качестве ключа используется имя вида метаданных (Справочник, Справочники, Catalog, Catalogs). -Есть возможность выключить или задать исключаемые объекты. - -| Имя параметра | Тип | Значение по умолчанию | Описание | -|----------------|-----------------|-----------------------|------------------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование вида метаданных в тестах открытия форм | -| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов вида метаданных | +| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](opening-forms.md#настройки) | ## Примеры настроек @@ -79,35 +40,7 @@ // Настройка дымовых тестов "ДымовыеТесты": { "Использовать": true, // Включение дымовых тестов - "ОткрытиеФорм": true // Использование тестов открытия форм - } -} -``` - -Настройка исключений - -```json title="Исключения.json" -{ - "filter": { - "extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов - }, - // Настройка дымовых тестов - "ДымовыеТесты": { - "Использовать": true, - "ОткрытиеФорм": { - "Использовать": true, - "БизнесПроцессы": false, // Отключение проверки бизнес процессов - "Исключения": "Удалить_*", // Отключение проверки для объектов, название которых начинается с "Удалить_" - "Документы": { - "Исключения": [ - "ПКО", "РКО" // Отключение проверки документов ПКО и РКО - ] - }, - "Скопированный": false, // Отключение текстов открытия скопированного элемента, - "Новый": { - "Исключения": ["Номенклатура"] // Исключение номенклатуры из тестов открытия нового элемента - } - } + "ОткрытиеФорм": true // Использование тестов открытия форм } } ``` diff --git a/documentation/docs/features/smoke/opening-forms.md b/documentation/docs/features/smoke/opening-forms.md new file mode 100644 index 000000000..9bedd7ebf --- /dev/null +++ b/documentation/docs/features/smoke/opening-forms.md @@ -0,0 +1,77 @@ +# Тестирование открытия форм + +## Возможности + +* Нового элемента +* Существующего элемента +* Скопированного элемента + +## Настройки + +### Настройка тестов открытия форм + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|--------------------------|-------------------|-----------------------|-----------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование тестов открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов | +| `<Имя типа теста>` | `Object\|boolean` | `true` | [Настройка типа теста](#настройка-типа-теста) | +| `<Имя вида метаданного>` | `Object\|boolean` | `true` | Настройка тестирования для вида объектов метаданных | + +#### Настройка типа теста + +Доступные следующие типы тестов открытия форм: + +* `Новый` - открытие формы - открытие формы **нового** элемента элемента +* `Существующий` - открытие формы **существующего** элемента +* `Скопированный` - открытие формы **скопированного** элемента +* `Список` - открытие формы **списка** +* `Выбор` - открытие формы **выбора** + +Для каждого из типов можно указать свои настройки + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|----------------|-----------------|-----------------------|-------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование типа тестов открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов для типа теста | + +#### Настройка вида метаданных + +Для каждого вида метаданных можно указать свои настройки. В качестве ключа используется имя вида метаданных (Справочник, Справочники, Catalog, Catalogs). +Есть возможность выключить или задать исключаемые объекты. + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|----------------|-----------------|-----------------------|------------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование вида метаданных в тестах открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов вида метаданных | + +## Примеры + +Настройка исключений + +```json title="Исключения.json" +{ + "filter": { + "extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов + }, + // Настройка дымовых тестов + "ДымовыеТесты": { + "Использовать": true, + "ОткрытиеФорм": { + "Использовать": true, + "БизнесПроцессы": false, // Отключение проверки бизнес процессов + "Исключения": "Удалить_*", // Отключение проверки для объектов, название которых начинается с "Удалить_" + "Документы": { + "ПКО": false, // Отключение проверки ПКО + "РКО": false, // Отключение проверки РКО + "Заказ": { + "Новый": false // Отключение проверки открытия нового заказа + } + }, + "Справочники": { + "ОбычныеФормы": false + }, + "Скопированный": false, // Отключение текстов открытия скопированного элемента, + } + } +} +``` diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" index bf9be44b6..f7cd6065a 100644 --- "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - Настройки = Настройки(); + Настройки = ЮТДымовыеТесты.ПараметрыВидаДымовогоТеста(КлючНастройки()); Если НЕ Настройки.Использовать Тогда Возврат; @@ -28,29 +28,22 @@ ЮТТесты.ВТранзакции().УдалениеТестовыхДанных(); - КоллекцииМетаданных = СтрРазделить("Справочник, Документ", ", ", Ложь); - ВладельцыФорм = ЮТДымовыеТесты.Формы(КоллекцииМетаданных, ОтборМетаданных(Настройки)); + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + ПараметрыТиповТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ПараметрыТиповТестов(); - ТекущийТипОбъекта = Неопределено; + Для Каждого КоллекцияМетаданных Из ДеревоТестов Цикл - Для Каждого ВладелецФорм Из ВладельцыФорм Цикл + ЮТТесты.ДобавитьТестовыйНабор(КоллекцияМетаданных.ИмяКоллекции); - Если НЕ ВладелецФорм.Просмотр Тогда - Продолжить; - КонецЕсли; - - НаборыИсключений = Новый Массив; - Если ТекущийТипОбъекта <> ВладелецФорм.Тип Тогда - ТекущийТипОбъекта = ВладелецФорм.Тип; - ЮТТесты.ДобавитьТестовыйНабор(ТекущийТипОбъекта); - КонецЕсли; - - Формы = ВладелецФорм.Формы; - ВладелецФорм.Удалить("Формы"); - - Для Каждого ОписаниеФормы Из Формы Цикл + Для Каждого Объект Из КоллекцияМетаданных.Объекты Цикл + + ОписаниеОбъекта = Новый Структура("Тип, Имя", КоллекцияМетаданных.Тип, Объект.Имя); - ЗарегистрироватьТестыФормы(ВладелецФорм, ОписаниеФормы, Настройки); + Для Каждого ТипТеста Из Объект.ТипыТестов Цикл + + ЗарегистрироватьТест(ОписаниеОбъекта, ТипТеста, ПараметрыТиповТестов[ТипТеста].Представление); + + КонецЦикла; КонецЦикла; @@ -58,187 +51,223 @@ КонецПроцедуры -Процедура Инициализация(ПараметрыЗапуска) Экспорт - - ЗагружаемыеНастройки = ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, "ОткрытиеФорм"); - Настройки = ЗагрузитьНастройки(ЗагружаемыеНастройки); - - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаНастройки(), Настройки); - -КонецПроцедуры - #КонецОбласти #Область СлужебныеПроцедурыИФункции -Процедура ЗарегистрироватьТестыФормы(ОписаниеОбъектаМетаданных, ОписаниеФормы, Настройки) +Функция КлючНастройки() - ТипыТестов = ТипыТестов(); + Возврат "ОткрытиеФорм"; - ОписаниеФормы.Вставить("Владелец", ОписаниеОбъектаМетаданных); - ОписаниеФормы.Вставить("ТипФормы"); +КонецФункции + +//Процедура ЗарегистрироватьТестыФормы(ОписаниеОбъекта, ТипТеста) +// +// +// ТипыТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ТипыТестов(); +// +// Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда +// +// ОписаниеФормы.ТипФормы = "ФормаГруппы"; +// +// Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы"); +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированной группы"); +// КонецЕсли; +// Если ОписаниеОбъектаМетаданных.Редактирование Тогда +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующей группы"); +// Иначе +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующей группы"); +// КонецЕсли; +// +// ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда +// +// ОписаниеФормы.ТипФормы = "ФормаОбъекта"; +// Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта"); +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта"); +// КонецЕсли; +// Если ОписаниеОбъектаМетаданных.Редактирование Тогда +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующего объекта"); +// Иначе +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующего объекта"); +// КонецЕсли; +// +// ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда +// +// ОписаниеФормы.ТипФормы = "ФормаВыбораГруппы"; +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора группы"); +// +// ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора Тогда +// +// ОписаниеФормы.ТипФормы = "ФормаВыбора"; +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора"); +// +// ИначеЕсли ОписаниеФормы.ЭтоФормаСписка Тогда +// +// ОписаниеФормы.ТипФормы = "ФормаСписка"; +// ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Список, "списка"); +// +// КонецЕсли; +// +//КонецПроцедуры +// +//Функция ИсключитьТипТеста(Настройки, ТипМетаданного, ТипТеста) +// +// НастройкаТипаТеста = Неопределено; +// НастройкаТипаМетаданных = Неопределено; +// +// Возврат (Настройки.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать) +// Или (Настройки.Свойство(ТипМетаданного, НастройкаТипаМетаданных) +// И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста) +// И НЕ НастройкаТипаТеста.Использовать); +// +//КонецФункции +// +//Функция ТестПодходитПодИсключения(Настройки, ОписаниеФормы, ТипТеста) +// +// НастройкаТипаМетаданных = Неопределено; +// НастройкаТипаТеста = Неопределено; +// Если Настройки.Свойство(ОписаниеФормы.Владелец.Тип, НастройкаТипаМетаданных) Тогда +// НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста); +// КонецЕсли; +// +// Возврат НастройкаТипаТеста <> Неопределено И +// ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодИсключения(ОписаниеФормы.Владелец.Имя, НастройкаТипаТеста.Исключения); +// +//КонецФункции +// +Процедура ЗарегистрироватьТест(ОписаниеОбъекта, ТипТеста, Представление) - Если ОписаниеФормы.ЭтоФормаОбъекта И ОписаниеФормы.ЭтоФормаГруппы Тогда - - ОписаниеФормы.ТипФормы = "ФормаГруппы"; - - Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы"); - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированной группы"); - КонецЕсли; - Если ОписаниеОбъектаМетаданных.Редактирование Тогда - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующей группы"); - Иначе - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующей группы"); - КонецЕсли; - - ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда - - ОписаниеФормы.ТипФормы = "ФормаОбъекта"; - Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта"); - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта"); - КонецЕсли; - Если ОписаниеОбъектаМетаданных.Редактирование Тогда - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующего объекта"); - Иначе - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующего объекта"); - КонецЕсли; - - ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора И ОписаниеФормы.ЭтоФормаГруппы Тогда - - ОписаниеФормы.ТипФормы = "ФормаВыбораГруппы"; - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора группы"); - - ИначеЕсли ОписаниеФормы.ЭтоФормаВыбора Тогда - - ОписаниеФормы.ТипФормы = "ФормаВыбора"; - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Выбор, "выбора"); - - ИначеЕсли ОписаниеФормы.ЭтоФормаСписка Тогда - - ОписаниеФормы.ТипФормы = "ФормаСписка"; - ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Список, "списка"); - - КонецЕсли; + ИмяМетода = СтрШаблон("ОткрытьФорму_%1", ТипТеста); + ПредставлениеТеста = СтрШаблон("%1.%2. Форма %3", ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя, Представление); + + ЮТТесты.ДобавитьКлиентскийТест(ИмяМетода, ПредставлениеТеста, ЮТКоллекции.ЗначениеВМассиве(ТипТеста)) + .СПараметрами(ОписаниеОбъекта); КонецПроцедуры -Функция ИсключитьТипТеста(Настройки, ТипМетаданного, ТипТеста) - - НастройкаТипаТеста = Неопределено; - НастройкаТипаМетаданных = Неопределено; +//Функция ОтборМетаданных(Настройки) +// +// Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); +// ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); +// Отбор.Исключения = Настройки.Исключения; +// +// Для Каждого Элемент Из Настройки Цикл +// +// Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда +// ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); +// ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать; +// ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения; +// +// Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных); +// КонецЕсли; +// +// КонецЦикла; +// +// Возврат Отбор; +// +//КонецФункции +// +#Область Тесты + +Процедура ОткрытьФорму_Новый(ОписаниеОбъекта) Экспорт - Возврат (Настройки.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать) - Или (Настройки.Свойство(ТипМетаданного, НастройкаТипаМетаданных) - И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста) - И НЕ НастройкаТипаТеста.Использовать); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаОбъекта"); -КонецФункции +КонецПроцедуры -Функция ТестПодходитПодИсключения(Настройки, ОписаниеФормы, ТипТеста) - - НастройкаТипаМетаданных = Неопределено; - НастройкаТипаТеста = Неопределено; - Если Настройки.Свойство(ОписаниеФормы.Владелец.Тип, НастройкаТипаМетаданных) Тогда - НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста); - КонецЕсли; +Процедура ОткрытьФорму_НоваяГруппа(ОписаниеОбъекта) Экспорт - Возврат НастройкаТипаТеста <> Неопределено И - ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодИсключения(ОписаниеФормы.Владелец.Имя, НастройкаТипаТеста.Исключения); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаГруппы"); -КонецФункции +КонецПроцедуры -Процедура ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипТеста, Представление) +Процедура ОткрытьФорму_Существующий(ОписаниеОбъекта) Экспорт - Владелец = ОписаниеФормы.Владелец; - Если ИсключитьТипТеста(Настройки, Владелец.Тип, ТипТеста) Или ТестПодходитПодИсключения(Настройки, ОписаниеФормы, ТипТеста) Тогда - Возврат; - КонецЕсли; + Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", Ложь)); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя, Параметры); - ИмяМетода = СтрШаблон("ОткрытьФорму_%1", ТипТеста); - ПредставлениеТеста = СтрШаблон("%1.%2. Форма %3", Владелец.Тип, Владелец.Имя, Представление); + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя)); + КонецЕсли; - ЮТТесты.ДобавитьКлиентскийТест(ИмяМетода, ПредставлениеТеста, ЮТКоллекции.ЗначениеВМассиве(ОписаниеФормы.ТипФормы, ТипТеста)) - .СПараметрами(ОписаниеФормы); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаОбъекта", Ключ); КонецПроцедуры -Функция ОтборМетаданных(Настройки) +Процедура ОткрытьФорму_СуществующаяГруппа(ОписаниеОбъекта) Экспорт - Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); - ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); - Отбор.Исключения = Настройки.Исключения; + Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", Истина)); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя, Параметры); - Для Каждого Элемент Из Настройки Цикл - - Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда - ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); - ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать; - ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения; - - Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных); - КонецЕсли; - - КонецЦикла; + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующую группы для типа `%1.%2`", ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя)); + КонецЕсли; - Возврат Отбор; + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаОбъекта", Ключ); -КонецФункции - -#Область Тесты +КонецПроцедуры -Процедура ОткрытьФорму_Новый(ОписаниеФормы) Экспорт +Процедура ОткрытьФорму_Скопированный(ОписаниеОбъекта) Экспорт + + Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", Ложь)); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя, Параметры); + + Если НЕ ЗначениеЗаполнено(Ключ) Тогда + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя)); + КонецЕсли; - ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаОбъекта", Ключ); КонецПроцедуры -Процедура ОткрытьФорму_Существующий(ОписаниеФормы) Экспорт - - ОбъектМетаданных = ОписаниеФормы.Владелец; - Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", ОписаниеФормы.ЭтоФормаГруппы)); +Процедура ОткрытьФорму_СкопированнаяГруппа(ОписаниеОбъекта) Экспорт - Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, Параметры); + Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", Истина)); + Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя, Параметры); Если НЕ ЗначениеЗаполнено(Ключ) Тогда - ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); + ЮТест.Пропустить(СтрШаблон("Не удалось найти существующую группы для типа `%1.%2`", ОписаниеОбъекта.Тип, ОписаниеОбъекта.Имя)); КонецЕсли; - ОткрытьЗакрытьФорму(ОбъектМетаданных, ОписаниеФормы.ТипФормы, Ключ); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаОбъекта", Ключ); КонецПроцедуры -Процедура ОткрытьФорму_Скопированный(ОписаниеФормы) Экспорт +Процедура ОткрытьФорму_Список(ОписаниеОбъекта) Экспорт - ОбъектМетаданных = ОписаниеФормы.Владелец; - Параметры = Новый Структура("Отбор", Новый Структура("ЭтоГруппа", ОписаниеФормы.ЭтоФормаГруппы)); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаСписка"); + +КонецПроцедуры + +Процедура ОткрытьФорму_Выбор(ОписаниеОбъекта) Экспорт - Ключ = ЮТДымовыеТесты.СлучайныйЭлемент(ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, Параметры); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаВыбора"); - Если НЕ ЗначениеЗаполнено(Ключ) Тогда - ЮТест.Пропустить(СтрШаблон("Не удалось найти существующий объект для типа `%1.%2`", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя)); - КонецЕсли; +КонецПроцедуры + +Процедура ОткрытьФорму_ВыборГруппы(ОписаниеОбъекта) Экспорт - ОткрытьЗакрытьФорму(ОбъектМетаданных, ОписаниеФормы.ТипФормы); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаВыбораГруппы"); КонецПроцедуры -Процедура ОткрытьФорму_Выбор(ОписаниеФормы) Экспорт +Процедура ОткрытьФорму_Основная(ОписаниеОбъекта) Экспорт - ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "Форма"); КонецПроцедуры -Процедура ОткрытьФорму_ВыборГруппы(ОписаниеФормы) Экспорт +Процедура ОткрытьФорму_Настройки(ОписаниеОбъекта) Экспорт - ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаНастроек"); КонецПроцедуры -Процедура ОткрытьФорму_Список(ОписаниеФормы) Экспорт +Процедура ОткрытьФорму_Варианты(ОписаниеОбъекта) Экспорт - ОткрытьЗакрытьФорму(ОписаниеФормы.Владелец, ОписаниеФормы.ТипФормы); + ОткрытьЗакрытьФорму(ОписаниеОбъекта, "ФормаВарианта"); КонецПроцедуры @@ -325,7 +354,7 @@ НастройкиТестов = НастройкиПоУмолчанию(); Путь = "ДымовыеТесты.ОткрытиеФорм"; - ТипыТестов = ТипыТестов(); + ТипыТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ТипыТестов(); Для Каждого Элемент Из ЗагружаемаяНастройка Цикл @@ -355,7 +384,7 @@ ТипМетаданного = ЮТМетаданные.ТипыМетаданных()[ИмяНастройки]; ЗагружаемаяНастройка = НормализованноеЗначениеНастрйоки(ЗначениеНастройки); - ТипыТестов = ТипыТестов(); + ТипыТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ТипыТестов(); Для Каждого Элемент Из ЗагружаемаяНастройка Цикл @@ -404,19 +433,6 @@ КонецФункции -Функция ТипыТестов() - - Типы = Новый Структура; - Типы.Вставить("Новый", "Новый"); - Типы.Вставить("Существующий", "Существующий"); - Типы.Вставить("Скопированный", "Скопированный"); - Типы.Вставить("Список", "Список"); - Типы.Вставить("Выбор", "Выбор"); - - Возврат Типы; - -КонецФункции - Функция НастройкиПоУмолчанию() Настройки = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки(); diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..9f1bf3b59 --- /dev/null +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,393 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ТипыТестов() Экспорт + + ПараметрыТестов = ПереопределеннаяНастройка(ЮТДымовыеТесты.ПараметрыДымовыхТестов(), "ОткрытиеФорм"); + ПараметрыЗагрузки = ПараметрыЗагрузки(); + ТипыМетаданных = ЮТМетаданные.ТипыМетаданных(); + + ОписанияКоллекций = Новый Массив; + + Для Каждого ИмяКоллекции Из ПараметрыЗагрузки.КоллекцииМетаданных Цикл + + Настройка = ПереопределеннаяНастройка(ПараметрыТестов, ИмяКоллекции); + + Если НЕ Настройка.Использовать Тогда + Продолжить; + КонецЕсли; + + ОписанияОбъектов = ОбработатьКоллекциюМетаданных(ИмяКоллекции, Настройка, ПараметрыЗагрузки); + + Если ЗначениеЗаполнено(ОписанияОбъектов) Тогда + Описание = Новый Структура("ИмяКоллекции, Тип, Объекты", ИмяКоллекции, ТипыМетаданных[ИмяКоллекции].Имя, ОписанияОбъектов); + ОписанияКоллекций.Добавить(Описание); + КонецЕсли; + + КонецЦикла; + + Возврат ОписанияКоллекций; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ПараметрыНастройки + +Функция ПараметрыЗагрузки() + + Параметры = Новый Структура; + + ЗагрузитьТипыТестовМетаданных(Параметры); + ЗагрузитьПараметрыТиповТестов(Параметры); + + ВидыФорм = Новый Массив; + + Для Каждого ПараметрыТипТеста Из Параметры.ПараметрыТиповТестов Цикл + + Если ВидыФорм.Найти(ПараметрыТипТеста.Значение.ВидФормы) = Неопределено Тогда + ВидыФорм.Добавить(ПараметрыТипТеста.Значение.ВидФормы); + КонецЕсли; + + КонецЦикла; + + Параметры.Вставить("ВидыФорм", ВидыФорм); + + Окружение = ЮТОкружение.ОписаниеОкружения(); + ДоступныОбычныеФормы = Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении И Окружение.ТолстыйКлиент; + ДоступныУправляемыеФормы = Метаданные.ИспользоватьУправляемыеФормыВОбычномПриложении; + + Параметры.Вставить("ЭтоОбычноеПриложение", Окружение.ОбычноеПриложение); + Параметры.Вставить("ДоступныОбычныеФормы", ДоступныОбычныеФормы); + Параметры.Вставить("ДоступныУправляемыеФормы", ДоступныУправляемыеФормы); + + Возврат Параметры; + +КонецФункции + +Процедура ЗагрузитьТипыТестовМетаданных(ПараметрыЗагрузки) + + Макет = ПолучитьОбщийМакет("ДТОткрытиеФормТипыТестов").ПолучитьТекст(); + ДанныеМакета = ЮТТестовыеДанные.ТаблицаMarkDown(Макет); + + ТипыТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ТипыТестов(); + ТипыТестовМетаданных = Новый Структура; + КоллекцииМетаданных = Новый Массив; + + Для Каждого Запись Из ДанныеМакета Цикл + + КоллекцииМетаданных.Добавить(Запись.Имя); + ТипыТестовКоллекции = Новый Массив; + + Для Каждого ТипТеста Из ТипыТестов Цикл + Если Запись[ТипТеста.Ключ] = "+" Тогда + ТипыТестовКоллекции.Добавить(ТипТеста.Ключ); + КонецЕсли; + КонецЦикла; + + ТипыТестовМетаданных.Вставить(Запись.Имя, ТипыТестовКоллекции); + + КонецЦикла; + + ПараметрыЗагрузки.Вставить("КоллекцииМетаданных", КоллекцииМетаданных); + ПараметрыЗагрузки.Вставить("ТипыТестовМетаданных", ТипыТестовМетаданных); + +КонецПроцедуры + +Процедура ЗагрузитьПараметрыТиповТестов(ПараметрыЗагрузки) + + ПараметрыТиповТестов = ДТОткрытиеФормСлужебныйКлиентСервер.ПараметрыТиповТестов(); + ПараметрыЗагрузки.Вставить("ПараметрыТиповТестов", ПараметрыТиповТестов); + +КонецПроцедуры + +Функция ПараметрыТипаТеста(Имя, Право) + + Возврат Новый Структура("Имя, Право", Имя, Право); + +КонецФункции + +Функция БазоваяНастройка() + + Настройка = Новый Структура; + Настройка.Вставить("Использовать", Истина); + Настройка.Вставить("НаборыИсключений", Новый Массив); + + // Типы тестов, см. ДТОткрытиеФорм.ТипыТестов + Настройка.Вставить("Новый", Истина); + Настройка.Вставить("Существующий", Истина); + Настройка.Вставить("Скопированный", Истина); + Настройка.Вставить("Список", Истина); + Настройка.Вставить("Выбор", Истина); + + Настройка.Вставить("НоваяГруппа", Истина); + Настройка.Вставить("СуществующаяГруппа", Истина); + Настройка.Вставить("СкопированнаяГруппа", Истина); + Настройка.Вставить("ВыборГруппы", Истина); + + Настройка.Вставить("Основная", Истина); + Настройка.Вставить("Настройки", Истина); + Настройка.Вставить("Варианты", Истина); + + // Типы форм + Настройка.Вставить("ОбычныеФормы", Истина); + Настройка.Вставить("УправляемыеФормы", Истина); + + Возврат Настройка; + +КонецФункции + +Функция ПереопределеннаяНастройка(БазоваяНастройка, Ключ) + + ТекущаяНастройка = ЮТКоллекции.ЗначениеСтруктуры(БазоваяНастройка, Ключ); + + Если ТекущаяНастройка = Неопределено Тогда + Возврат БазоваяНастройка; + КонецЕсли; + + Настройка = БазоваяНастройка(); + ЗаполнитьЗначенияСвойств(Настройка, БазоваяНастройка); + + ТипНастройки = ТипЗнч(ТекущаяНастройка); + Если ТипНастройки = Тип("Булево") Тогда + ТекущаяНастройка = Новый Структура("Использовать", ТекущаяНастройка); + ИначеЕсли ТекущаяНастройка.Свойство("Исключения") И ЗначениеЗаполнено(ТекущаяНастройка.Исключения) Тогда + Исключения = ЮТДымовыеТестыСлужебныйКлиентСервер.НормализованнаяНастройкаИсключений(ТекущаяНастройка.Исключения); + НаборыИсключений = ЮТКоллекции.СкопироватьМассив(Настройка.НаборыИсключений, Ложь); + НаборыИсключений.Добавить(Исключения); + Настройка.НаборыИсключений = НаборыИсключений; + КонецЕсли; + + ЮТКоллекции.ДополнитьСтруктуру(Настройка, ТекущаяНастройка); + + Возврат Настройка; + +КонецФункции + +#КонецОбласти + +#Область ПостроениеДереваТестов + +Функция ОбработатьКоллекциюМетаданных(ИмяКоллекции, НастройкаКоллекции, ПараметрыЗагрузки) + + Коллекция = Метаданные[ИмяКоллекции]; + ОписанияОбъектов = Новый Массив; + ТипыТестовКоллекции = ПараметрыЗагрузки.ТипыТестовМетаданных[ИмяКоллекции]; + + Для Каждого ОбъектМетаданных Из Коллекция Цикл + + Если НЕ ПравоДоступа("Просмотр", ОбъектМетаданных) + ИЛИ ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодНаборыИсключений(ОбъектМетаданных.Имя, НастройкаКоллекции.НаборыИсключений) Тогда + Продолжить; + КонецЕсли; + + Настройка = ПереопределеннаяНастройка(НастройкаКоллекции, ОбъектМетаданных.Имя); + + Если НЕ Настройка.Использовать Тогда + Продолжить; + КонецЕсли; + + ОписаниеОбъекта = ОбработатьОбъектМетаданных(ОбъектМетаданных, Настройка, ТипыТестовКоллекции, ПараметрыЗагрузки); + + Если ОписаниеОбъекта <> Неопределено Тогда + ОписанияОбъектов.Добавить(ОписаниеОбъекта); + КонецЕсли; + + КонецЦикла; + + Возврат ОписанияОбъектов; + +КонецФункции + +Функция ОбработатьОбъектМетаданных(Объект, НастройкаОбъекта, ТипыТестовКоллекции, ПараметрыЗагрузки) + + ФормыОбъекта = ФормыОбъекта(Объект, ПараметрыЗагрузки, НастройкаОбъекта.УправляемыеФормы, НастройкаОбъекта.ОбычныеФормы); + ПараметрыТиповТестов = ПараметрыЗагрузки.ПараметрыТиповТестов; + + Если НЕ ЗначениеЗаполнено(ФормыОбъекта) Тогда + Возврат Неопределено; + КонецЕсли; + + ОписаниеОбъекта = Новый Структура("Имя, ТипыТестов", Объект.Имя, Новый Массив); + + Для Каждого ТипТеста Из ТипыТестовКоллекции Цикл + + ОписаниеФормы = Неопределено; + ПараметрыТеста = ПараметрыТиповТестов[ТипТеста]; + + Если НЕ ФормыОбъекта.Свойство(ПараметрыТеста.ВидФормы, ОписаниеФормы) Или НЕ ПравоДоступа(ПараметрыТеста.Право, Объект) Тогда + Продолжить; + КонецЕсли; + + Если НастройкаОбъекта.Свойство(ОписаниеФормы.Имя) Тогда + НастройкаФормы = ПереопределеннаяНастройка(НастройкаОбъекта, ОписаниеФормы.Имя); + ИначеЕсли НастройкаОбъекта.Свойство(ОписаниеФормы.ВидФормы) Тогда + НастройкаФормы = ПереопределеннаяНастройка(НастройкаОбъекта, ОписаниеФормы.ВидФормы); + Иначе + НастройкаФормы = НастройкаОбъекта; + КонецЕсли; + + Если НастройкаФормы.Использовать И ЮТКоллекции.ЗначениеСтруктуры(НастройкаФормы, ТипТеста, Ложь) Тогда + ОписаниеОбъекта.ТипыТестов.Добавить(ТипТеста); + КонецЕсли; + + КонецЦикла; + + Возврат ОписаниеОбъекта; + +КонецФункции + +#Область ПодборФорм + +Функция ФормыОбъекта(Объект, ПараметрыЗагрузки, УправляемыеФормы, ОбычныеФормы) + + ВидыФорм = ПараметрыЗагрузки.ВидыФорм; + ФормыОбъекта = Новый Структура; + + Для Каждого ВидФормы Из ВидыФорм Цикл + + ОписаниеФормы = ПодходящаяФорма(Объект, ВидФормы, ПараметрыЗагрузки); + + Если ОписаниеФормы <> Неопределено И + (ОписаниеФормы.ЭтоУправляемаяФорма И УправляемыеФормы Или ОписаниеФормы.ЭтоОбычнаяФорма И ОбычныеФормы) Тогда + ФормыОбъекта.Вставить(ВидФормы, ОписаниеФормы); + КонецЕсли; + + КонецЦикла; + + Возврат ФормыОбъекта; + +КонецФункции + +Функция ПодходящаяФорма(Объект, ВидФормы, ПараметрыЗагрузки) + + Основная = "Основная" + ВидФормы; + Дополнительная = "Дополнительная" + ВидФормы; + Формы = Новый Структура; + Формы.Вставить(Основная); + Формы.Вставить(Дополнительная); + + ЗаполнитьЗначенияСвойств(Формы, Объект); + + ПодходящиеФормы = Новый Массив; + Если Формы[Основная] <> Неопределено Тогда + Форма = Формы[Основная]; + ОписаниеФормы = НовоеОписаниеФормы(ВидФормы, Форма); + ПодходящиеФормы.Добавить(ОписаниеФормы); + КонецЕсли; + + Если Формы[Дополнительная] <> Неопределено Тогда + Форма = Формы[Дополнительная]; + ОписаниеФормы = НовоеОписаниеФормы(ВидФормы, Форма); + ПодходящиеФормы.Добавить(ОписаниеФормы); + КонецЕсли; + + ДоступныеФормы = Новый Массив; + + Для Каждого ОписаниеФормы Из ПодходящиеФормы Цикл + + Если ФормаДоступна(ОписаниеФормы, ПараметрыЗагрузки) Тогда + ДоступныеФормы.Добавить(ОписаниеФормы); + КонецЕсли; + + КонецЦикла; + + Для Каждого ОписаниеФормы Из ДоступныеФормы Цикл + + Если ПараметрыЗагрузки.ЭтоОбычноеПриложение И ОписаниеФормы.ЭтоОбычнаяФорма Тогда + Возврат ОписаниеФормы; + ИначеЕсли НЕ ПараметрыЗагрузки.ЭтоОбычноеПриложение И ОписаниеФормы.ЭтоУправляемаяФорма Тогда + Возврат ОписаниеФормы; + КонецЕсли; + + КонецЦикла; + + Если ЗначениеЗаполнено(ДоступныеФормы) Тогда + Возврат ДоступныеФормы[0]; + Иначе + Возврат Неопределено; + КонецЕсли; + +КонецФункции + +Функция ФормаДоступна(ОписаниеФормы, ПараметрыЗагрузки) + + Возврат ОписаниеФормы.ЭтоОбычнаяФорма И ПараметрыЗагрузки.ДоступныОбычныеФормы + Или ОписаниеФормы.ЭтоУправляемаяФорма И ПараметрыЗагрузки.ДоступныУправляемыеФормы; + +КонецФункции + +Функция НовоеОписаниеФормы(ВидФормы, Форма) + + Описание = ОписаниеФормы(); + + Описание.Имя = Форма.Имя; + Описание.ВидФормы = ВидФормы; + + Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Обычная; + Описание.ЭтоУправляемаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая; + + Возврат Описание; + +КонецФункции + +Функция ОписаниеФормы() + + Описание = Новый Структура; + Описание.Вставить("Имя", ""); + Описание.Вставить("ВидФормы", ""); + Описание.Вставить("ЭтоОбычнаяФорма", Ложь); + Описание.Вставить("ЭтоУправляемаяФорма", Ложь); + + Возврат Описание; + +КонецФункции + +#КонецОбласти + +Функция ОписаниеОбъекта(Имя, Формы) + + Описание = Новый Структура; + Описание.Вставить("Имя", Имя); + Описание.Вставить("Формы", Формы); + + Возврат Описание; + +КонецФункции + +Функция ОписаниеВидаФормы(Вид, Объекта = Ложь, Группы = Ложь, Списка = Ложь, Выбора = Ложь) + + Описание = Новый Структура; + Описание.Вставить("Вид", Вид); + Описание.Вставить("ЭтоФормаОбъекта", Объекта); + Описание.Вставить("ЭтоФормаГруппы", Группы); + Описание.Вставить("ЭтоФормаСписка", Списка); + Описание.Вставить("ЭтоФормаВыбора", Выбора); + + Возврат Описание; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..4ed71ce5e --- /dev/null +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,10 @@ + + + ДТОткрытиеФормСлужебныйВызовСервера + + ru + Открытие форм служебный + + true + true + diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..0d828648e --- /dev/null +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,64 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ТипыТестов() Экспорт + + // При изменении списка типов необходимо скорректировать метода см. ДТОткрытиеФормСлужебныйВызовСервера.БазоваяНастройка + Типы = Новый Структура; + Типы.Вставить("Новый", "Новый"); + Типы.Вставить("НоваяГруппа", "НоваяГруппа"); + Типы.Вставить("Существующий", "Существующий"); + Типы.Вставить("СуществующаяГруппа", "СуществующаяГруппа"); + Типы.Вставить("Скопированный", "Скопированный"); + Типы.Вставить("СкопированнаяГруппа", "СкопированнаяГруппа"); + Типы.Вставить("Список", "Список"); + Типы.Вставить("Выбор", "Выбор"); + Типы.Вставить("ВыборГруппы", "ВыборГруппы"); + Типы.Вставить("Основная", "Основная"); + Типы.Вставить("Настройки", "Настройки"); + Типы.Вставить("Варианты", "Варианты"); + + Возврат Типы; + +КонецФункции + +Функция ПараметрыТиповТестов() Экспорт + + Параметры = ЮТТестовыеДанные.СтруктураMarkDown("Имя", + "| Имя | Право | ВидФормы | Представление | + ||---------------------|-------------------------|----------------------|------------------------| + || Новый | ИнтерактивноеДобавление | ФормаОбъекта | нового объекта | + || НоваяГруппа | ИнтерактивноеДобавление | ФормаГруппы | новой группы | + || Существующий | Просмотр | ФормаОбъекта | существующего объекта | + || СуществующаяГруппа | Просмотр | ФормаГруппы | существующей группы | + || Скопированный | Редактирование | ФормаОбъекта | скопированного объекта | + || СкопированнаяГруппа | Редактирование | ФормаГруппы | скопированной группы | + || Список | Просмотр | ФормаСписка | списка | + || Выбор | Просмотр | ФормаДляВыбора | выбора | + || ВыборГруппы | Просмотр | ФормаДляВыбораГруппы | выбора группы | + || Основная | Просмотр | Форма | основная | + || Настройки | Просмотр | ФормаНастроек | настройки отчета | + || Варианты | Просмотр | ФормаВарианта | выбора варианта |"); + + Возврат Параметры; + +КонецФункции + +#КонецОбласти diff --git "a/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..c6ee70235 --- /dev/null +++ "b/exts/smoke/src/CommonModules/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,12 @@ + + + ДТОткрытиеФормСлужебныйКлиентСервер + + ru + Открытие форм служебный + + true + true + true + true + diff --git "a/exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/Template.txt" "b/exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/Template.txt" new file mode 100644 index 000000000..fe72e1292 --- /dev/null +++ "b/exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/Template.txt" @@ -0,0 +1,17 @@ +| Имя | Новый | НоваяГруппа | Существующий | СуществующаяГруппа | Скопированный | СкопированнаяГруппа | Список | Выбор | ВыборГруппы | Основная | Настройки | Варианты | +|-------------------------|-------|-------------|--------------|--------------------|---------------|---------------------|--------|-------|-------------|----------|-----------|----------| +| Справочники | + | + | + | + | + | + | + | + | + | | | | +| Документы | + | | + | | + | | + | + | | | | | +| ПланыВидовХарактеристик | + | + | + | + | + | + | + | + | + | | | | +| ПланыСчетов | + | | + | | + | | + | + | | | | | +| ПланыВидовРасчета | + | | + | | + | | + | + | | | | | +| ПланыОбмена | + | | + | | + | | + | + | | | | | +| БизнесПроцессы | + | | + | | + | | + | + | | | | | +| Задачи | + | | + | | + | | + | + | | | | | +| РегистрыСведений | + | | + | | + | | + | + | | | | | +| РегистрыНакопления | | | + | | | | + | + | | | | | +| РегистрыБухгалтерии | | | + | | | | + | + | | | | | +| РегистрыРасчета | | | + | | | | + | + | | | | | +| Перечисления | | | | | | | + | + | | | | | +| Отчеты | | | | | | | | | | + | + | + | +| Обработки | | | | | | | | | | + | | | \ No newline at end of file diff --git "a/exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..893958dc1 --- /dev/null +++ "b/exts/smoke/src/CommonTemplates/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262/\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\242\320\270\320\277\321\213\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,9 @@ + + + ДТОткрытиеФормТипыТестов + + ru + Открытие форм типы тестов + + TextDocument + diff --git a/exts/smoke/src/Configuration/Configuration.mdo b/exts/smoke/src/Configuration/Configuration.mdo index 311302c34..1c0ee2d26 100644 --- a/exts/smoke/src/Configuration/Configuration.mdo +++ b/exts/smoke/src/Configuration/Configuration.mdo @@ -20,5 +20,8 @@ Russian 0.2.1 Subsystem.ДТ_ЮТПодключаемыеМодули + CommonTemplate.ДТОткрытиеФормТипыТестов CommonModule.ДТОткрытиеФорм + CommonModule.ДТОткрытиеФормСлужебныйВызовСервера + CommonModule.ДТОткрытиеФормСлужебныйКлиентСервер diff --git "a/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" index 67f62c5b3..24beef4b8 100644 --- "a/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" +++ "b/exts/smoke/src/Subsystems/\320\224\320\242_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -6,6 +6,5 @@ Инициализация true - CommonModule.ДТОткрытиеФорм Subsystem.ДТ_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 0c301a605..0fc94c4a5 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -18,9 +18,21 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция НастройкиДымовыхТестов() Экспорт +Функция ИспользоватьДымовыеТесты() Экспорт - Возврат Новый Структура; + Возврат ЮТДымовыеТестыСлужебныйКлиентСервер.ИспользоватьДымовыеТесты(); + +КонецФункции + +Функция ПараметрыДымовыхТестов() Экспорт + + Возврат ЮТДымовыеТестыСлужебныйКлиентСервер.ПараметрыДымовыхТестов(); + +КонецФункции + +Функция ПараметрыВидаДымовогоТеста(КлючНастройки) Экспорт + + Возврат ЮТДымовыеТестыСлужебныйКлиентСервер.ПараметрыВидаДымовогоТеста(КлючНастройки); КонецФункции @@ -44,16 +56,6 @@ КонецФункции -Функция Формы(Знач КоллекцииМетаданных, Знач ОтборМетаданных) Экспорт - -#Если Сервер Тогда - Возврат ЮТДымовыеТестыСлужебныйСервер.Формы(КоллекцииМетаданных, ОтборМетаданных); -#Иначе - Возврат ЮТДымовыеТестыСлужебныйВызовСервера.Формы(КоллекцииМетаданных, ОтборМетаданных); -#КонецЕсли - -КонецФункции - Функция СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры = Неопределено) Экспорт #Если Сервер Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index e541fb6e0..f50ebf972 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -18,12 +18,6 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция Формы(Знач КоллекцииМетаданных, Знач ОтборМетаданных) Экспорт - - Возврат ЮТДымовыеТестыСлужебныйСервер.Формы(КоллекцииМетаданных, ОтборМетаданных); - -КонецФункции - Функция СлучайныйЭлемент(Знач ТипОбъекта, Знач ИмяОбъекта, Знач Параметры = Неопределено) Экспорт Возврат ЮТДымовыеТестыСлужебныйСервер.СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 3359b396f..d39f560e6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,56 +18,33 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция Настройки() Экспорт +Функция ИспользоватьДымовыеТесты() Экспорт - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаНастройки()); + ДымовыеТесты = ПараметрыДымовыхТестов(); + Возврат ИспользоватьНастройку(ДымовыеТесты, Ложь); КонецФункции -Функция ИсключитьТест(КлючТеста) Экспорт +Функция ИспользоватьВидДымовыхТесты(КлючНастройки) Экспорт - Настройки = Настройки(); + Параметры = ПараметрыВидаДымовогоТеста(КлючНастройки); + Возврат Параметры.Использовать; - Если Настройки = Неопределено Или Не Настройки.Использовать Тогда - Возврат Истина; - КонецЕсли; - - ЭлементНастройки = Настройки; - НаборыИсключений = Новый Массив; - Исключить = Ложь; - - Для Каждого Ключ Из ЮТСтроки.РазделитьСтроку(КлючТеста, ".") Цикл - - Если ЭлементНастройки <> Неопределено И ЗначениеЗаполнено(ЭлементНастройки.Исключения) Тогда - НаборыИсключений.Добавить(ЭлементНастройки.Исключения); - КонецЕсли; - - ЭлементНастройки = ЮТКоллекции.ЗначениеСтруктуры(Настройки.Подчиненные, Ключ); - - Если ЭлементНастройки = Неопределено И НЕ ЗначениеЗаполнено(НаборыИсключений) Тогда - Прервать; - ИначеЕсли ЭлементНастройки <> Неопределено И НЕ ЭлементНастройки.Использовать Тогда - Исключить = Истина; - Прервать; - КонецЕсли; - - Если ПодходитПодНаборыИсключений(Ключ, НаборыИсключений) Тогда - Исключить = Истина; - Прервать; - КонецЕсли; - - КонецЦикла; +КонецФункции + +Функция ПараметрыДымовыхТестов() Экспорт - Возврат Исключить; + ПараметрыЗапуска = ЮТКонтекстСлужебный.ПараметрыЗапуска(); + Возврат ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, "ДымовыеТесты"); КонецФункции -Функция ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ) Экспорт +Функция ПараметрыВидаДымовогоТеста(Ключ) Экспорт Настройка = Новый Структура("Использовать", Ложь); - ДымовыеТесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска, "ДымовыеТесты"); - Настройка.Использовать = ИспользованиеНастройки(ДымовыеТесты, Ложь); + ДымовыеТесты = ПараметрыДымовыхТестов(); + Настройка.Использовать = ИспользоватьНастройку(ДымовыеТесты, Ложь); Если НЕ Настройка.Использовать Или ТипЗнч(ДымовыеТесты) = Тип("Булево") Тогда Возврат Настройка; @@ -75,7 +52,7 @@ НастройкиТеста = ЮТКоллекции.ЗначениеСтруктуры(ДымовыеТесты, Ключ); - Использовать = ИспользованиеНастройки(НастройкиТеста, Ложь); + Использовать = ИспользоватьНастройку(НастройкиТеста, Ложь); Если ТипЗнч(НастройкиТеста) = Тип("Структура") Тогда НастройкиТеста.Вставить("Использовать", Использовать); Возврат НастройкиТеста; @@ -86,6 +63,20 @@ КонецФункции +Функция ИспользоватьНастройку(Настройка, ЗначениеПоУмолчанию) Экспорт + + Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда + Использовать = ЗначениеПоУмолчанию; + ИначеЕсли Настройка = Истина Тогда + Использовать = Истина; + Иначе + Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию); + КонецЕсли; + + Возврат Использовать; + +КонецФункции + Функция ПрочитанБазовыеЭлементНастройки(Настройки, Ключ, Значение, Путь) Экспорт Если СтрСравнить(Ключ, "Использовать") = 0 Тогда @@ -144,27 +135,18 @@ #Область СлужебныеПроцедурыИФункции -#Область Контекст - -Функция ИмяКонтекстаНастройки() - - Возврат "НастройкиДымовыхТестов"; - -КонецФункции - -#КонецОбласти - -Функция ИспользованиеНастройки(Настройка, ЗначениеПоУмолчанию) +Функция НормализованнаяНастройкаИсключений(Исключения) Экспорт - Если НЕ ЗначениеЗаполнено(Настройка) Или Настройка = Ложь Тогда - Использовать = ЗначениеПоУмолчанию; - ИначеЕсли Настройка = Истина Тогда - Использовать = Истина; - Иначе - Использовать = ЮТКоллекции.ЗначениеСтруктуры(Настройка, "Использовать", ЗначениеПоУмолчанию); + Если ТипЗнч(Исключения) = Тип("Строка") Тогда + Результат = Новый Массив; + Результат.Добавить(Исключения); + ИначеЕсли ТипЗнч(Исключения) = Тип("Массив") Тогда + Результат = Исключения; + ИначеЕсли Исключения <> Неопределено Тогда + ВызватьИсключение "Некорректный тип элемента настроек `Исключения`. Допустимо: Строка или Массив из Строка"; КонецЕсли; - Возврат Использовать; + Возврат Результат; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 8fec861b9..644d7a703 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,53 +18,6 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция Формы(КоллекцииМетаданных, ОтборМетаданных) Экспорт - - ВладельцыФорм = Новый Массив; - - Для Каждого ИмяКоллекции Из КоллекцииМетаданных Цикл - - Если ЮТДымовыеТесты.ИсключитьТест(ИмяКоллекции, ОтборМетаданных) Тогда - Продолжить; - КонецЕсли; - - Тип = ЮТМетаданные.ТипыМетаданных()[ИмяКоллекции]; - Коллекция = Метаданные[Тип.ИмяКоллекции]; - - НаборыИсключений = Новый Массив; - ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ОтборМетаданных); - ЮТДымовыеТестыСлужебныйКлиентСервер.ДобавитьНаборИсключений(НаборыИсключений, ЮТКоллекции.ЗначениеСтруктуры(ОтборМетаданных, ИмяКоллекции)); - - Для Каждого ОбъектМетаданных Из Коллекция Цикл - - Если ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодНаборыИсключений(ОбъектМетаданных.Имя, НаборыИсключений) Тогда - Продолжить; - КонецЕсли; - - ВладелецФорм = ВладелецФормы(Тип.Имя, ОбъектМетаданных.Имя); - ВладелецФорм.Вставить("Просмотр", ПравоДоступа("Просмотр", ОбъектМетаданных)); - ВладелецФорм.Вставить("Редактирование", ПравоДоступа("Редактирование", ОбъектМетаданных)); - ВладелецФорм.Вставить("ИнтерактивноеДобавление", ПравоДоступа("ИнтерактивноеДобавление", ОбъектМетаданных)); - - Для Каждого Форма Из ОбъектМетаданных.Формы Цикл - - ОписаниеФормы = НовоеОписаниеФормы(ОбъектМетаданных, Форма); - ВладелецФорм.Формы.Добавить(ОписаниеФормы); - - КонецЦикла; - - Если ЗначениеЗаполнено(ВладелецФорм.Формы) Тогда - ВладельцыФорм.Добавить(ВладелецФорм); - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - - Возврат ВладельцыФорм; - -КонецФункции - Функция СлучайныйЭлемент(ТипОбъекта, ИмяОбъекта, Параметры = Неопределено) Экспорт МаксимальныйНомерЭлемента = 100; @@ -110,78 +63,6 @@ #Область СлужебныеПроцедурыИФункции -Функция ВладелецФормы(Тип, Имя) - - Описание = Новый Структура; - Описание.Вставить("Тип", Тип); - Описание.Вставить("Имя", Имя); - Описание.Вставить("Формы", Новый Массив); - Возврат Описание; - -КонецФункции - -Функция НовоеОписаниеФормы(ОбъектМетаданных, Форма) - - Описание = ОписаниеФормы(); - Описание.Имя = Форма.Имя; - - Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Обычная; - Описание.ЭтоОбычнаяФорма = Форма.ТипФормы = Метаданные.СвойстваОбъектов.ТипФормы.Управляемая; - - ФормаОбъекта = "ФормаОбъекта"; - ФормаГруппы = "ФормаГруппы"; - ФормаДляВыбора = "ФормаДляВыбора"; - ФормаДляВыбораГруппы = "ФормаДляВыбораГруппы"; - ФормаСписка = "ФормаСписка"; - - Если ФормаИмеетТип(ФормаОбъекта, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаОбъекта = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаГруппы, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаОбъекта = Истина; - Описание.ЭтоФормаГруппы = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаДляВыбора, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаВыбора = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаДляВыбораГруппы, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаВыбора = Истина; - Описание.ЭтоФормаГруппы = Истина; - КонецЕсли; - - Если ФормаИмеетТип(ФормаСписка, ОбъектМетаданных, Форма) Тогда - Описание.ЭтоФормаСписка = Истина; - КонецЕсли; - - Возврат Описание; - -КонецФункции - -Функция ФормаИмеетТип(ИмяФормы, ОбъектМетаданных, Форма) - - Возврат ЮТОбщий.ПеременнаяСодержитСвойство(ОбъектМетаданных, "Основная" + ИмяФормы) - И (Форма = ОбъектМетаданных["Основная" + ИмяФормы] Или Форма = ОбъектМетаданных["Дополнительная" + ИмяФормы]); - -КонецФункции - -Функция ОписаниеФормы() - - Описание = Новый Структура; - Описание.Вставить("Имя", ""); - Описание.Вставить("ЭтоФормаСписка", Ложь); - Описание.Вставить("ЭтоФормаОбъекта", Ложь); - Описание.Вставить("ЭтоФормаГруппы", Ложь); - Описание.Вставить("ЭтоФормаВыбора", Ложь); - Описание.Вставить("ЭтоОбычнаяФорма", Ложь); - Описание.Вставить("ЭтоУправляемаяФорма", Ложь); - - Возврат Описание; - -КонецФункции - Функция РеквизитУпорядочивания(ОписаниеОбъектаМетаданных) Если ЮТМетаданные.ЭтоДокумент(ОписаниеОбъектаМетаданных) Тогда diff --git a/fixtures/demo-configuration/.settings/Default.cset b/fixtures/demo-configuration/.settings/Default.cset new file mode 100644 index 000000000..c1197d704 --- /dev/null +++ b/fixtures/demo-configuration/.settings/Default.cset @@ -0,0 +1,4 @@ +{ + "version": 1, + "settings": {} +} \ No newline at end of file diff --git a/fixtures/demo-configuration/.settings/ManagedEnvironments.prefs b/fixtures/demo-configuration/.settings/ManagedEnvironments.prefs new file mode 100644 index 000000000..266f39796 --- /dev/null +++ b/fixtures/demo-configuration/.settings/ManagedEnvironments.prefs @@ -0,0 +1,11 @@ +CLIENT=true +EXTERNAL_CONN=false +MNG_CLIENT=true +MOBILE_AUTONOMOUS_SERVER=false +MOBILE_CLIENT=false +MOBILE_SERVER=false +MOBILE_THIN_CLIENT=false +SERVER=true +THIN_CLIENT=true +WEB_CLIENT=true +eclipse.preferences.version=1 diff --git a/fixtures/demo-configuration/.settings/RuntimePropertyLaunch.prefs b/fixtures/demo-configuration/.settings/RuntimePropertyLaunch.prefs new file mode 100644 index 000000000..0e66440ac --- /dev/null +++ b/fixtures/demo-configuration/.settings/RuntimePropertyLaunch.prefs @@ -0,0 +1,2 @@ +ClientServer=true +eclipse.preferences.version=1 diff --git a/fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs b/fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs new file mode 100644 index 000000000..1fec1f74c --- /dev/null +++ b/fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.formatter.bsl.prefs @@ -0,0 +1,17 @@ +alwaysEndWithSemicolon=true +autowrapBinary=indent_on_wrap +autowrapInvocation=indent_on_wrap +autowrapMethodParameters=indent_on_wrap +creatorEmptyBrackets=never brackets +defaultValuesInitialized=true +eclipse.preferences.version=1 +formattingOn=true +indentMethodInternal=true +invocationEmptyParamsDelimited=true +keywordStandard=CamelCase +noindent_preprocessor=true +projectSpecificSettingsInited=true +showWhitespaceCharacters=true +softFormatassignmentStatement=true +spacesForTabs=false +whitespaceMethodParamsDelimited=true diff --git a/fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.lcore.ui.templates.prefs b/fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.lcore.ui.templates.prefs new file mode 100644 index 000000000..95edcf85b --- /dev/null +++ b/fixtures/demo-configuration/.settings/com.e1c.g5.v8.dt.lcore.ui.templates.prefs @@ -0,0 +1,2 @@ +configuration={"templates"\:[]} +eclipse.preferences.version=1 diff --git a/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.autosort.prefs b/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.autosort.prefs new file mode 100644 index 000000000..2d3b47b23 --- /dev/null +++ b/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.autosort.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +topObjects=false diff --git a/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.bsl.prefs b/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.bsl.prefs new file mode 100644 index 000000000..ac5ba5253 --- /dev/null +++ b/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.bsl.prefs @@ -0,0 +1,3 @@ +addModuleStrictTypesAnnotation=false +createModuleStructure=false +eclipse.preferences.version=1 diff --git a/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.prefs b/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.prefs new file mode 100644 index 000000000..9e9b57e54 --- /dev/null +++ b/fixtures/demo-configuration/.settings/com.e1c.v8codestyle.prefs @@ -0,0 +1,3 @@ +commonChecks=true +eclipse.preferences.version=1 +standardChecks=true diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" new file mode 100644 index 000000000..1218d2968 --- /dev/null +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Form.form" @@ -0,0 +1,526 @@ + + + + НаборЗаписей + 2 + true + true + + true + + + НаборЗаписей + + None + + НомерСтроки + 26 + true + true + + true + + + НаборЗаписей.LineNumber + + + НомерСтрокиРасширеннаяПодсказка + 28 + true + true + + true + + Label + true + true + + Left + + + + НомерСтрокиКонтекстноеМеню + 27 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Регистратор + 29 + true + true + + true + + + НаборЗаписей.Recorder + + + РегистраторРасширеннаяПодсказка + 31 + true + true + + true + + Label + true + true + + Left + + + + РегистраторКонтекстноеМеню + 30 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Период + 32 + true + true + + true + + + НаборЗаписей.Period + + + ПериодРасширеннаяПодсказка + 34 + true + true + + true + + Label + true + true + + Left + + + + ПериодКонтекстноеМеню + 33 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + ВидДвижения + 35 + true + true + + true + + + НаборЗаписей.RecordType + + + ВидДвиженияРасширеннаяПодсказка + 37 + true + true + + true + + Label + true + true + + Left + + + + ВидДвиженияКонтекстноеМеню + 36 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Организация + 38 + true + true + + true + + + НаборЗаписей.Организация + + + ОрганизацияРасширеннаяПодсказка + 40 + true + true + + true + + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 39 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Сумма + 41 + true + true + + true + + + НаборЗаписей.Сумма + + + СуммаРасширеннаяПодсказка + 43 + true + true + + true + + Label + true + true + + Left + + + + СуммаКонтекстноеМеню + 42 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + НаборЗаписейКоманднаяПанель + 15 + true + true + + true + + Left + true + + + true + true + + true + + НаборЗаписейСтрокаПоиска + 17 + + НаборЗаписейСтрокаПоискаРасширеннаяПодсказка + 19 + true + true + + true + + Label + true + true + + Left + + + + НаборЗаписейСтрокаПоискаКонтекстноеМеню + 18 + true + true + + true + + true + + НаборЗаписейСтрокаПоиска + + true + + + + true + true + + true + + НаборЗаписейСостояниеПросмотра + 20 + + НаборЗаписейСостояниеПросмотраРасширеннаяПодсказка + 22 + true + true + + true + + Label + true + true + + Left + + + + НаборЗаписейСостояниеПросмотраКонтекстноеМеню + 21 + true + true + + true + + true + + ViewStatusAddition + НаборЗаписейСостояниеПросмотра + + true + + + + true + true + + true + + НаборЗаписейУправлениеПоиском + 23 + + НаборЗаписейУправлениеПоискомРасширеннаяПодсказка + 25 + true + true + + true + + Label + true + true + + Left + + + + НаборЗаписейУправлениеПоискомКонтекстноеМеню + 24 + true + true + + true + + true + + SearchControlAddition + НаборЗаписейУправлениеПоиском + + true + + + + НаборЗаписейРасширеннаяПодсказка + 16 + true + true + + true + + Label + true + true + + Left + + + + НаборЗаписейКонтекстноеМеню + 14 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + true + true + true + true +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + НаборЗаписей + 1 + + AccountingRegisterRecordSet.Основной + + + true + + + true + +
    true
    +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Module.bsl" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\320\261\320\276\321\200\320\260\320\227\320\260\320\277\320\270\321\201\320\265\320\271/Module.bsl" new file mode 100644 index 000000000..e69de29bb diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..b66ed226a --- /dev/null +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 6d761f5f-5c18-4db7-9677-0e1dfce7ef0b + + + Normal + 478cae8a-d210-4f57-96dc-807ced12f00a + + + Normal + aeddbaab-3533-4b39-85ae-aba7f5763a5e + + Normal + 72457ff3-ada5-4444-a70f-a70ad03df8fe + diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..68c8915b6 --- /dev/null +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,655 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 40 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Счет + 16 + true + true + + true + + + Список.Account + + true + + СчетРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + СчетКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Период + 19 + true + true + + true + + + Список.Period + + + ПериодРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + ПериодКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Регистратор + 22 + true + true + + true + + + Список.Recorder + + + РегистраторРасширеннаяПодсказка + 24 + true + true + + true + + Label + true + true + + Left + + + + РегистраторКонтекстноеМеню + 23 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + НомерСтроки + 25 + true + true + + true + + + Список.LineNumber + + + НомерСтрокиРасширеннаяПодсказка + 27 + true + true + + true + + Label + true + true + + Left + + + + НомерСтрокиКонтекстноеМеню + 26 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Активность + 28 + true + true + + true + + + Список.Active + + + АктивностьРасширеннаяПодсказка + 30 + true + true + + true + + Label + true + true + + Left + + + + АктивностьКонтекстноеМеню + 29 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + ВидДвижения + 31 + true + true + + true + + + Список.RecordType + + + ВидДвиженияРасширеннаяПодсказка + 33 + true + true + + true + + Label + true + true + + Left + + + + ВидДвиженияКонтекстноеМеню + 32 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Организация + 34 + true + true + + true + + + Список.Организация + + + ОрганизацияРасширеннаяПодсказка + 36 + true + true + + true + + Label + true + true + + Left + + + + ОрганизацияКонтекстноеМеню + 35 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Сумма + 37 + true + true + + true + + + Список.Сумма + + + СуммаРасширеннаяПодсказка + 39 + true + true + + true + + Label + true + true + + Left + + + + СуммаКонтекстноеМеню + 38 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + AccountingRegister.Основной.RecordsWithExtDimensions + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" index 31347d25a..1bfb61858 100644 --- "a/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" +++ "b/fixtures/demo-configuration/src/AccountingRegisters/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" @@ -16,6 +16,7 @@ true ChartOfAccounts.Основной + AccountingRegister.Основной.Form.ФормаСписка Managed true @@ -29,7 +30,7 @@ - Use + DontUse true @@ -47,7 +48,25 @@ - Use + DontUse true + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ФормаНабораЗаписей + + ru + Форма набора записей + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217/Form.form" new file mode 100644 index 000000000..80cd00eac --- /dev/null +++ "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217/Form.form" @@ -0,0 +1,143 @@ + + + + Код + 7 + true + true + + true + + + Объект.Code + + + КодРасширеннаяПодсказка + 3 + true + true + + true + + Label + true + true + + Left + + + + КодКонтекстноеМеню + 2 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Наименование + 4 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 5 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Объект + 1 + + CatalogObject.Банки + + + true + + + true + +
    true
    + true +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" index dbefc12c0..c4e06e7d4 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\221\320\260\320\275\320\272\320\270/\320\221\320\260\320\275\320\272\320\270.mdo" @@ -20,7 +20,7 @@ Use PredefinedDataName - Use + DontUse @@ -28,7 +28,7 @@ Use Predefined - Use + DontUse @@ -36,7 +36,7 @@ Use Ref - Use + DontUse @@ -44,7 +44,7 @@ Use DeletionMark - Use + DontUse @@ -52,7 +52,7 @@ Use IsFolder - Use + DontUse @@ -62,7 +62,7 @@ true ShowError - Use + DontUse @@ -71,7 +71,7 @@ Parent true - Use + DontUse @@ -80,7 +80,7 @@ Description ShowError - Use + DontUse @@ -88,7 +88,7 @@ Use Code - Use + DontUse @@ -99,7 +99,7 @@ ru - Use + DontUse ru Банк @@ -128,6 +128,7 @@ Catalog.Банки.Form.ФормаЭлемента Catalog.Банки.Form.ФормаСписка Catalog.Банки.Form.ФормаВыбора + Catalog.Банки.Form.ФормаЭлементаУправляемая ФормаЭлемента @@ -158,4 +159,13 @@ PersonalComputer MobileDevice + + ФормаЭлементаУправляемая + + ru + Форма элемента управляемая + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..12714d1f4 --- /dev/null +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 15dd4f58-ea84-46f7-a69d-fbe448df2b52 + + + Normal + c79877fd-b6bf-4d94-9ece-a242edf4f360 + + + Normal + 5cd2f77e-62ca-47a2-8d42-9339edbf80f5 + + Normal + 78980449-5f0c-40d7-ad93-a9d0b271e763 + diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..71fe1caa1 --- /dev/null +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,333 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 19 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Наименование + 16 + true + true + + true + + + Список.Description + + true + + НаименованиеРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + Catalog.ВходящиеПисьма + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260.mdo" "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260.mdo" index 7e6ec0834..e7b450bca 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260.mdo" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260/\320\222\321\205\320\276\320\264\321\217\321\211\320\270\320\265\320\237\320\270\321\201\321\214\320\274\320\260.mdo" @@ -21,7 +21,7 @@ PredefinedDataName - Use + DontUse @@ -31,7 +31,7 @@ Predefined - Use + DontUse @@ -41,7 +41,7 @@ Ref - Use + DontUse @@ -51,7 +51,7 @@ DeletionMark - Use + DontUse @@ -61,7 +61,7 @@ IsFolder - Use + DontUse @@ -73,7 +73,7 @@ true ShowError - Use + DontUse @@ -84,7 +84,7 @@ true - Use + DontUse @@ -99,7 +99,7 @@ ShowError - Use + DontUse @@ -109,14 +109,14 @@ Code - Use + DontUse Use Managed - Use + DontUse ru Входящее письмо @@ -142,6 +142,7 @@ InDialog BothWays Catalog.ВходящиеПисьма.Form.ФормаЭлемента + Catalog.ВходящиеПисьма.Form.ФормаСписка Дата @@ -158,7 +159,7 @@ Index - Use + DontUse Use @@ -178,7 +179,7 @@ - Use + DontUse Use @@ -196,7 +197,7 @@ - Use + DontUse Use @@ -213,7 +214,7 @@ - Use + DontUse Use @@ -233,7 +234,7 @@ - Use + DontUse Use @@ -255,7 +256,7 @@ - Use + DontUse Use @@ -268,4 +269,13 @@ PersonalComputer MobileDevice + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Form.form" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Form.form" new file mode 100644 index 000000000..d5237f9ff --- /dev/null +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/Forms/\320\244\320\276\321\200\320\274\320\260\320\223\321\200\321\203\320\277\320\277\321\213/Form.form" @@ -0,0 +1,195 @@ + + + + Код + 10 + true + true + + true + + + Объект.Code + + + КодРасширеннаяПодсказка + 3 + true + true + + true + + Label + true + true + + Left + + + + КодКонтекстноеМеню + 2 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Наименование + 4 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 5 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Родитель + 7 + true + true + + true + + + Объект.Parent + + + РодительРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + РодительКонтекстноеМеню + 8 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Объект + 1 + + CatalogObject.Контрагенты + + + true + + + true + +
    true
    + true +
    + + + + + + Folders + +
    diff --git "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213.mdo" "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213.mdo" index 36d34e213..6adf80c0d 100644 --- "a/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213.mdo" +++ "b/fixtures/demo-configuration/src/Catalogs/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213/\320\232\320\276\320\275\321\202\321\200\320\260\320\263\320\265\320\275\321\202\321\213.mdo" @@ -23,7 +23,7 @@ PredefinedDataName - Use + DontUse @@ -33,7 +33,7 @@ Predefined - Use + DontUse @@ -43,7 +43,7 @@ Ref - Use + DontUse @@ -53,7 +53,7 @@ DeletionMark - Use + DontUse @@ -63,7 +63,7 @@ IsFolder - Use + DontUse @@ -75,7 +75,7 @@ true ShowError - Use + DontUse @@ -92,7 +92,7 @@ Catalog.Контрагенты.EmptyRef - Use + DontUse @@ -103,7 +103,7 @@ ShowError - Use + DontUse @@ -115,7 +115,7 @@ - Use + DontUse @@ -139,7 +139,7 @@ ru - Use + DontUse ru Контрагент @@ -166,6 +166,7 @@ InDialog BothWays Catalog.Контрагенты.Form.ФормаЭлемента + Catalog.Контрагенты.Form.ФормаГруппы Catalog.Контрагенты.Form.ФормаСписка Catalog.Контрагенты.Form.ФормаВыбора @@ -188,7 +189,7 @@ Catalog.Регионы.EmptyRef - Use + DontUse Use @@ -212,7 +213,7 @@ - Use + DontUse Use @@ -234,7 +235,7 @@ - Use + DontUse Use @@ -256,7 +257,7 @@ - Use + DontUse Use @@ -278,7 +279,7 @@ - Use + DontUse Use @@ -301,7 +302,7 @@ - Use + DontUse Use @@ -323,7 +324,7 @@ - Use + DontUse Use @@ -345,7 +346,7 @@ - Use + DontUse Use @@ -367,7 +368,7 @@ - Use + DontUse Use @@ -389,7 +390,7 @@ - Use + DontUse Use @@ -413,7 +414,7 @@ Catalog.ВидыЦен.EmptyRef - Use + DontUse Use @@ -436,7 +437,7 @@ - Use + DontUse Use @@ -458,7 +459,7 @@ - Use + DontUse Use @@ -479,7 +480,7 @@ - Use + DontUse Use @@ -500,7 +501,7 @@ - Use + DontUse Use @@ -533,4 +534,13 @@ PersonalComputer MobileDevice + + ФормаГруппы + + ru + Форма группы + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..efcdd64b4 --- /dev/null +++ "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + c5af1d00-fda9-43dc-aa17-b514aa5066c7 + + + Normal + 488e944a-f841-4448-b158-bec73d9f4b88 + + + Normal + 4979b89b-b458-4fc5-92bd-0458aaf6b6d3 + + Normal + c635abfc-5581-4fbc-944b-732e6c3bb774 + diff --git "a/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..0f639156e --- /dev/null +++ "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,379 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 22 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Код + 16 + true + true + + true + + + Список.Code + + true + + КодРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + КодКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Наименование + 19 + true + true + + true + + + Список.Description + + + НаименованиеРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + ChartOfAccounts.Основной + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" index c783cf73a..cb784f81a 100644 --- "a/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" +++ "b/fixtures/demo-configuration/src/ChartsOfAccounts/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271/\320\236\321\201\320\275\320\276\320\262\320\275\320\276\320\271.mdo" @@ -20,7 +20,6 @@ DontUse DontUse Managed - DontUse ChartOfCharacteristicTypes.ВидыСубконто 3 9 @@ -57,6 +56,7 @@ InDialog BothWays + ChartOfAccounts.Основной.Form.ФормаСписка Реквизит @@ -72,7 +72,6 @@ - DontUse Use @@ -100,7 +99,6 @@ Use - DontUse @@ -201,4 +199,13 @@ Use + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..9b067855f --- /dev/null +++ "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 121eec22-1833-449e-82b5-0f84315d51aa + + + Normal + 43cf5b85-b783-49b9-bcc1-05a5434b90eb + + + Normal + 154a476f-a3fd-4168-b427-5725ef892aba + + Normal + 6cc9e97b-c2be-497a-b178-0bcda760fa77 + diff --git "a/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" new file mode 100644 index 000000000..e4660962f --- /dev/null +++ "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -0,0 +1,381 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 22 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Код + 16 + true + true + + true + + + Список.Code + + true + + КодРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + КодКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Наименование + 19 + true + true + + true + + + Список.Description + + + НаименованиеРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + ChartOfCharacteristicTypes.ВидыСубконто + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" index c0140074a..97a1dd5c8 100644 --- "a/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" +++ "b/fixtures/demo-configuration/src/ChartsOfCharacteristicTypes/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276/\320\222\320\270\320\264\321\213\320\241\321\203\320\261\320\272\320\276\320\275\321\202\320\276.mdo" @@ -19,7 +19,7 @@ DontUse DontUse Managed - Use + DontUse CatalogRef.ВидыЦен CatalogRef.Валюты @@ -80,4 +80,14 @@ InDialog BothWays + ChartOfCharacteristicTypes.ВидыСубконто.Form.ФормаВыбора + + ФормаВыбора + + ru + Форма выбора + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..31a2f70a9 --- /dev/null +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 2aa63cfc-7c7c-4b9d-b00b-91ac30588dbb + + + Normal + 665b4333-b241-4bf8-8f65-a5424ad65236 + + + Normal + 28d4d752-ec10-41f0-ae79-9b5e12b4e795 + + Normal + 85f0c795-3d05-4a73-9e57-0ade85066064 + diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..7906becb8 --- /dev/null +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,379 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 22 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Номер + 16 + true + true + + true + + + Список.Number + + true + + НомерРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + НомерКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Дата + 19 + true + true + + true + + + Список.Date + + + ДатаРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + ДатаКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + Document.Оплата + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/\320\236\320\277\320\273\320\260\321\202\320\260.mdo" "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/\320\236\320\277\320\273\320\260\321\202\320\260.mdo" index 14b5e0631..9409cfec1 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/\320\236\320\277\320\273\320\260\321\202\320\260.mdo" +++ "b/fixtures/demo-configuration/src/Documents/\320\236\320\277\320\273\320\260\321\202\320\260/\320\236\320\277\320\273\320\260\321\202\320\260.mdo" @@ -21,7 +21,7 @@ Posted - Use + DontUse @@ -31,7 +31,7 @@ Ref - Use + DontUse @@ -41,7 +41,7 @@ DeletionMark - Use + DontUse @@ -52,7 +52,7 @@ ShowError - Use + DontUse @@ -62,7 +62,7 @@ Number - Use + DontUse @@ -76,7 +76,7 @@ ru - Use + DontUse ru Оплата @@ -104,6 +104,7 @@ true true Document.Оплата.Form.ФормаДокумента + Document.Оплата.Form.ФормаСписка AccumulationRegister.Взаиморасчеты true true @@ -125,7 +126,7 @@ Catalog.Контрагенты.EmptyRef - Use + DontUse Use @@ -153,7 +154,7 @@ Catalog.РасчетныеСчетаКонтрагентов.EmptyRef - Use + DontUse Use @@ -181,7 +182,7 @@ Catalog.РасчетныеСчета.EmptyRef - Use + DontUse Use @@ -205,7 +206,7 @@ Catalog.Валюты.EmptyRef - Use + DontUse Use @@ -237,7 +238,7 @@ 0 - Use + DontUse Use @@ -257,7 +258,7 @@ Catalog.Организации.EmptyRef - Use + DontUse Use @@ -270,4 +271,13 @@ PersonalComputer MobileDevice + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..074f3d4a2 --- /dev/null +++ "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 6a5e5484-24f9-47fb-ad4e-075b0983f472 + + + Normal + c99841e7-b1f9-4a1a-9404-ad80d24cdf5a + + + Normal + 20685d62-c29e-4571-af16-48ff64ecf3c4 + + Normal + f4925cd1-2378-4597-bdbe-d81560873eff + diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..bff2369b0 --- /dev/null +++ "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,379 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 22 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Номер + 16 + true + true + + true + + + Список.Number + + true + + НомерРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + НомерКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Дата + 19 + true + true + + true + + + Список.Date + + + ДатаРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + ДатаКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + Document.ПоступлениеДенег + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263.mdo" "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263.mdo" index 771129fe1..2b1663b86 100644 --- "a/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263.mdo" +++ "b/fixtures/demo-configuration/src/Documents/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263/\320\237\320\276\321\201\321\202\321\203\320\277\320\273\320\265\320\275\320\270\320\265\320\224\320\265\320\275\320\265\320\263.mdo" @@ -21,7 +21,7 @@ Posted - Use + DontUse @@ -31,7 +31,7 @@ Ref - Use + DontUse @@ -41,7 +41,7 @@ DeletionMark - Use + DontUse @@ -52,7 +52,7 @@ ShowError - Use + DontUse @@ -62,7 +62,7 @@ Number - Use + DontUse @@ -76,7 +76,7 @@ ru - Use + DontUse ru Поступление денег @@ -96,6 +96,7 @@ true true Document.ПоступлениеДенег.Form.ФормаДокумента + Document.ПоступлениеДенег.Form.ФормаСписка AccumulationRegister.Взаиморасчеты true true @@ -117,7 +118,7 @@ Catalog.Контрагенты.EmptyRef - Use + DontUse Use @@ -145,7 +146,7 @@ Catalog.РасчетныеСчетаКонтрагентов.EmptyRef - Use + DontUse Use @@ -173,7 +174,7 @@ Catalog.РасчетныеСчета.EmptyRef - Use + DontUse Use @@ -197,7 +198,7 @@ Catalog.Валюты.EmptyRef - Use + DontUse Use @@ -228,7 +229,7 @@ 0 - Use + DontUse Use @@ -248,7 +249,7 @@ Catalog.Организации.EmptyRef - Use + DontUse Use @@ -261,4 +262,13 @@ PersonalComputer MobileDevice + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..2997d7363 --- /dev/null +++ "b/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 91581683-fca8-413c-9a95-c6ba5895d51d + + + Normal + e4d37da4-f9ca-4596-8a50-4125f166f9e2 + + + Normal + e9075752-8ef0-47d9-85a1-ea45a785b02b + + Normal + e5a461ec-8cb9-4b8c-ba17-cdbd5230a700 + diff --git "a/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" "b/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" new file mode 100644 index 000000000..3ae756995 --- /dev/null +++ "b/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Form.form" @@ -0,0 +1,334 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 19 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Ссылка + 16 + true + true + + true + + + Список.Ref + + true + + СсылкаРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + СсылкаКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + true + MultiRow + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + + + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + Enum.ВидыТоваров + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" "b/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" index d2bbdd616..983e12ec2 100644 --- "a/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" +++ "b/fixtures/demo-configuration/src/Enums/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\222\320\270\320\264\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" @@ -13,6 +13,7 @@ true BothWays + Enum.ВидыТоваров.Form.ФормаВыбора Товар @@ -29,4 +30,13 @@ + + ФормаВыбора + + ru + Форма выбора + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/Forms/\320\244\320\276\321\200\320\274\320\260\320\243\320\267\320\273\320\260/Form.form" "b/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/Forms/\320\244\320\276\321\200\320\274\320\260\320\243\320\267\320\273\320\260/Form.form" new file mode 100644 index 000000000..d6c4b9953 --- /dev/null +++ "b/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/Forms/\320\244\320\276\321\200\320\274\320\260\320\243\320\267\320\273\320\260/Form.form" @@ -0,0 +1,143 @@ + + + + Код + 7 + true + true + + true + + + Объект.Code + + + КодРасширеннаяПодсказка + 3 + true + true + + true + + Label + true + true + + Left + + + + КодКонтекстноеМеню + 2 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + Наименование + 4 + true + true + + true + + + Объект.Description + + + НаименованиеРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 5 + true + true + + true + + true + + InputField + EnterOnInput + true + Left + true + + true + true + true + true + true + true + + + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Объект + 1 + + ExchangePlanObject.Мобильные + + + true + + + true + +
    true
    + true +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" "b/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" index 90680147c..e8f1823fe 100644 --- "a/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" +++ "b/fixtures/demo-configuration/src/ExchangePlans/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265/\320\234\320\276\320\261\320\270\320\273\321\214\320\275\321\213\320\265.mdo" @@ -21,7 +21,7 @@ ThisNode - Use + DontUse @@ -31,7 +31,7 @@ ReceivedNo - Use + DontUse @@ -41,7 +41,7 @@ SentNo - Use + DontUse @@ -51,7 +51,7 @@ Ref - Use + DontUse @@ -61,7 +61,7 @@ DeletionMark - Use + DontUse @@ -72,7 +72,7 @@ ShowError - Use + DontUse @@ -83,82 +83,92 @@ ShowError - Use + DontUse DontUse Managed - Use + DontUse 10 Variable 25 - Catalog.Встречи + Catalog.Валюты Allow - Catalog.Контрагенты + Catalog.ВидыЦен Allow - Catalog.Пользователи + Catalog.Встречи Allow - Catalog.Регионы + Catalog.Контрагенты Allow - InformationRegister.КурсыВалют + Catalog.Организации Allow - Document.Заказ + Catalog.Пользователи Allow - Catalog.ХранимыеФайлы + Catalog.Регионы Allow - Catalog.Товары + Catalog.Склады Allow - Catalog.Склады + Catalog.Товары Allow - Constant.УчетПоСкладам + Catalog.ХранимыеФайлы Allow - Catalog.Организации + Constant.НомерПриложенияGoogleCloud Allow - Catalog.ВидыЦен + Constant.УчетПоСкладам Allow - InformationRegister.МобильныеОтчеты + Document.Заказ Allow - InformationRegister.ЦеныТоваров + InformationRegister.КурсыВалют Allow - Catalog.Валюты + InformationRegister.МобильныеОтчеты Allow - Constant.НомерПриложенияGoogleCloud + InformationRegister.ЦеныТоваров Allow AsDescription InDialog BothWays + ExchangePlan.Мобильные.Form.ФормаУзла + + ФормаУзла + + ru + Форма узла + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..5fda2d528 --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + 6f84c041-81e6-4b26-9d95-4bb69d66b2bc + + + Normal + c82abc15-cdb9-4d97-a88f-995835de4cbe + + + Normal + d250b2ee-b846-4951-a93c-17137b1e2eee + + Normal + 62ea91cf-96fb-4274-a102-bc4afb3bf28b + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..ed0cdaa87 --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,425 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 25 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Период + 16 + true + true + + true + + + Список.Period + + true + + ПериодРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + ПериодКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Валюта + 19 + true + true + + true + + + Список.Валюта + + + ВалютаРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + ВалютаКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Курс + 22 + true + true + + true + + + Список.Курс + + + КурсРасширеннаяПодсказка + 24 + true + true + + true + + Label + true + true + + Left + + + + КурсКонтекстноеМеню + 23 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + InformationRegister.КурсыВалют + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" index 6b70d794e..6aa595502 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202/\320\232\321\203\321\200\321\201\321\213\320\222\320\260\320\273\321\216\321\202.mdo" @@ -18,12 +18,13 @@ Use true InDialog + InformationRegister.КурсыВалют.Form.ФормаСписка Use Active - Use + DontUse @@ -33,7 +34,7 @@ LineNumber - Use + DontUse @@ -43,7 +44,7 @@ Recorder - Use + DontUse @@ -54,7 +55,7 @@ ShowError - Use + DontUse @@ -110,7 +111,7 @@ ShowError DontUse Use - Use + DontUse Use 0 @@ -135,7 +136,7 @@ ShowError true - Use + DontUse Use true @@ -154,4 +155,13 @@ PersonalComputer MobileDevice + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" new file mode 100644 index 000000000..4fddba60e --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" @@ -0,0 +1,136 @@ + + + + Письмо + 7 + true + true + + true + + + Запись.Письмо + + + ПисьмоРасширеннаяПодсказка + 3 + true + true + + true + + Label + true + true + + Left + + + + ПисьмоКонтекстноеМеню + 2 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + Прочитано + 4 + true + true + + true + + + Запись.Прочитано + + + ПрочитаноРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + ПрочитаноКонтекстноеМеню + 5 + true + true + + true + + true + + CheckBoxField + Enter + true + Left + true + + + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Запись + 1 + + InformationRegisterRecordManager.СостояниеВходящихПисем + + + true + + + true + +
    true
    + true +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" new file mode 100644 index 000000000..4f0027275 --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Attributes/\320\241\320\277\320\270\321\201\320\276\320\272/ExtInfo/ListSettings.dcss" @@ -0,0 +1,17 @@ + + + + Normal + e9fb5b6a-f499-4490-8c04-85aba2a89707 + + + Normal + b8ebd0b8-4a02-44c3-9caf-d852506a0658 + + + Normal + 68923717-88c0-4e66-9e0c-cff23666e0cb + + Normal + 90203968-4999-4989-ae50-55959218a688 + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" new file mode 100644 index 000000000..4cc16cccc --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Form.form" @@ -0,0 +1,379 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 22 + true + true + + true + + + <key>ru</key> + <value>User settings group</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Список + 3 + true + true + + true + + + Список + + true + None + + Письмо + 16 + true + true + + true + + + Список.Письмо + + true + + ПисьмоРасширеннаяПодсказка + 18 + true + true + + true + + Label + true + true + + Left + + + + ПисьмоКонтекстноеМеню + 17 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + + Прочитано + 19 + true + true + + true + + + Список.Прочитано + + + ПрочитаноРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + ПрочитаноКонтекстноеМеню + 20 + true + true + + true + + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + true + true + + true + + Left + + + true + true + + true + + СписокСтрокаПоиска + 7 + + СписокСтрокаПоискаРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + СписокСтрокаПоискаКонтекстноеМеню + 8 + true + true + + true + + true + + СписокСтрокаПоиска + + true + + + + true + true + + true + + СписокСостояниеПросмотра + 10 + + СписокСостояниеПросмотраРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + СписокСостояниеПросмотраКонтекстноеМеню + 11 + true + true + + true + + true + + ViewStatusAddition + СписокСостояниеПросмотра + + true + + + + true + true + + true + + СписокУправлениеПоиском + 13 + + СписокУправлениеПоискомРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + + СписокУправлениеПоискомКонтекстноеМеню + 14 + true + true + + true + + true + + SearchControlAddition + СписокУправлениеПоиском + + true + + + + СписокРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + СписокКонтекстноеМеню + 4 + true + true + + true + + true + + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + true + Auto + Auto + ExpandTopLevel + true + true + true + true + + Список.DefaultPicture + + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + true + true + Vertical + true + false + true + true + true + + Список + 1 + + DynamicList + + + true + + + true + +
    true
    + + InformationRegister.СостояниеВходящихПисем + true + true + true + true + +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274.mdo" "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274.mdo" index 750e532a9..62bbe2309 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274.mdo" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\320\265\320\222\321\205\320\276\320\264\321\217\321\211\320\270\321\205\320\237\320\270\321\201\320\265\320\274.mdo" @@ -17,6 +17,8 @@ Use InDialog + InformationRegister.СостояниеВходящихПисем.Form.ФормаЗаписи + InformationRegister.СостояниеВходящихПисем.Form.ФормаСписка Managed Прочитано @@ -31,7 +33,7 @@ - Use + DontUse Use @@ -50,11 +52,29 @@ ShowError true - Use + DontUse Use true true true + + ФормаЗаписи + + ru + Форма записи + + PersonalComputer + MobileDevice + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" new file mode 100644 index 000000000..2ee5dbbfd --- /dev/null +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/Forms/\320\244\320\276\321\200\320\274\320\260\320\227\320\260\320\277\320\270\321\201\320\270/Form.form" @@ -0,0 +1,243 @@ + + + + Период + 13 + true + true + + true + + + Запись.Period + + + ПериодРасширеннаяПодсказка + 3 + true + true + + true + + Label + true + true + + Left + + + + ПериодКонтекстноеМеню + 2 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + Товар + 4 + true + true + + true + + + Запись.Товар + + + ТоварРасширеннаяПодсказка + 6 + true + true + + true + + Label + true + true + + Left + + + + ТоварКонтекстноеМеню + 5 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + ВидЦен + 7 + true + true + + true + + + Запись.ВидЦен + + + ВидЦенРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + + ВидЦенКонтекстноеМеню + 8 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + Цена + 10 + true + true + + true + + + Запись.Цена + + + ЦенаРасширеннаяПодсказка + 12 + true + true + + true + + Label + true + true + + Left + + + + ЦенаКонтекстноеМеню + 11 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + true + + LockOwnerWindow + true + true + Vertical + true + false + true + true + true + + Запись + 1 + + InformationRegisterRecordManager.ЦеныТоваров + + + true + + + true + +
    true
    + true +
    + + + + + +
    diff --git "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" index 13aebb088..e69aaea84 100644 --- "a/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" +++ "b/fixtures/demo-configuration/src/InformationRegisters/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262/\320\246\320\265\320\275\321\213\320\242\320\276\320\262\320\260\321\200\320\276\320\262.mdo" @@ -18,12 +18,12 @@ Use true InDialog + InformationRegister.ЦеныТоваров.Form.ФормаЗаписи Use Active - DontUse @@ -33,7 +33,6 @@ LineNumber - DontUse @@ -43,7 +42,6 @@ Recorder - DontUse @@ -54,7 +52,6 @@ ShowError - DontUse @@ -106,7 +103,6 @@ Use - DontUse Use @@ -129,7 +125,6 @@ ShowError true - DontUse Use true @@ -152,11 +147,19 @@ ShowError - DontUse Use Catalog.ВидыЦен.EmptyRef true + + ФормаЗаписи + + ru + Форма записи + + PersonalComputer + MobileDevice + diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" new file mode 100644 index 000000000..907404458 --- /dev/null +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" @@ -0,0 +1,206 @@ + + + + ОсновнаяКоманднаяПанель + 10 + true + true + + true + + + <key>ru</key> + <value>Основная командная панель</value> + + + ОсновнаяКоманднаяПанельРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + CommandBar + + Left + Form + + + + КомпоновщикНастроекПользовательскиеНастройки + 8 + true + true + + true + + + <key>ru</key> + <value>Custom settings folder</value> + + false + + КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 4 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Результат + 5 + true + true + + true + + + Результат + + true + None + + РезультатРасширеннаяПодсказка + 7 + true + true + + true + + Label + true + true + + Left + + + + РезультатКонтекстноеМеню + 6 + true + true + + true + + true + + SpreadsheetDocumentField + Enter + true + Left + true + + 100 + true + 10 + true + true + true + Special + ScrollAuto + ScrollAuto + Always + true + true + true + + + None + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + + true + true + Vertical + true + false + true + true + true + + Отчет + 1 + + ReportObject.ОстаткиТоваровНаСкладах + + + true + + + true + +
    true
    +
    + + Результат + + <key>ru</key> + <value>Результат</value> + + 2 + + SpreadsheetDocument + + + true + + + true + + + + ДанныеРасшифровки + 3 + + String + + + + true + + + true + + + + + + + + Результат + ДанныеРасшифровки + КомпоновщикНастроекПользовательскиеНастройки + +
    diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205.mdo" "b/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205.mdo" index 76e18df95..4ccfb43e0 100644 --- "a/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205.mdo" +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205/\320\236\321\201\321\202\320\260\321\202\320\272\320\270\320\242\320\276\320\262\320\260\321\200\320\276\320\262\320\235\320\260\320\241\320\272\320\273\320\260\320\264\320\260\321\205.mdo" @@ -11,6 +11,7 @@ true + Report.ОстаткиТоваровНаСкладах.Form.ФормаОтчета Report.ОстаткиТоваровНаСкладах.Template.ОсновнаяСхемаКомпоновкиДанных true @@ -22,6 +23,15 @@ ru Отчет по остаткам товаров на складах + + ФормаОтчета + + ru + Форма отчета + + PersonalComputer + MobileDevice + ОсновнаяСхемаКомпоновкиДанных diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Form.form" new file mode 100644 index 000000000..9240dc5ae --- /dev/null +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Form.form" @@ -0,0 +1,4946 @@ + + + + КомпоновщикНастроекНастройки + 312 + + <key>ru</key> + <value>Таблица настроек</value> + + true + true + + true + + + Отчет.SettingsComposer.Settings + + None + + КомпоновщикНастроекНастройкиКоманднаяПанель + 316 + true + true + + true + + Left + true + + + OnActivateRow + КомпоновщикНастроекНастройкиПриАктивизацииСтроки + + + OnActivateField + КомпоновщикНастроекНастройкиПриАктивизацииПоля + + + true + true + + true + + КомпоновщикНастроекНастройкиСтрокаПоиска + 314 + + КомпоновщикНастроекНастройкиСтрокаПоискаРасширеннаяПодсказка + 7 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиСтрокаПоискаКонтекстноеМеню + 313 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиСостояниеПросмотра + 8 + + КомпоновщикНастроекНастройкиСостояниеПросмотраРасширеннаяПодсказка + 10 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиСостояниеПросмотраКонтекстноеМеню + 9 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиУправлениеПоиском + 11 + + КомпоновщикНастроекНастройкиУправлениеПоискомРасширеннаяПодсказка + 13 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиУправлениеПоискомКонтекстноеМеню + 12 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиРасширеннаяПодсказка + 317 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиКонтекстноеМеню + 315 + true + true + + true + + true + + Tree + true + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandAllLevels + true + true + true + true +
    + + СтраницыНастроек + 14 + + СтраницаПараметровДанных + 16 + + КомпоновщикНастроекНастройкиПараметрыДанных + 18 + + <key>ru</key> + <value>Настройки параметров</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemDataParameters + + None + + КомпоновщикНастроекНастройкиПараметрыДанныхКоманднаяПанель + 20 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПараметрыДанныхСтрокаПоиска + 22 + + КомпоновщикНастроекНастройкиПараметрыДанныхСтрокаПоискаРасширеннаяПодсказка + 24 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыДанныхСтрокаПоискаКонтекстноеМеню + 23 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПараметрыДанныхСостояниеПросмотра + 25 + + КомпоновщикНастроекНастройкиПараметрыДанныхСостояниеПросмотраРасширеннаяПодсказка + 27 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыДанныхСостояниеПросмотраКонтекстноеМеню + 26 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПараметрыДанныхУправлениеПоиском + 28 + + КомпоновщикНастроекНастройкиПараметрыДанныхУправлениеПоискомРасширеннаяПодсказка + 30 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыДанныхУправлениеПоискомКонтекстноеМеню + 29 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПараметрыДанныхРасширеннаяПодсказка + 21 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыДанныхКонтекстноеМеню + 19 + true + true + + true + + true + + Tree + true + true + true + 50 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandAllLevels + true + true +
    + true + true + + true + + + <key>ru</key> + <value>Параметры</value> + + + СтраницаПараметровДанныхРасширеннаяПодсказка + 17 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionDataParameters + + Vertical + true + +
    + + СтраницаПользовательскихПолей + 31 + + КомпоновщикНастроекНастройкиПользовательскиеПоля + 33 + + <key>ru</key> + <value>Настройки пользовательских полей</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemUserFields + + None + + КомпоновщикНастроекНастройкиПользовательскиеПоляКоманднаяПанель + 35 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПользовательскиеПоляСтрокаПоиска + 37 + + КомпоновщикНастроекНастройкиПользовательскиеПоляСтрокаПоискаРасширеннаяПодсказка + 39 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПользовательскиеПоляСтрокаПоискаКонтекстноеМеню + 38 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПользовательскиеПоляСостояниеПросмотра + 40 + + КомпоновщикНастроекНастройкиПользовательскиеПоляСостояниеПросмотраРасширеннаяПодсказка + 42 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПользовательскиеПоляСостояниеПросмотраКонтекстноеМеню + 41 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПользовательскиеПоляУправлениеПоиском + 43 + + КомпоновщикНастроекНастройкиПользовательскиеПоляУправлениеПоискомРасширеннаяПодсказка + 45 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПользовательскиеПоляУправлениеПоискомКонтекстноеМеню + 44 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПользовательскиеПоляРасширеннаяПодсказка + 36 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПользовательскиеПоляКонтекстноеМеню + 34 + true + true + + true + + true + + true + true + true + 60 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true +
    + true + true + + true + + + <key>ru</key> + <value>Пользовательские поля</value> + + + СтраницаПользовательскихПолейРасширеннаяПодсказка + 32 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionUserFields + + true + +
    + + СтраницаПолейГруппировки + 46 + + СтраницыПолейГруппировки + 48 + + НастройкиПолейГруппировки + 50 + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировок + 52 + + <key>ru</key> + <value>Доступные поля группируемых полей</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemGroupFields.GroupFieldsAvailableFields + + None + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокКоманднаяПанель + 54 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокСтрокаПоиска + 56 + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокСтрокаПоискаРасширеннаяПодсказка + 58 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокСтрокаПоискаКонтекстноеМеню + 57 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокСостояниеПросмотра + 59 + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокСостояниеПросмотраРасширеннаяПодсказка + 61 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокСостояниеПросмотраКонтекстноеМеню + 60 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокУправлениеПоиском + 62 + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокУправлениеПоискомРасширеннаяПодсказка + 64 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокУправлениеПоискомКонтекстноеМеню + 63 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокРасширеннаяПодсказка + 55 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиДоступныеПоляПолейГруппировокКонтекстноеМеню + 53 + true + true + + true + + true + + Tree + true + true + true + 30 + true + true + 15 + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + Auto + Auto + true + true + true + true +
    + + КомпоновщикНастроекНастройкиПоляГруппировки + 65 + + <key>ru</key> + <value>Таблица группируемых полей</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemGroupFields + + None + + КомпоновщикНастроекНастройкиПоляГруппировкиКоманднаяПанель + 67 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПоляГруппировкиСтрокаПоиска + 69 + + КомпоновщикНастроекНастройкиПоляГруппировкиСтрокаПоискаРасширеннаяПодсказка + 71 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиСтрокаПоискаКонтекстноеМеню + 70 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПоляГруппировкиСостояниеПросмотра + 72 + + КомпоновщикНастроекНастройкиПоляГруппировкиСостояниеПросмотраРасширеннаяПодсказка + 74 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиСостояниеПросмотраКонтекстноеМеню + 73 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПоляГруппировкиУправлениеПоиском + 75 + + КомпоновщикНастроекНастройкиПоляГруппировкиУправлениеПоискомРасширеннаяПодсказка + 77 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиУправлениеПоискомКонтекстноеМеню + 76 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПоляГруппировкиРасширеннаяПодсказка + 68 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПоляГруппировкиКонтекстноеМеню + 66 + true + true + + true + + true + + true + true + true + 60 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true +
    + true + true + + true + + + <key>ru</key> + <value>Страница группируемых полей</value> + + + НастройкиПолейГруппировкиРасширеннаяПодсказка + 51 + true + true + + true + + Label + true + true + + Left + + + Page + + LeftNarrowest + true + +
    + + НедоступныеНастройкиПолейГруппировки + 78 + + НадписьНедоступныхПолейГруппировки + 80 + + <key>ru</key> + <value>Текущий элемент не может содержать поля группировки. +Выберите в дереве структуры группировку, для которой требуется просмотреть или изменить состав полей группировки.</value> + + true + true + + true + + + НадписьНедоступныхПолейГруппировкиРасширеннаяПодсказка + 82 + true + true + + true + + Label + true + true + + Left + + + + НадписьНедоступныхПолейГруппировкиКонтекстноеМеню + 81 + true + true + + true + + true + + Label + true + 2 + true + true + false + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница недоступных группируемых полей</value> + + + НедоступныеНастройкиПолейГруппировкиРасширеннаяПодсказка + 79 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + true + true + + true + + + <key>ru</key> + <value>Страницы группируемых полей</value> + + + СтраницыПолейГруппировкиРасширеннаяПодсказка + 49 + true + true + + true + + Label + true + true + + Left + + + Pages + + DontUse + +
    + true + true + + true + + + <key>ru</key> + <value>Группируемые поля</value> + + + СтраницаПолейГруппировкиРасширеннаяПодсказка + 47 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionGroupFields + + Vertical + true + +
    + + СтраницаПолейВыбора + 83 + + ЛокальныеВыбранныеПоля + 85 + + <key>ru</key> + <value>Текущий элемент имеет собственные настройки выбранных полей (для детальной настройки элемента)</value> + + true + true + + true + + + ЛокальныеВыбранныеПоля + + Right + + OnChange + ЛокальныеВыбранныеПоляПриИзменении + + + ЛокальныеВыбранныеПоляРасширеннаяПодсказка + 87 + true + true + + true + + Label + true + true + + Left + + + + ЛокальныеВыбранныеПоляКонтекстноеМеню + 86 + true + true + + true + + true + + CheckBoxField + Enter + true + Left + true + + + + СтраницыПолейВыбора + 88 + + НастройкиВыбранныхПолей + 90 + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбора + 92 + + <key>ru</key> + <value>Доступные поля полей</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemSelection.SelectionAvailableFields + + None + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораКоманднаяПанель + 94 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораСтрокаПоиска + 96 + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораСтрокаПоискаРасширеннаяПодсказка + 98 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораСтрокаПоискаКонтекстноеМеню + 97 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораСостояниеПросмотра + 99 + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораСостояниеПросмотраРасширеннаяПодсказка + 101 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораСостояниеПросмотраКонтекстноеМеню + 100 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораУправлениеПоиском + 102 + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораУправлениеПоискомРасширеннаяПодсказка + 104 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораУправлениеПоискомКонтекстноеМеню + 103 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораРасширеннаяПодсказка + 95 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборДоступныеПоляВыбораКонтекстноеМеню + 93 + true + true + + true + + true + + Tree + true + true + true + 30 + true + true + 15 + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + Auto + Auto + true + true + true + true +
    + + КомпоновщикНастроекНастройкиВыбор + 105 + + <key>ru</key> + <value>Таблица полей</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemSelection + + None + + КомпоновщикНастроекНастройкиВыборКоманднаяПанель + 107 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиВыборСтрокаПоиска + 109 + + КомпоновщикНастроекНастройкиВыборСтрокаПоискаРасширеннаяПодсказка + 111 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборСтрокаПоискаКонтекстноеМеню + 110 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиВыборСостояниеПросмотра + 112 + + КомпоновщикНастроекНастройкиВыборСостояниеПросмотраРасширеннаяПодсказка + 114 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборСостояниеПросмотраКонтекстноеМеню + 113 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиВыборУправлениеПоиском + 115 + + КомпоновщикНастроекНастройкиВыборУправлениеПоискомРасширеннаяПодсказка + 117 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборУправлениеПоискомКонтекстноеМеню + 116 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиВыборРасширеннаяПодсказка + 108 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиВыборКонтекстноеМеню + 106 + true + true + + true + + true + + Tree + true + true + true + 60 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandAllLevels + true + true + true + true +
    + true + true + + true + + + <key>ru</key> + <value>Страница полей</value> + + + НастройкиВыбранныхПолейРасширеннаяПодсказка + 91 + true + true + + true + + Label + true + true + + Left + + + Page + + LeftNarrowest + true + +
    + + ОтключенныеНастройкиВыбранныхПолей + 118 + + НадписьЛокальныхВыбранныхПолей + 120 + + <key>ru</key> + <value>Выбранные поля для текущего элемента будут автоматически формироваться на основании выбранных полей всего отчета. +Выберите в дереве структуры элемент - отчет для редактирования его выбранных полей. +Если необходимо, чтобы текущий элемент имел выбранные поля, отличные от выбранных полей отчета, установите флажок, расположенный над этим текстом.</value> + + true + true + + true + + + НадписьЛокальныхВыбранныхПолейРасширеннаяПодсказка + 122 + true + true + + true + + Label + true + true + + Left + + + + НадписьЛокальныхВыбранныхПолейКонтекстноеМеню + 121 + true + true + + true + + true + + Label + true + 3 + true + true + false + + Left + + + + ПереходКВыбраннымПолямОтчета + 123 + + <key>ru</key> + <value>Нажмите здесь для перехода к выбранным полям отчета.</value> + + true + true + + true + + + ПереходКВыбраннымПолямОтчетаРасширеннаяПодсказка + 125 + true + true + + true + + Label + true + true + + Left + + + + ПереходКВыбраннымПолямОтчетаКонтекстноеМеню + 124 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница отключенных полей</value> + + + ОтключенныеНастройкиВыбранныхПолейРасширеннаяПодсказка + 119 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + + НедоступныеНастройкиВыбранныхПолей + 126 + + НадписьНедоступныхВыбранныхПолей + 128 + + <key>ru</key> + <value>У текущего элемента не могут быть установлены выбранные поля. +Выберите в дереве структуры элемент - отчет для редактирования его выбранных полей.</value> + + true + true + + true + + + НадписьНедоступныхВыбранныхПолейРасширеннаяПодсказка + 130 + true + true + + true + + Label + true + true + + Left + + + + НадписьНедоступныхВыбранныхПолейКонтекстноеМеню + 129 + true + true + + true + + true + + Label + true + 2 + true + true + false + + Left + + + + ПереходКВыбраннымПолямОтчетаОтНедоступныхВыбранныхПолей + 131 + + <key>ru</key> + <value>Нажмите здесь для перехода к выбранным полям отчета.</value> + + true + true + + true + + + ПереходКВыбраннымПолямОтчетаОтНедоступныхВыбранныхПолейРасширеннаяПодсказка + 133 + true + true + + true + + Label + true + true + + Left + + + + ПереходКВыбраннымПолямОтчетаОтНедоступныхВыбранныхПолейКонтекстноеМеню + 132 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница недоступных полей</value> + + + НедоступныеНастройкиВыбранныхПолейРасширеннаяПодсказка + 127 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + true + true + + true + + + <key>ru</key> + <value>Страницы полей</value> + + + СтраницыПолейВыбораРасширеннаяПодсказка + 89 + true + true + + true + + Label + true + true + + Left + + + Pages + + DontUse + +
    + true + true + + true + + + <key>ru</key> + <value>Поля</value> + + + СтраницаПолейВыбораРасширеннаяПодсказка + 84 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionSelection + + Vertical + true + +
    + + СтраницаОтбора + 134 + + ЛокальныйОтбор + 136 + + <key>ru</key> + <value>Текущий элемент имеет собственный отбор (для фильтрации записей, выводимых в элементе)</value> + + true + true + + true + + + ЛокальныйОтбор + + Right + + OnChange + ЛокальныйОтборПриИзменении + + + ЛокальныйОтборРасширеннаяПодсказка + 138 + true + true + + true + + Label + true + true + + Left + + + + ЛокальныйОтборКонтекстноеМеню + 137 + true + true + + true + + true + + CheckBoxField + Enter + true + Left + true + + + + СтраницыОтбора + 139 + + НастройкиОтбора + 141 + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбора + 143 + + <key>ru</key> + <value>Доступные поля отбора</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemFilter.FilterAvailableFields + + None + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораКоманднаяПанель + 145 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораСтрокаПоиска + 147 + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораСтрокаПоискаРасширеннаяПодсказка + 149 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораСтрокаПоискаКонтекстноеМеню + 148 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораСостояниеПросмотра + 150 + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораСостояниеПросмотраРасширеннаяПодсказка + 152 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораСостояниеПросмотраКонтекстноеМеню + 151 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораУправлениеПоиском + 153 + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораУправлениеПоискомРасширеннаяПодсказка + 155 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораУправлениеПоискомКонтекстноеМеню + 154 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораРасширеннаяПодсказка + 146 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборДоступныеПоляОтбораКонтекстноеМеню + 144 + true + true + + true + + true + + Tree + true + true + true + 30 + true + true + 15 + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + Auto + Auto + true + true + true + true +
    + + КомпоновщикНастроекНастройкиОтбор + 156 + + <key>ru</key> + <value>Таблица отбора</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemFilter + + None + + КомпоновщикНастроекНастройкиОтборКоманднаяПанель + 158 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиОтборСтрокаПоиска + 160 + + КомпоновщикНастроекНастройкиОтборСтрокаПоискаРасширеннаяПодсказка + 162 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборСтрокаПоискаКонтекстноеМеню + 161 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиОтборСостояниеПросмотра + 163 + + КомпоновщикНастроекНастройкиОтборСостояниеПросмотраРасширеннаяПодсказка + 165 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборСостояниеПросмотраКонтекстноеМеню + 164 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиОтборУправлениеПоиском + 166 + + КомпоновщикНастроекНастройкиОтборУправлениеПоискомРасширеннаяПодсказка + 168 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборУправлениеПоискомКонтекстноеМеню + 167 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиОтборРасширеннаяПодсказка + 159 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиОтборКонтекстноеМеню + 157 + true + true + + true + + true + + Tree + true + true + true + 60 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandAllLevels + true + true + true + true + All + false +
    + true + true + + true + + + <key>ru</key> + <value>Страница полей</value> + + + НастройкиОтбораРасширеннаяПодсказка + 142 + true + true + + true + + Label + true + true + + Left + + + Page + + LeftNarrowest + true + +
    + + ОтключенныеНастройкиОтбора + 169 + + НадписьЛокальногоОтбора + 171 + + <key>ru</key> + <value>В текущем элементе отбор не установлен. +Выберите в дереве структуры отчет для редактирования отбора отчета в целом. +Если необходимо, чтобы текущий элемент имел собственный отбор, установите флажок, расположенный над этим текстом.</value> + + true + true + + true + + + НадписьЛокальногоОтбораРасширеннаяПодсказка + 173 + true + true + + true + + Label + true + true + + Left + + + + НадписьЛокальногоОтбораКонтекстноеМеню + 172 + true + true + + true + + true + + Label + true + 3 + true + true + false + + Left + + + + ПереходКОтборуОтчета + 174 + + <key>ru</key> + <value>Нажмите здесь для перехода к отбору отчета.</value> + + true + true + + true + + + ПереходКОтборуОтчетаРасширеннаяПодсказка + 176 + true + true + + true + + Label + true + true + + Left + + + + ПереходКОтборуОтчетаКонтекстноеМеню + 175 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница отключенного отбора</value> + + + ОтключенныеНастройкиОтбораРасширеннаяПодсказка + 170 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + + НедоступныеНастройкиОтбора + 177 + + НадписьНедоступногоОтбора + 179 + + <key>ru</key> + <value>У текущего элемента не может быть установлен отбор. +Выберите в дереве структуры отчет для редактирования отбора отчета в целом.</value> + + true + true + + true + + + НадписьНедоступногоОтбораРасширеннаяПодсказка + 181 + true + true + + true + + Label + true + true + + Left + + + + НадписьНедоступногоОтбораКонтекстноеМеню + 180 + true + true + + true + + true + + Label + true + 2 + true + true + false + + Left + + + + ПереходКОтборуОтчетаОтНедоступногоОтбора + 182 + + <key>ru</key> + <value>Нажмите здесь для перехода к отбору отчета.</value> + + true + true + + true + + + ПереходКОтборуОтчетаОтНедоступногоОтбораРасширеннаяПодсказка + 184 + true + true + + true + + Label + true + true + + Left + + + + ПереходКОтборуОтчетаОтНедоступногоОтбораКонтекстноеМеню + 183 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница недоступного отбора</value> + + + НедоступныеНастройкиОтбораРасширеннаяПодсказка + 178 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + true + true + + true + + + <key>ru</key> + <value>Страницы отбора</value> + + + СтраницыОтбораРасширеннаяПодсказка + 140 + true + true + + true + + Label + true + true + + Left + + + Pages + + DontUse + +
    + true + true + + true + + + <key>ru</key> + <value>Отбор</value> + + + СтраницаОтбораРасширеннаяПодсказка + 135 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionFilter + + Vertical + true + +
    + + СтраницаПорядка + 185 + + ЛокальныйПорядок + 187 + + <key>ru</key> + <value>Текущий элемент имеет собственную сортировку (для упорядочивания записей, выводимых в элементе)</value> + + true + true + + true + + + ЛокальныйПорядок + + Right + + OnChange + ЛокальныйПорядокПриИзменении + + + ЛокальныйПорядокРасширеннаяПодсказка + 189 + true + true + + true + + Label + true + true + + Left + + + + ЛокальныйПорядокКонтекстноеМеню + 188 + true + true + + true + + true + + CheckBoxField + Enter + true + Left + true + + + + СтраницыПорядка + 190 + + НастройкиПорядка + 192 + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядка + 194 + + <key>ru</key> + <value>Доступные поля сортировки</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemOrder.OrderAvailableFields + + None + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаКоманднаяПанель + 196 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаСтрокаПоиска + 198 + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаСтрокаПоискаРасширеннаяПодсказка + 200 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаСтрокаПоискаКонтекстноеМеню + 199 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаСостояниеПросмотра + 201 + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаСостояниеПросмотраРасширеннаяПодсказка + 203 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаСостояниеПросмотраКонтекстноеМеню + 202 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаУправлениеПоиском + 204 + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаУправлениеПоискомРасширеннаяПодсказка + 206 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаУправлениеПоискомКонтекстноеМеню + 205 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаРасширеннаяПодсказка + 197 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокДоступныеПоляПорядкаКонтекстноеМеню + 195 + true + true + + true + + true + + Tree + true + true + true + 30 + true + true + 15 + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + Auto + Auto + true + true + true + true +
    + + КомпоновщикНастроекНастройкиПорядок + 207 + + <key>ru</key> + <value>Таблица сортировки</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemOrder + + None + + КомпоновщикНастроекНастройкиПорядокКоманднаяПанель + 209 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПорядокСтрокаПоиска + 211 + + КомпоновщикНастроекНастройкиПорядокСтрокаПоискаРасширеннаяПодсказка + 213 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокСтрокаПоискаКонтекстноеМеню + 212 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПорядокСостояниеПросмотра + 214 + + КомпоновщикНастроекНастройкиПорядокСостояниеПросмотраРасширеннаяПодсказка + 216 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокСостояниеПросмотраКонтекстноеМеню + 215 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПорядокУправлениеПоиском + 217 + + КомпоновщикНастроекНастройкиПорядокУправлениеПоискомРасширеннаяПодсказка + 219 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокУправлениеПоискомКонтекстноеМеню + 218 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПорядокРасширеннаяПодсказка + 210 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПорядокКонтекстноеМеню + 208 + true + true + + true + + true + + true + true + true + 60 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true +
    + true + true + + true + + + <key>ru</key> + <value>Страница сортировки</value> + + + НастройкиПорядкаРасширеннаяПодсказка + 193 + true + true + + true + + Label + true + true + + Left + + + Page + + LeftNarrowest + true + +
    + + ОтключенныеНастройкиПорядка + 220 + + НадписьЛокальногоПорядка + 222 + + <key>ru</key> + <value>В текущем элементе сортировка не установлена. +Выберите в дереве структуры отчет для редактирования сортировки отчета в целом. +Если необходимо, чтобы текущий элемент имел собственную сортировку, установите флажок, расположенный над этим текстом.</value> + + true + true + + true + + + НадписьЛокальногоПорядкаРасширеннаяПодсказка + 224 + true + true + + true + + Label + true + true + + Left + + + + НадписьЛокальногоПорядкаКонтекстноеМеню + 223 + true + true + + true + + true + + Label + true + 3 + true + true + false + + Left + + + + ПереходКПорядкуОтчета + 225 + + <key>ru</key> + <value>Нажмите здесь для перехода к сортировке отчета.</value> + + true + true + + true + + + ПереходКПорядкуОтчетаРасширеннаяПодсказка + 227 + true + true + + true + + Label + true + true + + Left + + + + ПереходКПорядкуОтчетаКонтекстноеМеню + 226 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница отключенной сортировки</value> + + + ОтключенныеНастройкиПорядкаРасширеннаяПодсказка + 221 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + + НедоступныеНастройкиПорядка + 228 + + НадписьНедоступногоПорядка + 230 + + <key>ru</key> + <value>У текущего элемента не может быть установлена сортировка. +Выберите в дереве структуры отчет для редактирования сортировки отчета в целом.</value> + + true + true + + true + + + НадписьНедоступногоПорядкаРасширеннаяПодсказка + 232 + true + true + + true + + Label + true + true + + Left + + + + НадписьНедоступногоПорядкаКонтекстноеМеню + 231 + true + true + + true + + true + + Label + true + 2 + true + true + false + + Left + + + + ПереходКПорядкуОтчетаОтНедоступногоПорядка + 233 + + <key>ru</key> + <value>Нажмите здесь для перехода к сортировке отчета.</value> + + true + true + + true + + + ПереходКПорядкуОтчетаОтНедоступногоПорядкаРасширеннаяПодсказка + 235 + true + true + + true + + Label + true + true + + Left + + + + ПереходКПорядкуОтчетаОтНедоступногоПорядкаКонтекстноеМеню + 234 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница недоступной сортировки</value> + + + НедоступныеНастройкиПорядкаРасширеннаяПодсказка + 229 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + true + true + + true + + + <key>ru</key> + <value>Страницы сортировки</value> + + + СтраницыПорядкаРасширеннаяПодсказка + 191 + true + true + + true + + Label + true + true + + Left + + + Pages + + DontUse + +
    + true + true + + true + + + <key>ru</key> + <value>Сортировка</value> + + + СтраницаПорядкаРасширеннаяПодсказка + 186 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionOrder + + Vertical + true + +
    + + СтраницаУсловногоОформления + 236 + + ЛокальноеУсловноеОформление + 238 + + <key>ru</key> + <value>Текущий элемент имеет собственное условное оформление (для оформления записей, выводимых в элементе)</value> + + true + true + + true + + + ЛокальноеУсловноеОформление + + Right + + OnChange + ЛокальноеУсловноеОформлениеПриИзменении + + + ЛокальноеУсловноеОформлениеРасширеннаяПодсказка + 240 + true + true + + true + + Label + true + true + + Left + + + + ЛокальноеУсловноеОформлениеКонтекстноеМеню + 239 + true + true + + true + + true + + CheckBoxField + Enter + true + Left + true + + + + СтраницыУсловногоОформления + 241 + + НастройкиУсловногоОформления + 243 + + КомпоновщикНастроекНастройкиУсловноеОформление + 245 + + <key>ru</key> + <value>Таблица условного оформления</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemConditionalAppearance + + None + + КомпоновщикНастроекНастройкиУсловноеОформлениеКоманднаяПанель + 247 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиУсловноеОформлениеСтрокаПоиска + 249 + + КомпоновщикНастроекНастройкиУсловноеОформлениеСтрокаПоискаРасширеннаяПодсказка + 251 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиУсловноеОформлениеСтрокаПоискаКонтекстноеМеню + 250 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиУсловноеОформлениеСостояниеПросмотра + 252 + + КомпоновщикНастроекНастройкиУсловноеОформлениеСостояниеПросмотраРасширеннаяПодсказка + 254 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиУсловноеОформлениеСостояниеПросмотраКонтекстноеМеню + 253 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиУсловноеОформлениеУправлениеПоиском + 255 + + КомпоновщикНастроекНастройкиУсловноеОформлениеУправлениеПоискомРасширеннаяПодсказка + 257 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиУсловноеОформлениеУправлениеПоискомКонтекстноеМеню + 256 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиУсловноеОформлениеРасширеннаяПодсказка + 248 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиУсловноеОформлениеКонтекстноеМеню + 246 + true + true + + true + + true + + true + true + true + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true + false +
    + true + true + + true + + + <key>ru</key> + <value>Страница условного оформления</value> + + + НастройкиУсловногоОформленияРасширеннаяПодсказка + 244 + true + true + + true + + Label + true + true + + Left + + + Page + + true + +
    + + ОтключенныеНастройкиУсловногоОформления + 258 + + НадписьЛокальногоУсловногоОформления + 260 + + <key>ru</key> + <value>В текущем элементе условное оформление не установлено. +Выберите в дереве структуры отчет для редактирования условного оформления отчета в целом. +Если необходимо, чтобы текущий элемент имел собственное условное оформление, установите флажок, расположенный над этим текстом.</value> + + true + true + + true + + + НадписьЛокальногоУсловногоОформленияРасширеннаяПодсказка + 262 + true + true + + true + + Label + true + true + + Left + + + + НадписьЛокальногоУсловногоОформленияКонтекстноеМеню + 261 + true + true + + true + + true + + Label + true + 3 + true + true + false + + Left + + + + ПереходКУсловномуОформлениюОтчета + 263 + + <key>ru</key> + <value>Нажмите здесь для перехода к условному оформлению отчета.</value> + + true + true + + true + + + ПереходКУсловномуОформлениюОтчетаРасширеннаяПодсказка + 265 + true + true + + true + + Label + true + true + + Left + + + + ПереходКУсловномуОформлениюОтчетаКонтекстноеМеню + 264 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница отключенного условного оформления</value> + + + ОтключенныеНастройкиУсловногоОформленияРасширеннаяПодсказка + 259 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + + НедоступныеНастройкиУсловногоОформления + 266 + + НадписьНедоступногоУсловногоОформления + 268 + + <key>ru</key> + <value>У текущего элемента не может быть установлено условное оформление. +Выберите в дереве структуры отчет для редактирования условного оформления отчета в целом.</value> + + true + true + + true + + + НадписьНедоступногоУсловногоОформленияРасширеннаяПодсказка + 270 + true + true + + true + + Label + true + true + + Left + + + + НадписьНедоступногоУсловногоОформленияКонтекстноеМеню + 269 + true + true + + true + + true + + Label + true + 2 + true + true + false + + Left + + + + ПереходКУсловномуОформлениюОтчетаОтНедоступногоУсловногоОформления + 271 + + <key>ru</key> + <value>Нажмите здесь для перехода к условному оформлению отчета.</value> + + true + true + + true + + + ПереходКУсловномуОформлениюОтчетаОтНедоступногоУсловногоОформленияРасширеннаяПодсказка + 273 + true + true + + true + + Label + true + true + + Left + + + + ПереходКУсловномуОформлениюОтчетаОтНедоступногоУсловногоОформленияКонтекстноеМеню + 272 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница недоступного условного оформления</value> + + + НедоступныеНастройкиУсловногоОформленияРасширеннаяПодсказка + 267 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + true + true + + true + + + <key>ru</key> + <value>Страницы условного оформления</value> + + + СтраницыУсловногоОформленияРасширеннаяПодсказка + 242 + true + true + + true + + Label + true + true + + Left + + + Pages + + DontUse + +
    + true + true + + true + + + <key>ru</key> + <value>Условное оформление</value> + + + СтраницаУсловногоОформленияРасширеннаяПодсказка + 237 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionConditionalAppearance + + Vertical + true + +
    + + СтраницаПараметровВывода + 274 + + ЛокальныеПараметрыВывода + 276 + + <key>ru</key> + <value>Текущий элемент имеет собственные дополнительные настройки</value> + + true + true + + true + + + ЛокальныеПараметрыВывода + + Right + + OnChange + ЛокальныеПараметрыВыводаПриИзменении + + + ЛокальныеПараметрыВыводаРасширеннаяПодсказка + 278 + true + true + + true + + Label + true + true + + Left + + + + ЛокальныеПараметрыВыводаКонтекстноеМеню + 277 + true + true + + true + + true + + CheckBoxField + Enter + true + Left + true + + + + СтраницыПараметровВывода + 279 + + НастройкиПараметровВывода + 281 + + КомпоновщикНастроекНастройкиПараметрыВывода + 283 + + <key>ru</key> + <value>Таблица дополнительных настроек</value> + + true + true + + true + + + Items.КомпоновщикНастроекНастройки.CurrentData.ItemOutputParameters + + None + + КомпоновщикНастроекНастройкиПараметрыВыводаКоманднаяПанель + 285 + true + true + + true + + Left + true + + + true + true + + true + + КомпоновщикНастроекНастройкиПараметрыВыводаСтрокаПоиска + 287 + + КомпоновщикНастроекНастройкиПараметрыВыводаСтрокаПоискаРасширеннаяПодсказка + 289 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыВыводаСтрокаПоискаКонтекстноеМеню + 288 + true + true + + true + + true + + + true + + + + true + true + + true + + КомпоновщикНастроекНастройкиПараметрыВыводаСостояниеПросмотра + 290 + + КомпоновщикНастроекНастройкиПараметрыВыводаСостояниеПросмотраРасширеннаяПодсказка + 292 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыВыводаСостояниеПросмотраКонтекстноеМеню + 291 + true + true + + true + + true + + ViewStatusAddition + + true + Left + + + + true + true + + true + + КомпоновщикНастроекНастройкиПараметрыВыводаУправлениеПоиском + 293 + + КомпоновщикНастроекНастройкиПараметрыВыводаУправлениеПоискомРасширеннаяПодсказка + 295 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыВыводаУправлениеПоискомКонтекстноеМеню + 294 + true + true + + true + + true + + SearchControlAddition + + true + + + + КомпоновщикНастроекНастройкиПараметрыВыводаРасширеннаяПодсказка + 286 + true + true + + true + + Label + true + true + + Left + + + + КомпоновщикНастроекНастройкиПараметрыВыводаКонтекстноеМеню + 284 + true + true + + true + + true + + Tree + true + true + true + 50 + true + true + true + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + ExpandAllLevels + true + true +
    + true + true + + true + + + <key>ru</key> + <value>Страница дополнительных настроек</value> + + + НастройкиПараметровВыводаРасширеннаяПодсказка + 282 + true + true + + true + + Label + true + true + + Left + + + Page + + true + +
    + + ОтключенныеНастройкиПараметровВывода + 296 + + НадписьЛокальныхПараметровВывода + 298 + + <key>ru</key> + <value>В текущем элементе дополнительные настройки не установлены. +Выберите в дереве структуры отчет для редактирования дополнительных настроек отчета в целом. +Если необходимо, чтобы текущий элемент имел собственные дополнительные настройки, установите флажок, расположенный над этим текстом.</value> + + true + true + + true + + + НадписьЛокальныхПараметровВыводаРасширеннаяПодсказка + 300 + true + true + + true + + Label + true + true + + Left + + + + НадписьЛокальныхПараметровВыводаКонтекстноеМеню + 299 + true + true + + true + + true + + Label + true + 3 + true + true + false + + Left + + + + ПереходКПараметрамВыводаОтчета + 301 + + <key>ru</key> + <value>Нажмите здесь для перехода к дополнительным настройкам отчета.</value> + + true + true + + true + + + ПереходКПараметрамВыводаОтчетаРасширеннаяПодсказка + 303 + true + true + + true + + Label + true + true + + Left + + + + ПереходКПараметрамВыводаОтчетаКонтекстноеМеню + 302 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница отключенных дополнительных настроек</value> + + + ОтключенныеНастройкиПараметровВыводаРасширеннаяПодсказка + 297 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + + НедоступныеНастройкиПараметровВывода + 304 + + НадписьНедоступныхПараметровВывода + 306 + + <key>ru</key> + <value>У текущего элемента не могут быть установлены дополнительные настройки. +Выберите в дереве структуры отчет для редактирования дополнительных настроек отчета в целом.</value> + + true + true + + true + + + НадписьНедоступныхПараметровВыводаРасширеннаяПодсказка + 308 + true + true + + true + + Label + true + true + + Left + + + + НадписьНедоступныхПараметровВыводаКонтекстноеМеню + 307 + true + true + + true + + true + + Label + true + 2 + true + true + false + + Left + + + + ПереходКПараметрамВыводаОтчетаОтНедоступныхПараметровВывода + 309 + + <key>ru</key> + <value>Нажмите здесь для перехода к дополнительным настройкам отчета.</value> + + true + true + + true + + + ПереходКПараметрамВыводаОтчетаОтНедоступныхПараметровВыводаРасширеннаяПодсказка + 311 + true + true + + true + + Label + true + true + + Left + + + + ПереходКПараметрамВыводаОтчетаОтНедоступныхПараметровВыводаКонтекстноеМеню + 310 + true + true + + true + + true + + Label + true + true + + + Click + ПерейтиКОтчету + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница недоступных дополнительных настроек</value> + + + НедоступныеНастройкиПараметровВыводаРасширеннаяПодсказка + 305 + true + true + + true + + Label + true + true + + Left + + + Page + + Vertical + true + + + true + true + + true + + + <key>ru</key> + <value>Страницы дополнительных настроек</value> + + + СтраницыПараметровВыводаРасширеннаяПодсказка + 280 + true + true + + true + + Label + true + true + + Left + + + Pages + + DontUse + +
    + true + true + + true + + + <key>ru</key> + <value>Дополнительные настройки</value> + + + СтраницаПараметровВыводаРасширеннаяПодсказка + 275 + true + true + + true + + Label + true + true + + Left + + + Page + + + StdPicture.DataCompositionOutputParameters + + Vertical + true + +
    + true + true + + true + + + <key>ru</key> + <value>Группа настроек</value> + + + СтраницыНастроекРасширеннаяПодсказка + 15 + true + true + + true + + Label + true + true + + Left + + + Pages + + TabsOnTop + DontUse + +
    + Bottom + + ФормаКоманднаяПанель + -1 + true + true + + true + + Right + true + + true + true + Vertical + true + false + true + true + true + + Отчет + 1 + + ReportObject.ОтчетПоВзаиморасчетам + + + true + + + true + +
    true
    +
    + + ЛокальныеВыбранныеПоля + + <key>ru</key> + <value>Локальные выбранные поля</value> + + 2 + + Boolean + + + true + + + true + + + + ЛокальныйОтбор + + <key>ru</key> + <value>Локальный отбор</value> + + 3 + + Boolean + + + true + + + true + + + + ЛокальныйПорядок + + <key>ru</key> + <value>Локальный порядок</value> + + 4 + + Boolean + + + true + + + true + + + + ЛокальноеУсловноеОформление + + <key>ru</key> + <value>Локальное условное оформление</value> + + 5 + + Boolean + + + true + + + true + + + + ЛокальныеПараметрыВывода + + <key>ru</key> + <value>Локальное условное оформление</value> + + 6 + + Boolean + + + true + + + true + + + + + + + + Variant + +
    diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Module.bsl" "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Module.bsl" new file mode 100644 index 000000000..edcbe2cd0 --- /dev/null +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\320\260\321\200\320\270\320\260\320\275\321\202\320\260/Module.bsl" @@ -0,0 +1,365 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +&НаКлиенте +Процедура ПоляГруппировкиНедоступны() + + Элементы.СтраницыПолейГруппировки.ТекущаяСтраница = Элементы.НедоступныеНастройкиПолейГруппировки; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбранныеПоляДоступны(ЭлементСтруктуры) + + Если Отчет.КомпоновщикНастроек.Настройки.НаличиеВыбораУЭлемента(ЭлементСтруктуры) Тогда + + ЛокальныеВыбранныеПоля = Истина; + Элементы.СтраницыПолейВыбора.ТекущаяСтраница = Элементы.НастройкиВыбранныхПолей; + + Иначе + + ЛокальныеВыбранныеПоля = Ложь; + Элементы.СтраницыПолейВыбора.ТекущаяСтраница = Элементы.ОтключенныеНастройкиВыбранныхПолей; + + КонецЕсли; + + Элементы.ЛокальныеВыбранныеПоля.ТолькоПросмотр = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыбранныеПоляНедоступны() + + ЛокальныеВыбранныеПоля = Ложь; + Элементы.ЛокальныеВыбранныеПоля.ТолькоПросмотр = Истина; + Элементы.СтраницыПолейВыбора.ТекущаяСтраница = Элементы.НедоступныеНастройкиВыбранныхПолей; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтборДоступен(ЭлементСтруктуры) + + Если Отчет.КомпоновщикНастроек.Настройки.НаличиеОтбораУЭлемента(ЭлементСтруктуры) Тогда + + ЛокальныйОтбор = Истина; + Элементы.СтраницыОтбора.ТекущаяСтраница = Элементы.НастройкиОтбора; + + Иначе + + ЛокальныйОтбор = Ложь; + Элементы.СтраницыОтбора.ТекущаяСтраница = Элементы.ОтключенныеНастройкиОтбора; + + КонецЕсли; + + Элементы.ЛокальныйОтбор.ТолькоПросмотр = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ОтборНедоступен() + + ЛокальныйОтбор = Ложь; + Элементы.ЛокальныйОтбор.ТолькоПросмотр = Истина; + Элементы.СтраницыОтбора.ТекущаяСтраница = Элементы.НедоступныеНастройкиОтбора; + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядокДоступен(ЭлементСтруктуры) + + Если Отчет.КомпоновщикНастроек.Настройки.НаличиеПорядкаУЭлемента(ЭлементСтруктуры) Тогда + + ЛокальныйПорядок = Истина; + Элементы.СтраницыПорядка.ТекущаяСтраница = Элементы.НастройкиПорядка; + + Иначе + + ЛокальныйПорядок = Ложь; + Элементы.СтраницыПорядка.ТекущаяСтраница = Элементы.ОтключенныеНастройкиПорядка; + + КонецЕсли; + + Элементы.ЛокальныйПорядок.ТолькоПросмотр = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядокНедоступен() + + ЛокальныйПорядок = Ложь; + Элементы.ЛокальныйПорядок.ТолькоПросмотр = Истина; + Элементы.СтраницыПорядка.ТекущаяСтраница = Элементы.НедоступныеНастройкиПорядка; + +КонецПроцедуры + +&НаКлиенте +Процедура УсловноеОформлениеДоступно(ЭлементСтруктуры) + + Если Отчет.КомпоновщикНастроек.Настройки.НаличиеУсловногоОформленияУЭлемента(ЭлементСтруктуры) Тогда + + ЛокальноеУсловноеОформление = Истина; + Элементы.СтраницыУсловногоОформления.ТекущаяСтраница = Элементы.НастройкиУсловногоОформления; + + Иначе + + ЛокальноеУсловноеОформление = Ложь; + Элементы.СтраницыУсловногоОформления.ТекущаяСтраница = Элементы.ОтключенныеНастройкиУсловногоОформления; + + КонецЕсли; + + Элементы.ЛокальноеУсловноеОформление.ТолькоПросмотр = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура УсловноеОформлениеНедоступно() + + ЛокальноеУсловноеОформление = Ложь; + Элементы.ЛокальноеУсловноеОформление.ТолькоПросмотр = Истина; + Элементы.СтраницыУсловногоОформления.ТекущаяСтраница = Элементы.НедоступныеНастройкиУсловногоОформления; + +КонецПроцедуры + +&НаКлиенте +Процедура ПараметрыВыводаДоступны(ЭлементСтруктуры) + + Если Отчет.КомпоновщикНастроек.Настройки.НаличиеПараметровВыводаУЭлемента(ЭлементСтруктуры) Тогда + + ЛокальныеПараметрыВывода = Истина; + Элементы.СтраницыПараметровВывода.ТекущаяСтраница = Элементы.НастройкиПараметровВывода; + + Иначе + + ЛокальныеПараметрыВывода = Ложь; + Элементы.СтраницыПараметровВывода.ТекущаяСтраница = Элементы.ОтключенныеНастройкиПараметровВывода; + + КонецЕсли; + + Элементы.ЛокальныеПараметрыВывода.ТолькоПросмотр = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ПараметрыВыводаНедоступны() + + ЛокальныеПараметрыВывода = Ложь; + Элементы.ЛокальныеПараметрыВывода.ТолькоПросмотр = Истина; + Элементы.СтраницыПараметровВывода.ТекущаяСтраница = Элементы.НедоступныеНастройкиПараметровВывода; + +КонецПроцедуры + +&НаКлиенте +Процедура КомпоновщикНастроекНастройкиПриАктивизацииПоля(Элемент) + + Перем ВыбраннаяСтраница; + + Если Элементы.КомпоновщикНастроекНастройки.ТекущийЭлемент.Имя = "КомпоновщикНастроекНастройкиНаличиеВыбора" Тогда + + ВыбраннаяСтраница = Элементы.СтраницаПолейВыбора; + + ИначеЕсли Элементы.КомпоновщикНастроекНастройки.ТекущийЭлемент.Имя = "КомпоновщикНастроекНастройкиНаличиеОтбора" Тогда + + ВыбраннаяСтраница = Элементы.СтраницаОтбора; + + ИначеЕсли Элементы.КомпоновщикНастроекНастройки.ТекущийЭлемент.Имя = "КомпоновщикНастроекНастройкиНаличиеПорядка" Тогда + + ВыбраннаяСтраница = Элементы.СтраницаПорядка; + + ИначеЕсли Элементы.КомпоновщикНастроекНастройки.ТекущийЭлемент.Имя = "КомпоновщикНастроекНастройкиНаличиеУсловногоОформления" Тогда + + ВыбраннаяСтраница = Элементы.СтраницаУсловногоОформления; + + ИначеЕсли Элементы.КомпоновщикНастроекНастройки.ТекущийЭлемент.Имя = "КомпоновщикНастроекНастройкиНаличиеПараметровВывода" Тогда + + ВыбраннаяСтраница = Элементы.СтраницаПараметровВывода; + + КонецЕсли; + + Если ВыбраннаяСтраница <> Неопределено Тогда + + Элементы.СтраницыНастроек.ТекущаяСтраница = ВыбраннаяСтраница; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура КомпоновщикНастроекНастройкиПриАктивизацииСтроки(Элемент) + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + ТипЭлемента = ТипЗнч(ЭлементСтруктуры); + + Если ТипЭлемента = Неопределено ИЛИ + ТипЭлемента = Тип("КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных") ИЛИ + ТипЭлемента = Тип("КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных") Тогда + + ПоляГруппировкиНедоступны(); + ВыбранныеПоляНедоступны(); + ОтборНедоступен(); + ПорядокНедоступен(); + УсловноеОформлениеНедоступно(); + ПараметрыВыводаНедоступны(); + + ИначеЕсли ТипЭлемента = Тип("НастройкиКомпоновкиДанных") ИЛИ + ТипЭлемента = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда + + ПоляГруппировкиНедоступны(); + + ЛокальныеВыбранныеПоля = Истина; + Элементы.ЛокальныеВыбранныеПоля.ТолькоПросмотр = Истина; + Элементы.СтраницыПолейВыбора.ТекущаяСтраница = Элементы.НастройкиВыбранныхПолей; + + ЛокальныйОтбор = Истина; + Элементы.ЛокальныйОтбор.ТолькоПросмотр = Истина; + Элементы.СтраницыОтбора.ТекущаяСтраница = Элементы.НастройкиОтбора; + + ЛокальныйПорядок = Истина; + Элементы.ЛокальныйПорядок.ТолькоПросмотр = Истина; + Элементы.СтраницыПорядка.ТекущаяСтраница = Элементы.НастройкиПорядка; + + ЛокальноеУсловноеОформление = Истина; + Элементы.ЛокальноеУсловноеОформление.ТолькоПросмотр = Истина; + Элементы.СтраницыУсловногоОформления.ТекущаяСтраница = Элементы.НастройкиУсловногоОформления; + + ЛокальныеПараметрыВывода = Истина; + Элементы.ЛокальныеПараметрыВывода.ТолькоПросмотр = Истина; + Элементы.СтраницыПараметровВывода.ТекущаяСтраница = Элементы.НастройкиПараметровВывода; + + ИначеЕсли ТипЭлемента = Тип("ГруппировкаКомпоновкиДанных") ИЛИ + ТипЭлемента = Тип("ГруппировкаТаблицыКомпоновкиДанных") ИЛИ + ТипЭлемента = Тип("ГруппировкаДиаграммыКомпоновкиДанных") Тогда + + Элементы.СтраницыПолейГруппировки.ТекущаяСтраница = Элементы.НастройкиПолейГруппировки; + + ВыбранныеПоляДоступны(ЭлементСтруктуры); + ОтборДоступен(ЭлементСтруктуры); + ПорядокДоступен(ЭлементСтруктуры); + УсловноеОформлениеДоступно(ЭлементСтруктуры); + ПараметрыВыводаДоступны(ЭлементСтруктуры); + + ИначеЕсли ТипЭлемента = Тип("ТаблицаКомпоновкиДанных") ИЛИ + ТипЭлемента = Тип("ДиаграммаКомпоновкиДанных") Тогда + + ПоляГруппировкиНедоступны(); + ВыбранныеПоляДоступны(ЭлементСтруктуры); + ОтборНедоступен(); + ПорядокНедоступен(); + УсловноеОформлениеДоступно(ЭлементСтруктуры); + ПараметрыВыводаДоступны(ЭлементСтруктуры); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиКОтчету(Элемент) + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + НастройкиЭлемента = Отчет.КомпоновщикНастроек.Настройки.НастройкиЭлемента(ЭлементСтруктуры); + Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока = Отчет.КомпоновщикНастроек.Настройки.ПолучитьИдентификаторПоОбъекту(НастройкиЭлемента); + +КонецПроцедуры + +&НаКлиенте +Процедура ЛокальныеВыбранныеПоляПриИзменении(Элемент) + + Если ЛокальныеВыбранныеПоля Тогда + + Элементы.СтраницыПолейВыбора.ТекущаяСтраница = Элементы.НастройкиВыбранныхПолей; + + Иначе + + Элементы.СтраницыПолейВыбора.ТекущаяСтраница = Элементы.ОтключенныеНастройкиВыбранныхПолей; + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + Отчет.КомпоновщикНастроек.Настройки.ОчиститьВыборЭлемента(ЭлементСтруктуры); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЛокальныйОтборПриИзменении(Элемент) + + Если ЛокальныйОтбор Тогда + + Элементы.СтраницыОтбора.ТекущаяСтраница = Элементы.НастройкиОтбора; + + Иначе + + Элементы.СтраницыОтбора.ТекущаяСтраница = Элементы.ОтключенныеНастройкиОтбора; + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + Отчет.КомпоновщикНастроек.Настройки.ОчиститьОтборЭлемента(ЭлементСтруктуры); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЛокальныйПорядокПриИзменении(Элемент) + + Если ЛокальныйПорядок Тогда + + Элементы.СтраницыПорядка.ТекущаяСтраница = Элементы.НастройкиПорядка; + + Иначе + + Элементы.СтраницыПорядка.ТекущаяСтраница = Элементы.ОтключенныеНастройкиПорядка; + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + Отчет.КомпоновщикНастроек.Настройки.ОчиститьПорядокЭлемента(ЭлементСтруктуры); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЛокальноеУсловноеОформлениеПриИзменении(Элемент) + + Если ЛокальноеУсловноеОформление Тогда + + Элементы.СтраницыУсловногоОформления.ТекущаяСтраница = Элементы.НастройкиУсловногоОформления; + + Иначе + + Элементы.СтраницыУсловногоОформления.ТекущаяСтраница = Элементы.ОтключенныеНастройкиУсловногоОформления; + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + Отчет.КомпоновщикНастроек.Настройки.ОчиститьУсловноеОформлениеЭлемента(ЭлементСтруктуры); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЛокальныеПараметрыВыводаПриИзменении(Элемент) + + Если ЛокальныеПараметрыВывода Тогда + + Элементы.СтраницыПараметровВывода.ТекущаяСтраница = Элементы.НастройкиПараметровВывода; + + Иначе + + Элементы.СтраницыПараметровВывода.ТекущаяСтраница = Элементы.ОтключенныеНастройкиПараметровВывода; + + ЭлементСтруктуры = Отчет.КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(Элементы.КомпоновщикНастроекНастройки.ТекущаяСтрока); + Отчет.КомпоновщикНастроек.Настройки.ОчиститьПараметрыВыводаЭлемента(ЭлементСтруктуры); + КонецЕсли; + +КонецПроцедуры diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Form.form" "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Form.form" new file mode 100644 index 000000000..9febb1403 --- /dev/null +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\235\320\260\321\201\321\202\321\200\320\276\320\265\320\272/Form.form" @@ -0,0 +1,82 @@ + + + + КомпоновщикНастроекПользовательскиеНастройки + 3 + true + true + + true + + + <key>ru</key> + <value>Пользовательские настройки</value> + + + КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + true + true + Auto + DontUse + + + Bottom + + ФормаКоманднаяПанель + -1 + true + true + + true + + Right + true + + true + true + Vertical + true + false + true + UseIfNecessary + true + true + + Отчет + 1 + + ReportObject.ОтчетПоВзаиморасчетам + + + true + + + true + +
    true
    +
    + + + + + + Settings + КомпоновщикНастроекПользовательскиеНастройки + +
    diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" new file mode 100644 index 000000000..4a2ab52b0 --- /dev/null +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/Forms/\320\244\320\276\321\200\320\274\320\260\320\236\321\202\321\207\320\265\321\202\320\260/Form.form" @@ -0,0 +1,206 @@ + + + + ОсновнаяКоманднаяПанель + 10 + true + true + + true + + + <key>ru</key> + <value>Основная командная панель</value> + + + ОсновнаяКоманднаяПанельРасширеннаяПодсказка + 9 + true + true + + true + + Label + true + true + + Left + + + CommandBar + + Left + Form + + + + КомпоновщикНастроекПользовательскиеНастройки + 8 + true + true + + true + + + <key>ru</key> + <value>Custom settings folder</value> + + false + + КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 4 + true + true + + true + + Label + true + true + + Left + + + UsualGroup + + Vertical + WeakSeparation + true + true + Auto + DontUse + + + + Результат + 5 + true + true + + true + + + Результат + + true + None + + РезультатРасширеннаяПодсказка + 7 + true + true + + true + + Label + true + true + + Left + + + + РезультатКонтекстноеМеню + 6 + true + true + + true + + true + + SpreadsheetDocumentField + Enter + true + Left + true + + 100 + true + 10 + true + true + true + Special + ScrollAuto + ScrollAuto + Always + true + true + true + + + None + + ФормаКоманднаяПанель + -1 + true + true + + true + + Left + + true + true + Vertical + true + false + true + true + true + + Отчет + 1 + + ReportObject.ОтчетПоВзаиморасчетам + + + true + + + true + +
    true
    +
    + + Результат + + <key>ru</key> + <value>Результат</value> + + 2 + + SpreadsheetDocument + + + true + + + true + + + + ДанныеРасшифровки + 3 + + String + + + + true + + + true + + + + + + + + Результат + ДанныеРасшифровки + КомпоновщикНастроекПользовательскиеНастройки + +
    diff --git "a/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274.mdo" "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274.mdo" index 53c86d12d..9e6f6f05f 100644 --- "a/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274.mdo" +++ "b/fixtures/demo-configuration/src/Reports/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274/\320\236\321\202\321\207\320\265\321\202\320\237\320\276\320\222\320\267\320\260\320\270\320\274\320\276\321\200\320\260\321\201\321\207\320\265\321\202\320\260\320\274.mdo" @@ -11,7 +11,10 @@
    true + Report.ОтчетПоВзаиморасчетам.Form.ФормаОтчета Report.ОтчетПоВзаиморасчетам.Template.ОсновнаяСхемаКомпоновкиДанных + Report.ОтчетПоВзаиморасчетам.Form.ФормаНастроек + Report.ОтчетПоВзаиморасчетам.Form.ФормаВарианта true @@ -26,6 +29,33 @@ ru Отчет по взаиморасчетам с контрагентами + + ФормаОтчета + + ru + Форма отчета + + PersonalComputer + MobileDevice + + + ФормаНастроек + + ru + Форма настроек + + PersonalComputer + MobileDevice + + + ФормаВарианта + + ru + Форма варианта + + PersonalComputer + MobileDevice + ОсновнаяСхемаКомпоновкиДанных diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..8881bb991 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,284 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ТипыТестов") + .ДобавитьТест("ТипыТестов_ТипыФорм") + .ДобавитьТест("ТипыТестов_Исключения") + ; + +КонецПроцедуры + +Процедура ПередКаждымТестом() Экспорт + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("__ПараметрыЗапуска", ЮТКонтекстСлужебный.ПараметрыЗапуска()); + +КонецПроцедуры + +Процедура ПослеКаждогоТеста() Экспорт + + СохраненныеПараметрыЗапуска = ЮТКонтекстСлужебный.ЗначениеКонтекста("__ПараметрыЗапуска"); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстПараметрыЗапуска", СохраненныеПараметрыЗапуска); + +КонецПроцедуры + +Процедура ТипыТестов() Экспорт + + ПараметрыЗапуска = ПараметрыЗапуска(); + УстановитьПараметрыДымовыхТестов(ПараметрыЗапуска); + + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + + ЮТест.ОжидаетЧто(ДеревоТестов) + .Заполнено() + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Справочники")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Документы")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("ПланыВидовХарактеристик")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("ПланыСчетов")) +// .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("ПланыВидовРасчета")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("ПланыОбмена")) +// .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("БизнесПроцессы")) +// .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Задачи")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("РегистрыСведений")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("РегистрыНакопления")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("РегистрыБухгалтерии")) +// .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("РегистрыРасчета")) +// .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Перечисления")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Отчеты")) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Обработки")) +// .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("ЖурналыДокументов")) + .ИмеетДлину(10) + ; + + ТестыСправочников = ДеревоТестов[0]; + + ЮТест.ОжидаетЧто(ТестыСправочников.Объекты, "Справочники.") + .Заполнено() + .Свойство("[0].Имя").Равно("Банки") + .Свойство("[0].ТипыТестов") + .Содержит("Новый") + .Содержит("Существующий") + .Объект() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ВидыЦен")) + .Свойство("[2].Имя").Равно("Встречи") + .Свойство("[2].ТипыТестов") + .Содержит("Список") + .Содержит("Выбор", "Форма списка указана как форма выбора") + .ИмеетДлину(4) + .Свойство("[3].Имя").Равно("ВходящиеПисьма") + .Свойство("[3].ТипыТестов") + .Содержит("Список") + .НеСодержит("Выбор", "Нет формы выбора") + .ИмеетДлину(3) + .Свойство("[5].Имя").Равно("Контрагенты") + .Свойство("[5].ТипыТестов") + .Содержит("НоваяГруппа") + .Содержит("СуществующаяГруппа") + .Содержит("СкопированнаяГруппа") + .НеСодержит("ВыборГруппы") + .ИмеетДлину(8) + ; +#Если ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда + ЮТест.ОжидаетЧто(ТестыСправочников.Объекты[0].ТипыТестов, "Не включены обычные формы") + .Содержит("Список") + .Содержит("Выбор") + .ИмеетДлину(4); +#Иначе + ЮТест.ОжидаетЧто(ТестыСправочников.Объекты[0].ТипыТестов, "Не исключены обычные формы в тонком клиенте") + .ИмеетДлину(2); +#КонецЕсли + ТестыДокументов = ДеревоТестов[1]; + ЮТест.ОжидаетЧто(ТестыДокументов.Объекты, "Документы.") + .Заполнено() + .Свойство("[0].Имя").Равно("Заказ") + .Свойство("[0].ТипыТестов") + .Содержит("Существующий") + .Содержит("Скопированный") + .Содержит("Список") + .НеСодержит("Новый") + .ИмеетДлину(3) + .Объект() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОперацияПоУчетуТоваров")) + .Объект() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ПоступлениеДенег")) + .Объект() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("РасходТовара")) + .Свойство("[1].Имя").Равно("Оплата") + .Свойство("[1].ТипыТестов") + .Содержит("Список") + .ИмеетДлину(1) + .Свойство("[2].Имя").Равно("ПриходТовара") + .Свойство("[2].ТипыТестов") + .Содержит("Список") + .ИмеетДлину(1) + ; +КонецПроцедуры + +Процедура ТипыТестов_ТипыФорм() Экспорт + + // Глобально + БазоваяНастройка = БазоваяНастройка(); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("УправляемыеФормы", Ложь); + УстановитьПараметрыДымовыхТестов(БазоваяНастройка); + + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + + ЮТест.ОжидаетЧто(ДеревоТестов, "Глобальная настройка") + .НеЗаполнено(); + + // Для коллекции метаданных + БазоваяНастройка = БазоваяНастройка(); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("Документы", Новый Структура("УправляемыеФормы", Ложь)); + УстановитьПараметрыДымовыхТестов(БазоваяНастройка); + + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + + ЮТест.ОжидаетЧто(ДеревоТестов, "Настройка для коллекции метаданных") + .Заполнено() + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Справочники")) + .НеСодержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Документы")) + ; + + // Для объекта метаданных + БазоваяНастройка = БазоваяНастройка(); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("Справочники", Новый Структура("Банки", Новый Структура("УправляемыеФормы", Ложь))); + УстановитьПараметрыДымовыхТестов(БазоваяНастройка); + + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + + ЮТест.ОжидаетЧто(ДеревоТестов, "Настройка для объекта метаданных") + .Заполнено() + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Справочники")) + .Свойство("[0].Объекты") + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("Валюты")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("Банки")) + ; + + // Для переопределение настройки + БазоваяНастройка = БазоваяНастройка(); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("УправляемыеФормы", Ложь); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("Справочники", Новый Структура("Банки", Новый Структура("УправляемыеФормы", Истина))); + УстановитьПараметрыДымовыхТестов(БазоваяНастройка); + + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + + ЮТест.ОжидаетЧто(ДеревоТестов, "Переопределение настройки") + .Заполнено() + .ИмеетДлину(1) + .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Справочники")) + .Свойство("[0].Объекты") + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("Банки")) + .ИмеетДлину(1) + ; + +КонецПроцедуры + +Процедура ТипыТестов_Исключения() Экспорт + + // Глобально + БазоваяНастройка = БазоваяНастройка(); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("Исключения", "*Товар*"); + БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("Справочники", Новый Структура("Исключения", ЮТКоллекции.ЗначениеВМассиве("*Письма", "*Писем"))); + УстановитьПараметрыДымовыхТестов(БазоваяНастройка); + + ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); + + ЮТест.ОжидаетЧто(ДеревоТестов, "Исключение по шаблону ""*Товар*""") + .Заполнено() + .Свойство("[0].Объекты", "Справочники") + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("Товары")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ИсходящиеПисьма")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ВходящиеПисьма")) + .Свойство("[1].ИмяКоллекции").Равно("Документы") + .Свойство("[1].Объекты", "Документы") + .Заполнено() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОперацияПоУчетуТоваров")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ПриходТовара")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("РасходТовара")) + .Свойство("[5].ИмяКоллекции").Равно("РегистрыСведений") + .Свойство("[5].Объекты", "Регистры сведений") + .Заполнено() + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("СостояниеВходящихПисем")) + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ЦеныТоваров")) + .Свойство("[8].ИмяКоллекции").Равно("Отчеты") + .Свойство("[8].Объекты", "Отчеты") + .Заполнено() + .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОстаткиТоваровНаСкладах")) + .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОтчетПоВзаиморасчетам")) + ; +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция БазоваяНастройка() + + ОткрытиеФорм = Новый Структура("Использовать", Истина); + ДымовыеТесты = Новый Структура("Использовать, ОткрытиеФорм", Истина, ОткрытиеФорм); + Возврат Новый Структура("ДымовыеТесты", ДымовыеТесты); + +КонецФункции + +Функция ПараметрыЗапуска() + + Возврат ЮТОбщий.ЗначениеИзJSON("{ + | ""ДымовыеТесты"": { + | ""Использовать"": true, + | ""ОткрытиеФорм"": { + | ""Использовать"": true, + | ""Перечисления"": false, + | ""Исключения"": ""Расход*"", + | ""Документы"": { + | ""Скопированный"": true, + | ""Заказ"": { + | ""Новый"": false + | }, + | ""ОперацияПоУчетуТоваров"": false, + | ""Оплата"": { + | ""ФормаДокумента"": false + | }, + | ""ПоступлениеДенег"": { + | ""УправляемыеФормы"": false + | }, + | ""ПриходТовара"": { + | ""ФормаОбъекта"": false + | }, + | }, + | ""Справочники"": { + | ""Контрагенты"": { + | ""Скопированный"": true + | } + | }, + | ""Скопированный"": false + | } + | } + |}"); + +КонецФункции + +Процедура УстановитьПараметрыДымовыхТестов(ПараметрыЗапуска) + + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстПараметрыЗапуска", ПараметрыЗапуска); + +КонецПроцедуры +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..595bc2689 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,5 @@ + + + ОМ_ДТОткрытиеФормСлужебныйВызовСервера + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index efbd28911..82266e740 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -31,6 +31,7 @@ CommonModule.Обр_ЮТRecordSet_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО CommonModule.ОМ_ДТОткрытиеФорм + CommonModule.ОМ_ДТОткрытиеФормСлужебныйВызовСервера CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение CommonModule.ОМ_МокитоСлужебный diff --git a/tools/docker/docker-compose.yml b/tools/docker/docker-compose.yml new file mode 100644 index 000000000..93e1772f4 --- /dev/null +++ b/tools/docker/docker-compose.yml @@ -0,0 +1,24 @@ +services: + onec-server: + image: onec-server:${echo } + container_name: onec-server + restart: always + depends_on: + - postgres + network_mode: host + # networks: + # - private + # ports: + # - "1541" + # - "1540" + # - "1560-1591" + postgres: + image: rsyuzyov/docker-postgresql-pro-1c + container_name: postgresql-pro-1c + restart: always + network_mode: host +# networks: +# - private +# networks: +# private: +# driver: bridge \ No newline at end of file diff --git a/tools/docker/onec-server/Dockerfile b/tools/docker/onec-server/Dockerfile new file mode 100644 index 000000000..efa6c58ea --- /dev/null +++ b/tools/docker/onec-server/Dockerfile @@ -0,0 +1,90 @@ +FROM alpine:latest as downloader + +ARG ONEC_USERNAME +ARG ONEC_PASSWORD +ARG ONEC_VERSION +ENV installer_type=server +ENV downloads=downloads/platform83/${ONEC_VERSION} + +COPY ./scripts/download_og.sh /download_og.sh + +WORKDIR /tmp +COPY ./distr ./${downloads} +RUN rm ./${downloads}/.gitkeep \ + && rm -rf ${downloads}/thin.client*.tar.gz \ + && rm -rf ${downloads}/client*.tar.gz \ + && rm -rf ${downloads}/1c_edt*.tar.gz \ + && if [ -z "$(ls -A ${downloads})" ]; then \ + apk --no-cache add bash curl grep tar \ + && set -x \ + && sync; /download_og.sh; \ + fi \ + && rm -rf ${downloads}/*thin*.tar.gz \ + && ls ${downloads} \ + && for file in ${downloads}/*.tar.gz; do tar -xzf "$file"; done \ + && rm -rf ${downloads}/*.* + +FROM debian:bullseye-slim as base + +ARG ONEC_VERSION +ENV installer_type=server +ARG gosu_ver=1.11 +ARG nls_enabled=false +ENV nls=$nls_enabled + +COPY ./scripts/install.sh /install.sh +COPY --from=downloader /tmp/*.* /tmp/ +WORKDIR /tmp + +SHELL ["/bin/bash", "-c"] +RUN ls . \ + && chmod +x /install.sh \ + && sync; /install.sh + +# create symlink to current 1c:enterprise directory +COPY ./scripts/create-symlink-to-current-1cv8.sh /create-symlink-to-current-1cv8.sh +RUN chmod +x /create-symlink-to-current-1cv8.sh \ + && /create-symlink-to-current-1cv8.sh \ + && rm /create-symlink-to-current-1cv8.sh + +ADD https://github.com/tianon/gosu/releases/download/$gosu_ver/gosu-amd64 /bin/gosu + +RUN chmod +x /bin/gosu + +FROM debian:bullseye-slim +LABEL maintainer="Anton Kvashenkin (@jugatsu)" + +ARG onec_uid="999" +ARG onec_gid="999" + +COPY --from=base /opt /opt +COPY --from=base /bin/gosu /bin/gosu + +RUN set -xe \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + locales \ + imagemagick \ + fontconfig \ + && rm -rf \ + /var/lib/apt/lists/* \ + /var/cache/debconf \ + && localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8 +ENV LANG ru_RU.UTF-8 + +RUN groupadd -r grp1cv8 --gid=$onec_gid \ + && useradd -r -g grp1cv8 --uid=$onec_uid --home-dir=/home/usr1cv8 --shell=/bin/bash usr1cv8 \ + && mkdir -p /var/log/1C /home/usr1cv8/.1cv8/1C/1cv8/conf /opt/1cv8/current/conf \ + && chown -R usr1cv8:grp1cv8 /var/log/1C /home/usr1cv8 + +VOLUME /home/usr1cv8/.1cv8 /var/log/1C + +COPY ./server/logcfg.xml /home/usr1cv8/.1cv8/1C/1cv8/conf +COPY ./server/logcfg.xml /opt/1cv8/current/conf + +COPY ./server/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh +RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat +ENTRYPOINT ["docker-entrypoint.sh"] + +EXPOSE 1540 1541 1545 1560 +CMD ["ragent"] From b0243eee2e4a22f2a10f87691235f7f35d5e0169 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 3 Sep 2024 23:38:37 +0300 Subject: [PATCH 71/86] =?UTF-8?q?doc:=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=B4=D1=8B=D0=BC=D0=BE=D0=B2=D1=8B=D0=BC=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../smoke/images/smoke-tests-list.png | Bin 0 -> 129393 bytes documentation/docs/features/smoke/index.md | 12 +- .../docs/features/smoke/opening-forms.md | 261 ++++++++++++++---- 3 files changed, 218 insertions(+), 55 deletions(-) create mode 100644 documentation/docs/features/smoke/images/smoke-tests-list.png diff --git a/documentation/docs/features/smoke/images/smoke-tests-list.png b/documentation/docs/features/smoke/images/smoke-tests-list.png new file mode 100644 index 0000000000000000000000000000000000000000..25819845e6514b3b65d2a96746a8bc7c7e0cee21 GIT binary patch literal 129393 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

    }dEb6(upr8_>m>xy+>Fso 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 V?0&dM;NJ{3I$HYo$~Eks{SO>9!0P}2 literal 0 HcmV?d00001 diff --git a/documentation/docs/features/smoke/index.md b/documentation/docs/features/smoke/index.md index bcad641dc..423fcd806 100644 --- a/documentation/docs/features/smoke/index.md +++ b/documentation/docs/features/smoke/index.md @@ -22,13 +22,6 @@ ## Файл настроек -| Имя параметра | Тип | Значение по умолчанию | Описание | -|----------------|-------------------|-----------------------|-------------------------------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование дымовых тестов | -| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](opening-forms.md#настройки) | - -## Примеры настроек - Настройка для запуска/загрузки дымовых тестов открытия форм ```json title="Дымовые тесты.json" @@ -44,3 +37,8 @@ } } ``` + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|----------------|-------------------|-----------------------|-------------------------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование дымовых тестов | +| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](opening-forms.md#настройки) | diff --git a/documentation/docs/features/smoke/opening-forms.md b/documentation/docs/features/smoke/opening-forms.md index 9bedd7ebf..37e1ff039 100644 --- a/documentation/docs/features/smoke/opening-forms.md +++ b/documentation/docs/features/smoke/opening-forms.md @@ -2,76 +2,241 @@ ## Возможности -* Нового элемента -* Существующего элемента -* Скопированного элемента +Дымовые тесты открытия форм, позволяют проверить, что все основные формы решения открываются, не выбрасывая исключений. + +![Список дымовых тестов](images/smoke-tests-list.png) + +:::caution +Формы открываются в том же сеансе. Менеджер и клиент тестирования не используется. +::: + +### Виды тестов + +Реализованно несколько видов тестов открытия форм + +* `Новый` - Открывает форму **нового** объекта. +* `НоваяГруппа` - Открывает форму **новой группы**. +* `Существующий` - Открывает форму **существующего** объекта. +* `СуществующаяГруппа` - Открывает форму **существующей группы**. +* `Скопированный` - Открывает форму **скопированного** объект. +* `СкопированнаяГрупп` - Открывает форму **скопированной группы**. +* `Список` - Открывает форму **списка**. +* `Выбор` - Открывает форму **выбора**. +* `ВыборГруппы` - Открывает форму **выбора группы**. +* `Основная` - Открывает форму **основная**, для отчетов и обработок. +* `Настройки` - Открывает форму **настройки отчета**. +* `Варианты` - Открывает форму **выбора варианта**. + +### Объекты метаданных + +Поддерживается большинство объектов метаданных + +| Имя | Новый | НоваяГруппа | Существующий | СуществующаяГруппа | Скопированный | СкопированнаяГруппа | Список | Выбор | ВыборГруппы | Основная | Настройки | Варианты | +|-------------------------|-------|-------------|--------------|--------------------|---------------|---------------------|--------|-------|-------------|----------|-----------|----------| +| Справочники | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | +| Документы | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| ПланыВидовХарактеристик | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | +| ПланыСчетов | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| ПланыВидовРасчета | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| ПланыОбмена | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| БизнесПроцессы | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| Задачи | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| РегистрыСведений | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | | +| РегистрыНакопления | | | ✓ | | | | ✓ | ✓ | | | | | +| РегистрыБухгалтерии | | | ✓ | | | | ✓ | ✓ | | | | | +| РегистрыРасчета | | | ✓ | | | | ✓ | ✓ | | | | | +| Перечисления | | | | | | | ✓ | ✓ | | | | | +| Отчеты | | | | | | | | | | ✓ | ✓ | ✓ | +| Обработки | | | | | | | | | | ✓ | | | + +### Учет прав + +При формировании списка тестов учитываются права доступа текущего пользователя, что позволит выполнить тестирование для разных ролевых моделей + +| Вид теста | Необходимое право | Используемая форма | +|---------------------|-------------------------|--------------------| +| Новый | ИнтерактивноеДобавление | ФормаОбъекта | +| НоваяГруппа | ИнтерактивноеДобавление | ФормаГруппы | +| Существующий | Просмотр | ФормаОбъекта | +| СуществующаяГруппа | Просмотр | ФормаГруппы | +| Скопированный | Редактирование | ФормаОбъекта | +| СкопированнаяГруппа | Редактирование | ФормаГруппы | +| Список | Просмотр | ФормаСписка | +| Выбор | Просмотр | ФормаВыбора | +| ВыборГруппы | Просмотр | ФормаВыбораГруппы | +| Основная | Просмотр | Форма | +| Настройки | Просмотр | ФормаНастроек | +| Варианты | Просмотр | ФормаВарианта | + +### Учет настроек конфигурации + +Учитываются настройки конфигурации для определения открываемой формы + +* Режим запуска предприятия - для тонкого клиента доступны только управляемые формы +* Свойство конфигурации `ИспользоватьОбычныеФормыВУправляемомПриложении` +* Свойство конфигурации `ИспользоватьУправляемыеФормыВОбычномПриложении` +* Для обычного приложения приоритет имеет обычная форма +* Для управляемого приложения приоритет имеет управляемая форма + +### Фильтрация + +Имеются различные настройки для фильтрации/исключения тестов/форм + +* Фильтр по коллекциям метаданных (`Справочники`, `Документы`, `Регистры` и тд) +* Фильтр по типу формы - `ОбычныеФормы`, `УправляемыеФормы` +* Фильтр по объектам метаданных с возможностью использовать шаблоны со звездочкой (например, `Удалить_*`) +* Фильтр по видам тестов + +### Перехват исключений + +При запуске на 1С:Предприятие версии 8.3.17.1091 или больше будет выполняться автоматический перехват и обработка исключения используя [механизм отображения ошибок](https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-otobrazheniya-oshibok/). ## Настройки -### Настройка тестов открытия форм +Настройки имеют древовидную структуру: -| Имя параметра | Тип | Значение по умолчанию | Описание | -|--------------------------|-------------------|-----------------------|-----------------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование тестов открытия форм | -| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов | -| `<Имя типа теста>` | `Object\|boolean` | `true` | [Настройка типа теста](#настройка-типа-теста) | -| `<Имя вида метаданного>` | `Object\|boolean` | `true` | Настройка тестирования для вида объектов метаданных | +```plain +└─ ДымовыеТесты // Уровень 0 + └─ ОткрытиеФорм // Уровень 1 + └─ [Имя вида метаданного] Справочники, Документы и тд // Уровень 2 + └─ [Имя объекта метаданного] Номенклатура, Заказ, Остатки // Уровень 3 -#### Настройка типа теста +``` -Доступные следующие типы тестов открытия форм: +На каждом уровне настроек тестов открытия форм (начиная с уровня 1) можно устанавливать параметры, +которые распространятся на нижние уровни, при этом на нижем уровне можно их переопределить. +Кроме настройки `Использовать`, она сразу прерывает анализ ветки, а также `Исключения` - они дополняются. -* `Новый` - открытие формы - открытие формы **нового** элемента элемента -* `Существующий` - открытие формы **существующего** элемента -* `Скопированный` - открытие формы **скопированного** элемента -* `Список` - открытие формы **списка** -* `Выбор` - открытие формы **выбора** +Например, необходимо отключить тесты обычных форм кроме справочника номенклатура, тогда настройка будет выглядеть так: -Для каждого из типов можно указать свои настройки +```json +{ + "ДымовыеТесты": { + "Использовать": true, + "ОткрытиеФорм": { + "Использовать": true, + "ОбычныеФормы": false, // Отключение тестов обычных форм + "Справочники": { + "Номенклатура": { + "ОбычныеФормы": true // Включение тестов обычных форм для справочника Номенклатура + } + } + } + } +} +``` -| Имя параметра | Тип | Значение по умолчанию | Описание | -|----------------|-----------------|-----------------------|-------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование типа тестов открытия форм | -| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов для типа теста | +Еще одна особенностью настроек - для отключения/включения какой-то настройки необязательно создавать объект с реквизитом `Использовать`, можно сразу присвоить булевое значение. -#### Настройка вида метаданных +Например: -Для каждого вида метаданных можно указать свои настройки. В качестве ключа используется имя вида метаданных (Справочник, Справочники, Catalog, Catalogs). -Есть возможность выключить или задать исключаемые объекты. +```json +{ + "ДымовыеТесты": { + "Использовать": true, + "ОткрытиеФорм": { + "Использовать": true, + "Справочники": false, // Отключение проверки справочников + "Документы": { + "Заказ": false // Отключение проверки документа Заказ + } + } + } +} +``` -| Имя параметра | Тип | Значение по умолчанию | Описание | -|----------------|-----------------|-----------------------|------------------------------------------------------| -| `Использовать` | `boolean` | `false` | Использование вида метаданных в тестах открытия форм | -| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов вида метаданных | +### Настройка тестов открытия форм + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|--------------------------|-------------------|-----------------------|----------------------------------------------------------------------------------------------------| +| `Использовать` | `boolean` | `false` | Использование тестов открытия форм | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов, возможно использование шаблонов со звездочкой | +| `ОбычныеФормы` | `boolean` | `true` | Использование обычных форм | +| `УправляемыеФормы` | `boolean` | `true` | Использование управляемых форм | +| `<Имя вида метаданного>` | `Object\|boolean` | `true` | [Настройка тестирования](#настройка-тестов-коллекции-метаданных) для коллекции объектов метаданных | +| `<Имя вида теста>` | `boolean` | `true` | Позволяет глобально включать и выключать [виды тестов](#виды-тестов). | + +### Настройка тестов коллекции метаданных + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|-----------------------------|-------------------|-----------------------|---------------------------------------------------------------------------------------------------| +| `Использовать` | `boolean` | `true` | Использование тестов для указанной коллекции метаданных | +| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов, возможно использование шаблонов со звездочкой | +| `ОбычныеФормы` | `boolean` | `true` | Использование обычных форм | +| `УправляемыеФормы` | `boolean` | `true` | Использование управляемых форм | +| `<Имя объекта метаданного>` | `Object\|boolean` | `true` | [Настройка тестирования](#настройка-тестов-объекта-метаданных) для конкретного объекта метаданных | +| `<Имя вида теста>` | `boolean` | `true` | Позволяет включать и выключать [виды тестов](#виды-тестов) для коллекции метаданных | + +### Настройка тестов объекта метаданных + +| Имя параметра | Тип | Значение по умолчанию | Описание | +|--------------------------|-----------|-----------------------|---------------------------------------------------------------------------------| +| `Использовать` | `boolean` | `true` | Использование тестов для объекта метаданных | +| `ОбычныеФормы` | `boolean` | `true` | Использование обычных форм | +| `УправляемыеФормы` | `boolean` | `true` | Использование управляемых форм | +| `<Имя конкретной формы>` | `boolean` | `true` | Выключение использования конкретной формы | +| `<Имя вида теста>` | `boolean` | `true` | Позволяет включать и выключать [виды тестов](#виды-тестов) для текущего объекта | ## Примеры -Настройка исключений +Базовая настройка -```json title="Исключения.json" +```json title="БазоваяНастройка.json" { "filter": { - "extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов + "extensions": ["smoke"] // Фильтр по расширению с дымовыми тестами }, - // Настройка дымовых тестов "ДымовыеТесты": { - "Использовать": true, + "Использовать": true, // Включение дымовых тестов "ОткрытиеФорм": { - "Использовать": true, - "БизнесПроцессы": false, // Отключение проверки бизнес процессов - "Исключения": "Удалить_*", // Отключение проверки для объектов, название которых начинается с "Удалить_" - "Документы": { - "ПКО": false, // Отключение проверки ПКО - "РКО": false, // Отключение проверки РКО - "Заказ": { - "Новый": false // Отключение проверки открытия нового заказа - } - }, - "Справочники": { - "ОбычныеФормы": false - }, - "Скопированный": false, // Отключение текстов открытия скопированного элемента, + "Исключения": "ЮТ*", // Исключение объектов YAxUnit + "Использовать": true // Включение дымовых тестов открытия форм } } } ``` + +Варианты настроек исключений + +```json title="Исключения.json" +{ + "filter": { + "extensions": ["smoke"] // Фильтр по расширению с дымовыми тестами + }, + "ДымовыеТесты": { + "Использовать": true, // Включение дымовых тестов + "ОбычныеФормы": false, + "ОткрытиеФорм": { + "Использовать": true, // Включение дымовых тестов открытия форм + "Исключения": [ + "ЮТ*", // Исключение объектов YAxUnit + "Удалить_*" // Исключение объектов, название которых начинается с "Удалить_" + ], + "Скопированный": false, // Отключение тестов открытия скопированного элемента + "Перечисления": false, // Отключение тестов открытия форма перечислений + "Документы": { // Настройка для документов + "Скопированный": true, // Включение тестов открытия скопированного документа + "Заказ": { // Настройка для документа Заказ + "Новый": false // Отключение тестов открытия нового элемента + }, + "ОперацияПоУчетуТоваров": false, // Отключение тестов для документа ОперацияПоУчетуТоваров + "Оплата": { + "ФормаДокумента": false // Отключение тестов для конкретной формы ФормаДокумента + }, + "ПоступлениеДенег": { + "УправляемыеФормы": false, // Отключение тестов для управляемых форм объекта + "ОбычныеФормы": true // Включение тестов для управляемых форм объекта + }, + "ПриходТовара": { + "ФормаОбъекта": false // Отключение тестов для вида формы ФормаОбъекта + }, + }, + "Справочники": { + "Контрагенты": { + "Скопированный": true // Включение тестов открытия скопированного справочника контрагенты + } + } + } + } +} +``` From c1e8cf2306229c6b1e8e5e998131b6c6f6ca2066 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 3 Sep 2024 23:40:36 +0300 Subject: [PATCH 72/86] =?UTF-8?q?ui:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=B4=D0=BB=D1=8F=208.3.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exts/yaxunit/src/CommonPictures/convert-to-png.sh | 0 .../Picture.svg" | 4 ++-- .../Picture.svg" | 5 ++--- .../Picture.svg" | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) mode change 100644 => 100755 exts/yaxunit/src/CommonPictures/convert-to-png.sh diff --git a/exts/yaxunit/src/CommonPictures/convert-to-png.sh b/exts/yaxunit/src/CommonPictures/convert-to-png.sh old mode 100644 new mode 100755 diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" index f6ef41ec4..51b4094b2 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Picture.svg" @@ -1,5 +1,5 @@ - - + + diff --git "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" index 9cbd45cee..6234f1f39 100644 --- "a/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" +++ "b/exts/yaxunit/src/CommonPictures/\320\256\320\242\320\237\320\265\321\200\320\265\320\267\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\243\320\277\320\260\320\262\321\210\320\270\320\265/Picture.svg" @@ -1,11 +1,10 @@ - - + stroke-linecap="round" fill="none"/> - + From 42f0f8f192633e7befbd1cc2131f9e65093fb924 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 17:47:40 +0300 Subject: [PATCH 73/86] =?UTF-8?q?tests:=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B8=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 52 ------------ ...0\265\320\244\320\276\321\200\320\274.mdo" | 6 -- .../Module.bsl" | 43 ---------- ...1\200\320\262\320\265\321\200\320\260.mdo" | 7 -- .../Module.bsl" | 84 ------------------- ...0\265\321\200\320\262\320\265\321\200.mdo" | 7 -- .../Module.bsl" | 2 +- tests/src/Configuration/Configuration.mdo | 3 - 8 files changed, 1 insertion(+), 203 deletions(-) delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" delete mode 100644 "tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" deleted file mode 100644 index 2ec9c740f..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/Module.bsl" +++ /dev/null @@ -1,52 +0,0 @@ -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ЮТТесты - .ДобавитьТест("Инициализация") - ; - -КонецПроцедуры - -Процедура Инициализация() Экспорт - - ОткрытиеФорм = Новый Структура("Использовать", Истина); - - ПараметрыЗапуска = Новый Структура("ДымовыеТесты", Новый Структура("ОткрытиеФорм", ОткрытиеФорм)); - ПараметрыЗапуска.ДымовыеТесты.Вставить("Использовать", Истина); - - ОткрытиеФорм.Вставить("Справочник", Истина); - ОткрытиеФорм.Вставить("Исключения", "Номенклатура"); - ЮТест.ОжидаетЧто(ЗагруженнаяНастройка(ПараметрыЗапуска)) - .Свойство("Использовать").ЭтоИстина() - .Свойство("Справочник.Использовать").ЭтоИстина() - .Свойство("Исключения[0]").Равно("Номенклатура"); - - ОткрытиеФорм.Вставить("Исключения", ЮТКоллекции.ЗначениеВМассиве("Номенклатура", "Скидки")); - НастройкиСправочников = Новый Структура; - ОткрытиеФорм.Удалить("Справочник"); - ОткрытиеФорм.Вставить("Справочники", НастройкиСправочников); - НастройкиСправочников.Вставить("Исключения", "Удалить*"); - НастройкиСправочников.Вставить("Новый", Ложь); - ЮТест.ОжидаетЧто(ЗагруженнаяНастройка(ПараметрыЗапуска)) - .Свойство("Исключения[0]").Равно("Номенклатура") - .Свойство("Исключения[1]").Равно("Скидки") - .Свойство("Справочник.Исключения[0]").Равно("Удалить*") - .Свойство("Справочник.Использовать").ЭтоИстина() - .Свойство("Справочник.Новый.Использовать").ЭтоЛожь() - ; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция ЗагруженнаяНастройка(ПараметрыЗапуска) - - ДТОткрытиеФорм.Инициализация(ПараметрыЗапуска); - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("ДымовыеТесты_ОткрытиеФорм") - -КонецФункции - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" deleted file mode 100644 index f05c80786..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274.mdo" +++ /dev/null @@ -1,6 +0,0 @@ - - - ОМ_ДТОткрытиеФорм - true - true - diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" deleted file mode 100644 index 152734979..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ /dev/null @@ -1,43 +0,0 @@ -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ЮТТесты - .ДобавитьТест("Формы") - ; - -КонецПроцедуры - -Процедура Формы() Экспорт - - Отборы = Новый Структура("Использовать, Исключения", Истина, Новый Массив); - Коллекции = ЮТКоллекции.ЗначениеВМассиве("Справочники", "Документы"); - ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы(Коллекции, Отборы); - - ЮТест.ОжидаетЧто(ВладельцыФорм) - .ИмеетТип("Массив") - .Заполнено() - .Содержит(ЮТест.Предикат().Реквизит("Тип").Равно("Справочник")) - .Содержит(ЮТест.Предикат().Реквизит("Тип").Равно("Документ")) - .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("ВходящиеПисьма")) - .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОперацияПоУчетуТоваров")); - - Отборы.Исключения.Добавить("*Письма"); - Отборы.Вставить("Документы", Новый Структура("Использовать", Ложь)); - ВладельцыФорм = ЮТДымовыеТестыСлужебныйВызовСервера.Формы(Коллекции, Отборы); - - ЮТест.ОжидаетЧто(ВладельцыФорм) - .ИмеетТип("Массив") - .Заполнено() - .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ВходящиеПисьма")) - .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ИсходящиеПисьма")) - .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("ОперацияПоУчетуТоваров")) - .НеСодержит(ЮТест.Предикат().Реквизит("Тип").Равно("Документ")); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" deleted file mode 100644 index dd5b0aa14..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ /dev/null @@ -1,7 +0,0 @@ - - - ОМ_ЮТДымовыеТестыСлужебныйВызовСервера - true - true - true - diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" deleted file mode 100644 index 44daefe11..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ /dev/null @@ -1,84 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// Copyright 2021-2024 BIA-Technologies Limited Liability Company -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//©///////////////////////////////////////////////////////////////////////////©// - -#Область СлужебныйПрограммныйИнтерфейс - -Процедура ИсполняемыеСценарии() Экспорт - - ЮТТесты - .ДобавитьТест("ЗагружаемаяНастройкаДымовогоТеста") - ; - -КонецПроцедуры - -Процедура ЗагружаемаяНастройкаДымовогоТеста() Экспорт - - ПараметрыЗапуска = Новый Структура; - Ключ = "ОткрытиеФорм"; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.Вставить("ДымовыеТесты"); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.ДымовыеТесты = Ложь; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.ДымовыеТесты = Истина; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоИстина(); - - ПараметрыЗапуска.ДымовыеТесты = Новый Структура(Ключ); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.ДымовыеТесты.Вставить("Использовать", Истина); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.ДымовыеТесты[Ключ] = Ложь; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.ДымовыеТесты[Ключ] = Истина; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоИстина(); - - ПараметрыЗапуска.ДымовыеТесты[Ключ] = Новый Структура; - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - - ПараметрыЗапуска.ДымовыеТесты[Ключ] = Новый Структура("Использовать", Ложь); - ЮТест.ОжидаетЧто(ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, Ключ)) - .ИмеетТип("Структура") - .Свойство("Использовать").ЭтоЛожь(); - -КонецПроцедуры - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" deleted file mode 100644 index 3d8998133..000000000 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\236\320\234_\320\256\320\242\320\224\321\213\320\274\320\276\320\262\321\213\320\265\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" +++ /dev/null @@ -1,7 +0,0 @@ - - - ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер - true - true - true - diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 992c0f920..941105ade 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -90,7 +90,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(38); + .ИмеетДлину(36); КонецПроцедуры diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 82266e740..687fd8036 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -30,14 +30,11 @@ CommonModule.Обр_ЮТHTTPСервисЗапрос CommonModule.Обр_ЮТRecordSet_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО - CommonModule.ОМ_ДТОткрытиеФорм CommonModule.ОМ_ДТОткрытиеФормСлужебныйВызовСервера CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение CommonModule.ОМ_МокитоСлужебный CommonModule.ОМ_ОшибкаЗагрузкиСценариев - CommonModule.ОМ_ЮТДымовыеТестыСлужебныйВызовСервера - CommonModule.ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер CommonModule.ОМ_ЮТест CommonModule.ОМ_ЮТестПереопределяемый CommonModule.ОМ_ЮТЗависимостиСлужебный From 176483334126221e9430dd14a486354f59b3228b Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 21:09:46 +0300 Subject: [PATCH 74/86] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=B0=20`=D0=A4?= =?UTF-8?q?=D0=B8=D0=BA=D1=86=D0=B8=D1=8F=D0=A0=D0=B5=D0=BA=D0=B2=D0=B8?= =?UTF-8?q?=D0=B7=D0=B8=D1=82=D0=BE=D0=B2`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 33 +++++++++++++++++-- .../Module.bsl" | 31 +++++++++++++++++ .../Module.bsl" | 6 ++++ .../Module.bsl" | 12 +++++++ .../Module.bsl" | 24 ++++++++++++++ .../ObjectModule.bsl" | 23 +++++++++++++ .../Module.bsl" | 16 +++++++++ 7 files changed, 143 insertions(+), 2 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 207c5b35e..25ae9d009 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -63,14 +63,36 @@ Реквизиты = Реквизиты(Контекст); ТекущаяЗапись = ТекущаяЗапись(Контекст); + ОписаниеРеквизитов = Новый Структура; Для Каждого Элемент Из Реквизиты Цикл Реквизит = Элемент.Значение; Если Реквизит.Обязательный И НЕ ТекущаяЗапись.Свойство(Реквизит.Имя) Тогда - Значение = ЮТТестовыеДанныеСлужебный.Фикция(Реквизит.Тип); - ТекущаяЗапись.Вставить(Реквизит.Имя, Значение); + ОписаниеРеквизитов.Вставить(Реквизит.Имя, Реквизит.Тип); КонецЕсли; КонецЦикла; + ФикцияРеквизитовЗаписи(ТекущаяЗапись, ОписаниеРеквизитов); + +КонецПроцедуры + +Процедура ФикцияРеквизитов(Контекст, ИменаРеквизитов) Экспорт + + ТекущаяЗапись = ТекущаяЗапись(Контекст); + ОписаниеРеквизитов = Новый Структура; + + Если ТипЗнч(ИменаРеквизитов) = Тип("Строка") Тогда + КоллекцияИменРеквизитов = ЮТСтроки.РазделитьСтроку(ИменаРеквизитов, ","); + Иначе + КоллекцияИменРеквизитов = ИменаРеквизитов; + КонецЕсли; + + Для Каждого ИмяРеквизита Из КоллекцияИменРеквизитов Цикл + Реквизит = ОписаниеРеквизита(Контекст, ИмяРеквизита); + ОписаниеРеквизитов.Вставить(ИмяРеквизита, Реквизит.Тип); + КонецЦикла; + + ФикцияРеквизитовЗаписи(ТекущаяЗапись, ОписаниеРеквизитов); + КонецПроцедуры Процедура ТабличнаяЧасть(Контекст, ИмяТабличнойЧасти) Экспорт @@ -309,4 +331,11 @@ КонецФункции +Процедура ФикцияРеквизитовЗаписи(ТекущаяЗапись, ОписаниеРеквизитов) + + ЗначенияРеквизитов = ЮТТестовыеДанныеСлужебный.ФикцияЗначений(ОписаниеРеквизитов); + ЮТКоллекции.ДополнитьСтруктуру(ТекущаяЗапись, ЗначенияРеквизитов); + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index d5fbac304..49b642e89 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -72,6 +72,37 @@ КонецФункции +Функция ФикцияЗначений(Реквизиты, РеквизитыЗаполнения = Неопределено) Экспорт + +#Если ТонкийКлиент Тогда + НеобходимВызовСервера = Ложь; + + Для Каждого Реквизит Из Реквизиты Цикл + СодержитСсылочныйТип = ?(ТипЗнч(Реквизит.Значение) = Тип("Тип"), + ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(Реквизит.Значение), + ЮТТипыДанныхСлужебный.СодержитСсылочныйТип(Реквизит.Значение)); + Если СодержитСсылочныйТип Тогда + НеобходимВызовСервера = Истина; + Прервать + КонецЕсли; + КонецЦикла; + + Если НеобходимВызовСервера Тогда + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначений(Реквизиты, РеквизитыЗаполнения); + КонецЕсли; +#КонецЕсли + + Значения = Новый Структура; + + Для Каждого Реквизит Из Реквизиты Цикл + Значение = Фикция(Реквизит.Значение, РеквизитыЗаполнения); + Значения.Вставить(Реквизит.Ключ, Значение); + КонецЦикла; + + Возврат Значения; + +КонецФункции + #Если Не ВебКлиент Тогда // см. ЮТТестовыеДанные.НовоеИмяВременногоФайла diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 467ef4e9b..d74e6d831 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -267,6 +267,12 @@ КонецПроцедуры +Функция ФикцияЗначений(Знач Реквизиты, Знач РеквизитыЗаполнения) Экспорт + + Возврат ЮТТестовыеДанныеСлужебный.ФикцияЗначений(Реквизиты, РеквизитыЗаполнения); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index b0831aa6d..0cacf5e12 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -66,6 +66,18 @@ КонецФункции +Функция СодержитСсылочныйТип(ОписаниеТипов) Экспорт + + Для Каждого Тип Из ОписаниеТипов.Типы() Цикл + Если ОписаниеТиповЛюбаяСсылка().СодержитТип(Тип) Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + Функция ЭтоМенеджерЗаписи(ТипЗначения) Экспорт ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index a1196a988..83d84e198 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -90,6 +90,30 @@ КонецФункции +// Устанавливает фиктивные значения реквизитов создаваемого объекта. +// +// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значения реквизитов строки табличной части. +// +// На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для ссылочных типов создается новый объект +// * Для перечислений (в том числе системных) выбирается случайно значение перечисления +// +// Параметры: +// ИменаРеквизитов - Строка - Имена реквизитов объекта или табличной части разделенные запятыми +// - Массив из Строка - Имена реквизитов объекта или табличной части +// +// Возвращаемое значение: +// ОбщийМодуль - Конструктор +&НаКлиенте +Функция ФикцияРеквизитов(ИменаРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.ФикцияРеквизитов(Контекст, ИменаРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + // Заполняет обязательные поля объекта фиктивными значениями // // Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части. diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index 33669f14d..cb7d349be 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -86,6 +86,29 @@ КонецФункции +// Устанавливает фиктивные значения реквизитов создаваемого объекта. +// +// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливается значения реквизитов строки табличной части. +// +// На основании менеджера и имени реквизита вычисляется его тип, а по типу генерируется фиктивное значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для ссылочных типов создается новый объект +// * Для перечислений (в том числе системных) выбирается случайно значение перечисления +// +// Параметры: +// ИменаРеквизитов - Строка - Имена реквизитов объекта или табличной части разделенные запятыми +// - Массив из Строка - Имена реквизитов объекта или табличной части +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +Функция ФикцияРеквизитов(ИменаРеквизитов) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.ФикцияРеквизитов(Контекст, ИменаРеквизитов); + Возврат ЭтотОбъект; + +КонецФункции + // Заполняет обязательные поля объекта фиктивными значениями // // Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части. diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index 2d81a4304..1831dd41a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -31,6 +31,7 @@ .ДобавитьТест("Фикция_Типизированная") .ДобавитьТест("Фикция_ОбщийРеквизит") .ДобавитьТест("ФикцияОбязательныхПолей") + .ДобавитьТест("ФикцияРеквизитов") .ДобавитьТест("СоздатьГруппу") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("УстановитьСсылкуНового") @@ -284,6 +285,21 @@ .Свойство("Период").Заполнено() .Свойство("Валюта").Заполнено() .Свойство("Курс").Заполнено(); + +КонецПроцедуры + +Процедура ФикцияРеквизитов() Экспорт + + Данные = ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют") + .ФикцияРеквизитов("Период, Валюта, Курс") + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Данные) + .ИмеетДлину(3) + .Свойство("Период").Заполнено() + .Свойство("Валюта").Заполнено() + .Свойство("Курс").Заполнено(); + КонецПроцедуры Процедура СоздатьГруппу() Экспорт From bc2b9d4a8ceaf5d4350c237ad70c49da0c4d8ffc Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 21:46:10 +0300 Subject: [PATCH 75/86] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=20xdto=20`=D0=A4=D0=B8=D0=BA=D1=86=D0=B8=D1=8F=D0=A0?= =?UTF-8?q?=D0=B5=D0=BA=D0=B2=D0=B8=D0=B7=D0=B8=D1=82=D0=BE=D0=B2`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 6 ++-- .../ObjectModule.bsl" | 30 +++++++++++++++++++ .../Module.bsl" | 16 ++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 255558290..371f511a3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -178,7 +178,7 @@ Если НЕ ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля) Тогда ЮТЛогирование.Отладка(" Пропущен, не подходит под отбор"); - ИначеЕсли НЕ ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда + ИначеЕсли НЕ ЭтоТестовыйМодуль(ОписаниеМодуля) Тогда ЮТЛогирование.Отладка(" Пропущен, это не тестовый модуль"); Иначе ЮТЛогирование.Отладка(" Добавлен"); @@ -196,8 +196,8 @@ // TODO Фильтрация по путям ОписаниеМодуля = Неопределено; -#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда - Если МетаданныеМодуля.КлиентОбычноеПриложение ИЛИ МетаданныеМодуля.КлиентУправляемоеПриложение Тогда +#Если ТолстыйКлиентОбычноеПриложение Тогда + Если МетаданныеМодуля.КлиентОбычноеПриложение Тогда ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index 0870bbabb..da67fc58a 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -85,6 +85,36 @@ КонецФункции +// Устанавливает фиктивные значение реквизитов объекта. +// +// На основании типа реквизита генерируется фиктивное значение. +// +// * Для примитивных значение генерируется случайное значение +// * Для объектных типов создается новый объект +// * Для коллекций - генерируется случайно количество случайных элементов (на основании типа) +// +// Параметры: +// ИменаРеквизитов - Строка - Имена реквизитов объекта или табличной части разделенные запятыми +// - Массив из Строка - Имена реквизитов объекта или табличной части +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор +Функция ФикцияРеквизитов(ИменаРеквизитов) Экспорт + + Если ТипЗнч(ИменаРеквизитов) = Тип("Строка") Тогда + КоллекцияИменРеквизитов = ЮТСтроки.РазделитьСтроку(ИменаРеквизитов, ","); + Иначе + КоллекцияИменРеквизитов = ИменаРеквизитов; + КонецЕсли; + + Для Каждого ИмяРеквизита Из КоллекцияИменРеквизитов Цикл + Фикция(ИмяРеквизита); + КонецЦикла; + + Возврат ЭтотОбъект; + +КонецФункции + // Заполняет обязательные реквизиты объекта фиктивными значениями // // На основании типа объекта определяются обязательные поля. diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" index 996b5b20a..e68ad92ca 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" @@ -28,6 +28,7 @@ .ДобавитьТест("ФикцияНезаполненных") .ДобавитьТест("ДобавитьНовый") .ДобавитьТест("ПерейтиКВладельцу") + .ДобавитьТест("ФикцияРеквизитов") ; КонецПроцедуры @@ -164,6 +165,21 @@ КонецПроцедуры +Процедура ФикцияРеквизитов() Экспорт + + Объект = НовыйКонструктор() + .ФикцияРеквизитов("Number, Сумма, Покупатель") + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(Объект) + .ИмеетТип(Тип("ОбъектXDTO")) + .Свойство("Number").Заполнено() + .Свойство("Сумма").Заполнено() + .Свойство("Покупатель").Заполнено() + ; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции From fdba9d39c6ada3de0f85bce4fbd2fcab25e21989 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 21:48:19 +0300 Subject: [PATCH 76/86] =?UTF-8?q?doc:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D1=8B=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=86=D0=B8=D1=8F=D0=A0=D0=B5=D0=BA=D0=B2?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/test-data/data-generation.md | 20 ++++++++----------- .../docs/getting-started/auxiliary-modules.md | 12 ++++------- .../docs/getting-started/fluent-api.md | 8 ++------ 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/documentation/docs/features/test-data/data-generation.md b/documentation/docs/features/test-data/data-generation.md index d787aa02d..030cc3da7 100644 --- a/documentation/docs/features/test-data/data-generation.md +++ b/documentation/docs/features/test-data/data-generation.md @@ -130,16 +130,15 @@ sidebar_position: 1 * В более компактной форме заполнять объект * Имеет методы записи и проведения * При возникновении ошибки оборачивает их в более понятные человеку описания - * Киллер фича - `Фикция` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений + * Киллер фича - `Фикция`, `ФикцияРеквизитов` и `ФикцияОбязательныхПолей`. Устанавливает случайно сгенерированные значения реквизитов. Таким образом делается акцент на важных для теста реквизитах и экономит "строки" на генерацию ненужных значений * Умеет создавать данные с клиента и [удалять их по окончании теста](test-data-deletion.md) ```bsl Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара") - .Фикция("Поставщик") - .Фикция("Склад") + .ФикцияРеквизитов("Поставщик, Склад") .ФикцияОбязательныхПолей() - .ТабличнаяЧасть("Товары"); - + .ТабличнаяЧасть("Товары") + ОбщиеДанные = Новый Структура("ВидЦены, Поставщик", Закупочная, Конструктор.ДанныеОбъекта().Поставщик); Для Инд = 1 По 3 Цикл @@ -181,8 +180,7 @@ sidebar_position: 1 .УстановитьРеквизиты(Реквизиты) .Фикция("Покупатель") .ДобавитьНовый("Товары") - .Фикция("Цена") - .Фикция("Количество") + .ФикцияРеквизитов("Цена, Количество") .ДанныеОбъекта(); ``` @@ -197,6 +195,7 @@ sidebar_position: 1 * Для коллекций - генерируется случайно количество случайных элементов (на основании типа) * `ФикцияОбязательныхПолей()` - на основании типа создаваемого объекта определяет список обязательных полей и для каждого из них вызывается метод `Фикция`. * `ФикцияНезаполненных()` - для всех незаполненных полей создаваемого объекта вызывает метод `Фикция`. +* `ФикцияРеквизитов()` - для перечисленных полей создаваемого объекта вызывает метод `Фикция`. * `ДобавитьНовый(ИмяРеквизита)` - Добавляет новый объект в указанную реквизит-коллекцию. Все последующие вызовы установки реквизитов будут относится к этому добавленному объекту. * `ПерейтиКВладельцу()` - используется после метода `ДобавитьНовый` для переключения контекста заполнения на родительский объект. Например вам необходимо добавить две строки в табличную часть. ```bsl @@ -206,8 +205,7 @@ sidebar_position: 1 .Фикция("Количество") .ПерейтиКВладельцу() .ДобавитьНовый("Товары") - .Фикция("Цена") - .Фикция("Количество") + .ФикцияРеквизитов("Цена, Количество") .ДанныеОбъекта(); ``` Здесь перед добавлением второй строки нужно переключится (`ПерейтиКВладельцу`) на основной объект и после этого можно добавить строку. @@ -225,9 +223,7 @@ sidebar_position: 1 #КонецЕсли Конструктор - .Фикция("Поставщик") - .Фикция("Склад") - .Фикция("Валюта") + .ФикцияРеквизитов("Поставщик, Склад, Валюта") .Установить("Организация", ЮТест.Данные().КонструкторОбъекта("Справочники.Организации").Установить("КакойТоТамУчет", Истина)) .ТабличнаяЧасть("Товары"); diff --git a/documentation/docs/getting-started/auxiliary-modules.md b/documentation/docs/getting-started/auxiliary-modules.md index a49921b70..e0296020a 100644 --- a/documentation/docs/getting-started/auxiliary-modules.md +++ b/documentation/docs/getting-started/auxiliary-modules.md @@ -27,8 +27,7 @@ .ТабличнаяЧасть("Товары") .ДобавитьСтроку() .Установить("Номенклатура", Товар) - .Фикция("Количество") - .Фикция("Цена") + .ФикцияРеквизитов("Количество, Цена") .Записать(); КонецФункции @@ -59,8 +58,7 @@ .ТабличнаяЧасть("Товары") .ДобавитьСтроку() .Установить("Номенклатура", Товар) - .Фикция("Количество") - .Фикция("Цена") + .ФикцияРеквизитов("Количество, Цена") .Записать(); КонецФункции @@ -74,8 +72,7 @@ .ТабличнаяЧасть("Товары") .ДобавитьСтроку() .Установить("Номенклатура", Товар) - .Фикция("Количество") - .Фикция("Цена") + .ФикцияРеквизитов("Количество, Цена") .Записать(); КонецФункции @@ -89,8 +86,7 @@ .ТабличнаяЧасть("Товары") .ДобавитьСтроку() .Установить("Номенклатура", Товар) - .Фикция("Количество") - .Фикция("Цена") + .ФикцияРеквизитов("Количество, Цена") .Записать(); КонецФункции diff --git a/documentation/docs/getting-started/fluent-api.md b/documentation/docs/getting-started/fluent-api.md index 3bed79394..124fc550d 100644 --- a/documentation/docs/getting-started/fluent-api.md +++ b/documentation/docs/getting-started/fluent-api.md @@ -11,8 +11,7 @@ .Установить("Поставщик", Поставщик) // Устанавливает значение реквизита документа. .Фикция("Дата") // Генерирует случайную дату. .Фикция("Номер") // Генерирует случайный номер. - .Фикция("Склад") // Создает "пустышку" склада. - .Фикция("Валюта") // Создает "пустышку" валюты. + .ФикцияРеквизитов("Склад, Валюта") // Создает "пустышки" склада и валюты. .ТабличнаяЧасть("Товары") // Переключает контекст на работу с табличной частью "Товары". .ДобавитьСтроку() // Добавляет строку табличной части. .Фикция("Товар", Новый Структура("Поставщик", Поставщик)) // Создает "пустышку" товары от конкретного поставщика. @@ -52,10 +51,7 @@ ```bsl title="Или вариант используя конструктора, но без цепочки вызовов" Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара); Конструктор.Установить("Поставщик", Поставщик); -Конструктор.Фикция("Дата"); -Конструктор.Фикция("Номер"); -Конструктор.Фикция("Склад"); -Конструктор.Фикция("Валюта"); +Конструктор.ФикцияРеквизитов("Дата, Номер, Склад, Валюта"); Конструктор.ТабличнаяЧасть("Товары"); Конструктор.ДобавитьСтроку(); Конструктор.Фикция("Товар", Новый Структура("Поставщик", Поставщик)); From cdb30fbd008a06a37bca6ccde0c0e28813bbdedd Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 22:14:37 +0300 Subject: [PATCH 77/86] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 49b642e89..e710b2d76 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -83,7 +83,7 @@ ЮТТипыДанныхСлужебный.СодержитСсылочныйТип(Реквизит.Значение)); Если СодержитСсылочныйТип Тогда НеобходимВызовСервера = Истина; - Прервать + Прервать; КонецЕсли; КонецЦикла; From ba2e252648e51968a44399b65cb7e4bde95b7531 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 23:32:42 +0300 Subject: [PATCH 78/86] =?UTF-8?q?doc:=20#346=20=D0=BE=D0=B1=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D0=BD=D1=88?= =?UTF-8?q?=D0=BE=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docs/features/images/reports.png | Bin 310440 -> 326156 bytes documentation/src/pages/images/reports.png | Bin 310440 -> 326156 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/documentation/docs/features/images/reports.png b/documentation/docs/features/images/reports.png index 6579ece015d20f0bdf9d3256f60d46ed2e6bba27..ff3aa8fe18082b80376c6bd0da7b0da6147cde86 100644 GIT binary patch literal 326156 zcmeFYWl&ws5-tqEodkCa?(XjH?#{;DU4uh#hv4q+65KU7!Civ;-O2kNtMC3fRp0%0 zpxCwctnQxfXL@>dPcOn1t}ASav--*IvUF z=O5d5m7G^qOwGl_2z7XVesMV9e|v57+lft!rAt|c;Ig%DbCcd%K5^Sk^zr)QRyY1u?cLeR%cnZC+pcl*eNQDH4UYAiSzN!| zMX&kLi8Naqu9N!C?b|Py!)kWlw^t_%6WObRI39lGrz)nS?o7z;=jXI6#9jZqAU=YQ z9xo-Vq@3w)jHivVz{jBi?=QZVd9RG9=dnj!Zq3iO>Ft=yUqXEB zjt|f`sbexCwx5%)nmwIVY<5E4T;JIEU%nMJ={v9Nx*)}`ZN~K@lC0TpT%e&#k6#Up zUSOs~9(68DD8)wJKph8l{~VNxKAoqCy|tt$ez2nbsoT^&Mr-TH-3=Bt*fa7$|55+l z<^4F|zAQyZfkx8jVVAv(TQdZyK);(KDk}IH!O{ct?eTeuf7FUNXfLGIA*f&ep7T4+ zPdA6cl*565kj}|S~`?*S6U{p93+t}Wc-?h( zvL~BwZ%B3MU7C^f%3L*Xqu3XVPfihp9F(J2SdpA@mr{$vm?4#!kLZpuqnVD71T$!) zb;I9wPjjQxWVP-`;-f;+TechE)GljK@noQ!L8?jcQ3xQlnHL0673 z^|cJCa(|&OJ6fB2(9-gQMtk|Qqv|JxzU90P8IJwb08x3p<(j%MqokG}yZTU&QZ@}u zPyxzoOSxQY9IQ#_V}=mTcX-=bN7f&3=|tF`w!e{h*_wGGc8Oz+<3$Z`PUbmyeD?ehP zZg$wGWV|k1fId57t@ISv15D{G@q$|vD>~{uW*%Wve{oVO#zh~oXpNrM>GR;knu#2` zlkmwgg(*s1C|K>Qb)LlP%1Rm}6LU?dt&}9 zo6P-yhs2AF+Xpzyi1Maw11M4NHaw@-EeO(F|75eMZXL=l%t`wI*v(v0_O3CqS=)E; zh(}>cR3l{%kx-;atO{(=Mo<&Yi61m>d?>k-$&DqTPge{M>bWtqxaZr zSu7lj;igc&7v2&~3y(M)#pt5LLrgz>Jlf>hV#vKTNgbZ{CKWx|?bXsoN#c00wnv}+ zG(tJiI%ZGNwi=L_NcQb*-~IjrVo81f0q=R`I~g1;PUh~Zm9nv^`Bp7$-y#`A#(HW9 z3%kp}At9@V-nmW*$&)u&tPO$l6yFyyC2>hbl_iQVA`z`m5nh${y08vmke>z zq^pWOaFQfTpW_k7{5L86EiBDdMr{f?N(yyQ4vprb#VlJ$cICx3^u?>7i$L<3zjwVbX^21z;GHpccHxfl+>X!<=P9O}M4Q2((eOV6!G$Qifl!(b zjtmQr8PMo9OrypmDPZ4h6uJ3mH4CXQqqE}j&V0%2WhMz-pY_yb37;S~fp`_n(JauL zP-QU=_MuM^Ev?f@#CMS~0CTs8E-qw+vwD2{)~e2tMy*^GvYLr!?Y8xc!U+UVQWV5h zyqj4e$*dYm&iIHyVye}svj^-21A&eD^*D(GBsa8GLy=Z6_27s0}uDW=zFSZ>h>EEw|Iv3GXAo3|}CZ|eP%FcT-L+~}(OglC%SXqGF z#1AB9#tlHoWB~&;b2sNCMzvEB;cC+}+$t!_he3~WBQJ@ci+-41xm;xMu&+wYoZ7-^ zrCTWHxI|%jZ801e3VsRgDZ2XEBGc|`eE&h>8}ZqiLfN%DGM^NFB9s`E#eQE$zgA)M zq^tC>j)3*_!hukMA`{VcE_FXH^@p!E^p5s%=#OM;?rFqYrHGW73*7Gl_~teHpDBVx z^3f`8+la@+P-r3uh<=#c^gOMtHTL%PRNy^Lei9M%!=M-pw|PKCE}3U297Q{lFTe`n zku~c0q}D(bl7T?F0YY$J0O+;*?HVi01cUS5i2;jsBol>!$Lxll`b0fSKOC2;eMD3GN0N#=%F9T zf^z7G>QG$fe%wkW*bpiEpC64jq?^LkHig>56ERn%0=jEOX^Kg<{G&TaMhc^{qB#p$ zqSaPc{a?ObTyBk`4Eb9Du+Xu}p)|m=Y!kzaF@8?Xy9UTklk|Q}g1sQ9%KpXn{jEs6><7Zvbo^60fcCMqRuRsp;nj>v z$Prt|$~Ap&25i?2nKBKWZ;V`@v6@NGqJkAr7UQWq!6@gXpph>zW%AG14|(vxznw5d z7N7}8BNbdbXMYLFrf%(YM+Qyy7{#gvyP*}1tdM*qe1L(_uf12UXC`@?{vMI_%ibBq z(*$0sN|=rkh0wmdEQwmFrv~KGO2@;07UTn^ygdd4dr9<}VP~%_M^cI>G;eu(wiZ|9 zWQnyLe{Qm~M&1mxy_4t%X%_(^wDln2n0j##3Qi>r32b(Y%vwbQhirHg3=?uK*Pk|v z3s2-U0Y_=OUk!Ag0#WprnK1J>E3lJPEb+upATuR}e|iKFU-3ax#v;qKsRX(FH1y|| z_Ft^?54e+9_O{mzj^V-7;Oj3@mQt`AFDVfF0f-ZjX{j4UunaK3F$_Zy0e#@t!r(id zoc^lEi&skr2m%WdV(`u(v>Pd+{6t{@&e|Z~t)L{5w+l95@YHkAA3j}qD^qZFnh9N+ zQ%kQvAS!4`Z0!ayK-NXaqhS~n}*B8Wriq8Rs{iL5i65}@zDtHIvUj@;aqgr%; zeQvlA!tqjw01+Y%)E6-_&Vy0*B7382GyOp{nuAlw58CA4Hj0&7ROsMJbPg%B6{%Sd z;7G8DrvARJU>KWf6ihfYS0Ktjw*x|$6QdO{AdTXlO`{knw=%6?tofn~LOC7Wz+GsL z`YN*85-jyCM9_r=k{2RSSiDZ}3m(monPK!`ZaLK*SaF63W2#cGdGH4Pk;q~uWSY{c zXusCWP!heDYTw9~lnQHM&_tiA&m=sDpfn zSfdzMLc%mMri=FgxCUHkgbIfQqb^$P`n-$D0M#dFLR^D z!X8pnuV`)sZI_~$d{Q7@v7Hs5F2a&kuu z_m<%$za^RhCB^j-o~F=C+>Y+h^X6Q!i>XDvAdGe@8uawxseIxSW}qYT^Y!&wb`!?e z7u=s51$mV9>fo*-Q$$V>v&P#7b(#3ZmjSz1tZ2}_77?HnJ-LoM#}2sU6G9vL?+;On zaIf+B{l(W$mz;WdV9!EJ!3oxc`8hF(KJYixbU1ioNz*pp_j6O>R*Wjdo>jEI3fmW8 zvAP1@ghIE_|AMStPQKY7wTc^%}(^Ux^sS~ZA+X6l%!Wj2^ zD;UDv3HgD;>~~G)WNxq^28=>FEWQc@zU)6mQQeA>X2awC^rQ&361$9RcGnbAjF-y6 z2M>><#)nYiV)Y%RQu+ErMj?a*#%`=P@A6}m{1Ft|5nHP;tyq7z^!jH;2s*f{dt1l+ z3&TOnK*jmX7T@*#Tqoq_KI<{1<)JA!AMesxC2$cYD0%oi6gmP1QR2; zdwk*+)v!OcKs7n57j+Dg6ByrC)2s~Z4M3U)K`>YljVym z5j@2yK`Ijh3a&4qgCmJzL)^4sf$C%(AA=9gjVplxwp!pN04tA?6PqO~$`JC>xkeH$ z5N3!9&;XBIx`7*?jQzs$AZm}*+}>RDQ8fb+1aTV+bc01R4lzGS&z)8Dp@F3cxp*-X z*BI1&i?{4U#GqI21I4#a(=QaOl!s67*Prd1iah*XL!?W-Y!oV}ihrbQ!%V9arrY`W zEwl=q0iXb1u;+5U#wwN|l)M_n6_d|^$5jsr?cGO;{C!88K%1KPo*D1#@sK293zQj# z?6{0&-eaAhb}i@Jxgtz!@s%LQS3gSHCr;}cEaN-KtGRfK=?%)^9;0xb!mqKL44mtH zA-?T?CA4c1dg?YG4vr zGh*8efIImnt7-a$R9Jsv%sL@Zoa3Y5OOyIe1ck>D!N_`$J26XU@NYD;q+3)J!t8o?vC9N%26}{)sY&EV5_XKa)$h?IR9|uWu1F8{^73#Up4w@a|h$-f? zSf{I&WPg6gd0Z?KrYbY4T49;^z}Ra#lJ$#CZ{?P>WWYT~4O$6qMK$dvyPwTf0gT^BSso7fZ>{wiO+j`Ko^YB{kT)WNxv3a* zbwteeUb1(}+bOfn;*G0wz79^@&`&T95Y5BKF_NKR3&BF^d8P?NsxjRwi`5(4y}kqPNyoV|8N9N=mg*55L{sL~Zf zqd>%>{XKjU%A75nB^h(cBvg+>0e}@o%}XYZFW9o0?2#4cR&fHKt!3hv7Mr=D(Ex&i zBre!2Y=L9~9FEqPPKan^D<`?U1+FzxmDH~W%fap?u;7eKj)w*am!yKf{QETtjm${S zXOb24jG`G71;Q2cUc3uOK9<0ABW_orya1{qhl}fSaw`|^8r9?W9+pBZRK5;i$W7~L z?vQ;SyjKTv=Ef7%M{KruE}~2{2My?Wf^B$G|3;2+2D--nw$DIQ3W-#j?phDJQb2nZ zyWc0|PbZu|2IlH`2rMz}^u?8DT{(CZzR}vy=yt)_*r#?0&VA#b({cChu!EE;W=Ad7 z@$YoF5<99^>qHy>_~{NDtRC5TYUbOKOhRU8SrX-#2%=t$u^?$E9PX?J2VU*KYUi-O z(VR(OrvLo#PE)!R+++VINq!$vb-J!0j?ZV@B8vsHNhb5&B~uc#Mm+(B<7#>a@q;aB zNX(ZP3XTp!1F@?qvS;Zqd1t#646-YtOj7B3iy;EcfeOP6c@m>a#AD9n-==4@6*avX z@LAXW9R`R$f@f{Bf8JLBVP$+hWFJo4e(c1i9emY7s2o&f8mIp@Hy;qB;BUjjQhbt! zlX$|!D?BaGsk;sKX#5%{@Ja+q*E7oGSU6)zb1tI)Wn_PN7GctfyNpDwT;i#>hCT4yZJh7pd4ILSOz zH+ngP&dUs}b&h@Y3ia>@F4^Qjd>_~qmbPO}`vn$nM@OE+fCW;+;Tb!8|GGMf&jD^t zjr}ok{>9TIVFaJS33p&uDvw7Vk)kaywiS^LK^-v|zbk)(oB`vQWxuBuqIQs&-QOMO z?5&{4m^DCRM@+$&6zFbz9qx3})`TYxWVbm(C7NHT=eeaM?rLR4YIg6?Jw}XiaM!lQ z2`RAYYu@4kqo`{r{POGI*6QPg+YRzZVza3{TG965ted-+BhWDC$a_rZVAdI7c<4~> z4T=2*nL}P0ee_Sz3t%^3Dp;!mN62|aP!=2DmfX-eLXn(zNBt*fL@6Qf@SOeJ>AZax z3|ao{fC6$T{^@0GWwr^rPhwMo)k>_+Sl-1I<%*k^dR{+R)j&{dN%rt#f~6$hzTAzExkjY_`J|^Y8iOMLRU!;MiLS?8rr3Bq%Af9Enxy-pU2+- z_T?L%B<^zOij?;niL_5CN%UF=TUB$Yp7&P_c%d~zv)pg0!G)kl(4L>uc9B%Wkp$fY zkjt=mCuY`*W1)#`*NKgex9Ts6u?@1o?fftZQ_reT&dp(PyBp)75r>Cb*lKg@o&;l6 zUv9bhQ?NX{kZu642m?HVBoUk@^TT4Q-J_6jqGk^$m7rpYez6S|_?W?1mo^_CW7N@KlCLwK)q=bcBRgTY=s~=rTVm z^5Dgup2(~A55|gbX~4xrpjdO=Hc`ypz<#r^4dw`(GK!1Ns7;KStJM`CT`)hNF^ueC z_g)@+0T~C7T1xHkzo^G8qz7i5G%|m@M8JEnNFN%Vkd7(tpa8uWPllcAepk3ziA_>x zbjLr_XKji~PwLO2B;+g!S>z95FNxBlwo^~k!xtmX>1;jql#6fJ)SosHm3D~ceYM;O%l>5^7Q`C|K zkW1&b52@@?A$LcC4a=*z;U~3Nzhn%6;#oRtj4t+KYh}1NO z=3*2G=-g2+`nIw*m>Y}Ie{b0nC>nFAoRut=g(d;pEAM#;oWl3#f(`qS9a9;qdi zl(>hip0Ms1uNkT2X9|fJ znXgaO^MTm@V7Eus6zG$N7tP(~S!7R30Th0FXn1*inRu>9o*JGXdHlOk5Cmlu&Q0QH zQJ%&CUuEA|*=f*Xsnnl1*OgG@0aY6UdE9l{{x*vOxF{j7AHE90Jh8E!p;_$+%i}9{ zL(7?{BCenwQs}EBp~G|e$4Q%si$R0{78H}8m>Mk|m zE%`1>D8NG*j)q=f#&LZi>>N25MGnPKs0xw1gD254^Xzv8>1DmRy&CH}&R0 zceChp>+5Ut=MC9EJP1M|)<%7H4sVpcT)`ajgidjiH-ophPK>z~KW;SNf&5Td)o%9( z5oda(M-vw)t!-kFRlW!0s%M|gpI>^ik@n^vN~+KkdV;W3hY^rSp*mpI6>+rK4>T$f zR;_&uVgdoRjO~Emx<9XY=LG4+Rq%a9*P!F%l~6pS3yeF8l2j!zMf=uF5(~dnG#}$B z@TPVq0!aSB+Nal&g%5iNuf7w0c1h2>HHk>}pQ*8XAx1Ozk~AS|pPDJ=YtCLgf1 zm+2GFE7322`(1xdN|g#x4B25=AxjGx&0(GjHBYDnP0NLW;5Cp8K{6sTe@n~$(zy0` zYrCR6sGJbm*Pnx%gR)H`{9PKB)`*AWe5lS(wC8f`{ zk$V|_uCAtG&f16msxk0M1UgPp7z^#km$|Y8BO=*n7=rhj6O0kkgmU;0T(}aUpxvk5 zw=K73HABZf>4?w%RTx8$m=JyK0`=z{n?o^kJfMM7JxLpP>Nq{)LD~jvuvRxO^2rhS!@DH4fg&OX)DoLkKX0l=oKhO7*iv7HT_p^2T5DV@8GJ+LVY0>Z=ZZf|I8 zW$H|5WNHqud5QnXducD97SWf~gUxj6F@69exP{zE?-ds*3kinn$88wDU9 z^zMfC^o(>2^fos1|IXp$Eb0mr^0z|&R}Lo?VDFk<$<)ct#nISQ)Ya71ndIL^m>B<) z-`>U1`j0s##`LDvrZzxQC*Z7%|1qVwq^!a}IetT64zRKR!vzHUKPa66X8!`~KXm(j z=Z`u6t_YC*pK||$`X9FcAqG;(%5sU=8N2*ePf~=J`1kx=CU(XE6Rtm(3?>X53}z;V zv`mcboU|;gMhvuu#%%1g>_)~+%&aU-%p7KH|0YV(*2&q>*4Xs7D4=jU08kDyixE33 zlZh#}>cOO-6PmRu&FM4o0AV zva+*q{EJA<)X@p(iN9qsGSD&qCHMETZ~=`00&Do&Pk{pdZ~$%L5_U8-bhdL;v9q)0 zCH}1v;cw1A?oG(^*P=)OoPZP_zdinMpI0_@`0LwWTfiFd=N2L1AGhT)H2!N6Cqq|L zlRpyy`Tn|PY+-0?ZVKGre>>Da#sUAA#bRM+2Exk5LCeg<#zM=&#AHTmXvoG%YszHG zYR1lD%D`^)m*M}E?qp}?>}Kd_DrgS06le|5f&N%SNbv_s%Ky~G&BF9IP7F*ev<#fI z3@j>4%v{V2T#Ss=49r{%48-(*8%+OuSO3Fe9{T?eCOm%#{w)ju`TiOMh8JM8qW@>O z`Wv&~F#bRM`Fkz?AI<<2{l7{6D}4V4*Z<)9uMqgJi2vtZ|AXtlLg2q5{-1aK{{|QA zzX~2xTVNLC1}tY*6sEd?r4Xc%w73Y!`|sb}&f)~%2#mdirV|JV9m(%MQ1?Q9SKuI& zv!tvj)FBKwDn8sP0`*tm5SFv3hO@Ap&F{P!_NU{G2lGE1c;8@`+KdO*#N3XI_p5XF; ziAbAn)a8*-p3$sI6@5;BQ8Ddnwa=$`&NriYU8WLqm-kbZi*A3L5&irV2kS9ms`a`*=SD0u!-3anNt6%}0C9D7#pQGi=4$M?kTh7>=!Rh( zj3zdG(6F5H2uqYt7A6fW+keq3L0eh+M&U+~uPGZw6xjj@p8d+(WC(AQqbJnFY4>{B z=AcUToRo1izS;gY8;{3csdYNHjUcRg@T)0{VX@jQ?~iDDqptiet4gU`jR`i)FWesK zPYBq#YUK`&j@v7ZR;d&FUas`}4NgS&AJwA}BJV6GDQ~ZH_QLHqa{XkKKaRJ(QL3VF8xPShIU+-U_taXNQAieo z>^5M+ls98hqjlZqN0kJdFybr@*ccz(e)&GeV!IZM&1wmPjEvk<4NjOnobKlo(y|#MayqcJmpF_1m7j6pyh2R-vqX7mU`REPLsyw zue+>@gYR);>S_R;H{S7PS(WF@#w)%fWwpYsTo zRZa~V1nQqmtNl%_TvAG^?c{!IBCnC5!G%&uT`kvsL9%j)Dm4*q)p^3rFblUpv!%-q zcW+X0Ivvn0Z_mBJJiw7BQ0nmLs8Ie4$kx$OxSH4f+novj74kAK{)Y%i1!*01)J@-k zskHnzF0JgY0HM-xZB$rD?Mfav8Wjo-NS!1zxoPt7vO8BMHdc7@) z&*$l7@3BUMW?*Ot1qVkOxH}47VH|Rr*olHm%B1Aqij>N%yVY59)14fkF8JmGiVQd7 zwP+X&_6A2P$309Lhy*Jyy;?|Vx$g`QS65pUtQ&@Kte?~g5eN|X&Mbs$uT$me^6vYQ zcJ7_QugqG1+_xXi75y502!H7~Ng=KtI$a+sN9oh7J2WmWcurlgq;)8bs5rI$G^zhh zF<;Ex-5nVJB51g>V*LF0KxKcVxA-R*3J6`ReP0*y$766j}LU0nsm#nR6x+kCcmLePq;s_Dv&=~BiSITtF; z+Ja!!OZr5Q{UJ@aWc=%VG&S*Xn|{N=oMEM#^C+UV8lg$!n-~nIg$O^8JhL88xOeX3 zB5*KboER1&)62d(=700`f%4VqjtuXO-7$(}-nBP)RdYO98j`EJ2FtTbnWTAf=c|^3 zHt!X`K3plRr_F7wyf!HpQO$jH< zh|U(9eNA2O%|WWq;_7+CLndONsc>jSZz~>MKbo_5FzTl%&J@e3-Vss)AC=+s$D*R( zd3boryenl8$`cr?HgwzFsy!`icvawhsnB4DFIrc0@(j9^h7xtCF%o~73H*7ozVK>R zswGMl0w2Mqo$snt7ZxV8z)k#e``0Fx5?q+<3ec$V=#3rZx81ri2DA5VfTN2I+y3QF zQQUT0comBy#i10kcx5Q&%NWqpY5Z_iyvmlbqxt%#zUKZ5rOTHWdgvuJz$aha{oBX5 z`dGJ|^npCkkKW8>j2?_?q>Th8f|D!JFLA#x<(G!}4+m|#p7jwtkt*aw@?xU*%Nf1- zo=FzZ!w=f}(w=&QQaLrArpw;)|o$^dY9u_UNi3B!H_s?+wSvg z38gj{ob5Y#a~%Q@kv6}Z^X^FVZ?uG!5;0HvHe@xglra{c8!w-FRIH~+B#&mHzmhXJ z>8N+WK^0a4D*Re8E(Uf3IWdAXLl)&ATzkhKd_VfoK99-tXV%4<63`f&(UVIuaw^o% zUEhpq$_;FMnq9s7bTt)Qp|CMF*C=g{?#&XbP9DtsREVMZwkHKs!Y5$2aj|&WtyZ4Y z(!#O5y$u2l14CKob1<2eBv&u^E?Q{&Y`nt(QiYx_eEU?3lEfGGeN;C~xiQ9y>$&SN zNUBh*uxhYYckGbk5DdE!%V2eAY%Wa<)YpR6qf>xh_bFe>Wn--#w780(xJ@k!Lk8S6 zXTATf<=v1$%R=qMkO_fvzM*=J^=!VDL@WWOP$^t1>prT*{!R$0f0IU+2&x$9@8*K!umf6sIZbA;L$5 z?W^jNj`ujHL2@xSC~vG-_Y43vyj3vVJC4Qq@oew+w%3|v3c;N|b+z{ZV_o)+Snlf) z)iz4~@@s~Jti#%HubCbt7qliWJ6*2PmN`5fW8iKk&l@VYVj^Lx!FU8i`-|64)%3F7 z^sdN>?w0B2Yu6uO8gs45KPQ~Vnwc7tlGf*h(w@xq6|W%{gXK*Urf9kzIfKJ&Pj_B1 z22swR5X!Tw!_LYm)-WFc@L;uZ9b8dE`JR_^b;VZ-yM?uuB3OXbsanSu_r;~`@mV}x zK(6GDcNyenTRx_~k>^mV7e?d{pgV|l-wY~0q&roYcXr@YbQkeh0XYy<0qi5I;O`FV3n*>*P z#ln>!JWGgsp+qND=7VMO!m-?}JW?>|CC77igPGeylsX>H0_OXZn=)(H)w3!N0q+&u zvO^gB1H5Nyx&7Yf;!Tz8AZLNsp!5!Dt*@9`~Bj0}4tFZM3&8 zy(ph1IFgOGbR@Eyy}1k5O$WS8&J=;0H{mGvH%`lioBipZ`63lM(aY9(9@prF&2x_X zDxG=q1F1=3XX0l0i~AFmDy(jB*21=wFk==#n^bXT zSue19ApfKGqnH~cKte|GI*DxU4M2#jNV(N|A6k)sfCa`BH_28(Rbg915UG%_cdP_t zf;myWnc4--F@5Lf<633*4&Rs4#iY{FI;dSfFL2)!4?QbuxNVWX;Ih{$zGE_TbM^Vz zo|(2L3#Dg~Z?p*sf<0rqw;#4TPGqX%4WgWK<`&AndzQ4=xJ!l+Lf%&m9wK-_+sy@^ zX(R3MZ`oj@!iQ%h_CT28c`i`UmZXdB7Ra5d9PDYHEXKu5bq;FxYi;RRbNh#^0Xwo% zTzYwe2RP%?>_s2dN`x~=Nz)S7NNBu^xN{D=%~(y9E6v!_(4t6^QbPB%V3$riE?p~S zVw-+l>wRpV%3I0x_0hxPj}IZ3O6fWFDNzK|m&@b`=ufssfyrASjH)|om} zY1h*qg2i%K9FDsZNr7dW!dB}G&-Yh{Rvop!ylY!kB5xHY-a9XG%WoSc!S%C5630yb z%@v;OgMQSHdl=W)yfz|rQP$}#T76RaU74I`I|h}VFJww|dSs>3;d3l=*4!&?@C4|! zX$!NhJhKm8iu0(|WA&HTm#piQCt?+vTj7^7$DXamTsjIEY{a#p6_lV4`)@43Xup#P zBF6vVZ4DOSZqeiLL6YZjG?tKR_BZzxV0eZNU(&turJ(<6?{q=ttKecT82PnKOn5Hf zwUpTzjvvoXayN|){;h=!BJX>~P)ytwio}kR@i^j5rZz)$N%+kV(qII?96N5mi4v}6 zyMx8dGEzLd$*sfL8J_z$E+O^DO{)A1DBHVO2BT}Er&g89Ax#fJs*CNRqp@U{ZAciE zXAICI&iUgWK^La@G)-`RHUE{Ic7dy1C{N18Jj_>4grksOUSHSWYS6|3{o-n82?Ivp4Mx);op@!`DpjX zJ3V)#KIO^F_F6I;FlI1f);W}%L-$NpUfVqHr5ik4f|?xoA(>3n*`1g0WH0EZ-4B$D z>P2?{;+2|13w)9%Cb=cPYeuR|G(bBX`2PQFKge)wH%;uB!ch-Ah z6BEAMM8J$9Vk#b1G&F(U#;ftwbKczcn+)@>=|&yP!u_~Hh097US@!ZIY}4_=GK!AM ztqt|!eAaelYVy>v1*2UId{e6cJBKKtQ0@XJ>mmmDwCI#}61=8@1@B!RXl8Q{?$y6AKDHH)zrNJl_=- z$_$YOKZH@$m*=UO4*g(zbtfYXrgPD@r#<27)*Xi{bG4dXY|1%!@XKqc-;s$eZe{Tx z10IW%Y1yjy!e>k;WU?k;HoHR&CDXxO!O+3YK$NJ;JKFF7t<|t=MfZ5=<+GO zzxL{A%tr@%X4|?$RHxb`$3%4xtww(z5Dh|$QeVDahBdO}9Z{Z`H{kg``n?_Si7j!z z@P$9OY$?n>=3on^_2#J(WUfV(z>_ajDRya-L8n zc%fKOk^LJskKiU*m4x4RN|lV#-x;)u}X#)voEILysO$LcGe*v$Y$y z+)RDt7k1J-Hc@S@-Iee^{B?lT)v$ddGkAV9enH8`bZ4C>M6$W{@8*(P6`udirP{k1N%XM-!+Ap-OEh~%W5t5TbMU&A7+cBj@!0YQ_Ib4m%Xtso$ zq%C(`&6qLOJDsh@%*80ZEfVq&x9>h!i7z{3Z2m)0{XfCFpP-V+X`@Lv3pB})KKv=*95y9K<+ieZKO|boeuZ-%S-!EB!bBr8B@7o1+(O+s`rBmpZM-3XaW-J@w@p)49Iz2({Zw_aOJ@9}!ovk$P?2aUeh=|0+ z#rXs0>kmc92Oe>X&NgXPc3e+#lkPkG+8xQ{aw(favjZL*P;y$He3Gw2J3q0#Tk zJYFcr80jBRV+PC>MOVsvvz(n}o^ItZWYTI$cZ@bI?;^c6L&sugO64+S5zCKXCZIQU zyYa=v!?Ref(`^O5fn!!@xj@y|*9VP&(AddmGK^eTSNE_J%WtvP!r1P1VfH-&Emejr zo!u^G#=_)k`#Ua&J&3%#JegdkM5UI;+&M0vcPbFMuaOw^+vn$#%u_tV78VpKbh<`^ zQCPpDO1=4%5exPaP|sN2J52RzJyW3d^Of2ukJktJDpa*vl`?5eA#=s@*Lx}Yj;~KH zef|BBjo&|#h)p*D=9K2tC{RuJODpcwXX_7s8@^bf=~j4#K^Obo$Z&fg{5Ph#xw%R? zUQ&g1vu92}Y7BqlrdpOWd%U)}nX{ztmsQ>UmVR^Nyy5$7!{u@;0?YuUdH2J~v*SW( zf?KMSR`(88h2KeXL+M#@b(cN2)$1JVFZuvU?g+ZQKl4bvdk z$)9|ha(tWK`*<;1ocY1*UbSOZd!{&3oy4I?2E6a`c6?`j%yobtAe z>G)+%2gnBlK`POV7iDF-IHQkp|z}>56Xlw7@5yZawu5hMTFk=&Z6T&&77m z*z!m`WY;Z+C-7K&Rt&-0p?X_kJ7l41ZvyC?*4JfJNm9r2Rhoqj#B8UXx1ql81a5_E zZ_zm4lu94ohTdx*`BxPvlAPf!gZy^P&nea`tT;r$yb}s7O*z= z7s5WEPrlz}>u1v3mNnMG?tXis2EMX* zy3yG_3`M<1xhCC6tO5`#tCkbd4fnS+R1^pm6>V8S!%!6qcd9t=eB%gL<4;^j%vIXX zvkc|MH%XxSM-b2lzGO*meD7T3w$6}kbBTR-e4NC!(cd2=PT+%DzA(CK*F6zWB5rSQ zZ*X_IOo0kZr`IujkmEObb2JA$(kCGz3K&TsN5RF7ij0H4Vuq>81{?N;S0#jeuoqu{;F^<3V_TqoGWGzb+*gg%B42FJhbc8Pa~!C-$LsA95SbmIZR8{*LBO5|qwN|; z*W*48I<3~g>2iIm;~p%5?*oycp&`(KWmo;ymX_aYYH4BPvBlYF%ve%}0c@&fcc)7bLrWMbw0bmg)QNs@A$&6oC7ACj9wI#jZ zmKwKMTf)0~fU1Tl3A!X7sb);+$MpGvI^*N7z?sX5sfio+;T zphgk!XP2v2|C(Um1o{dAgWU#CM@PrQVSeo8&CTxqM23mE`OemsfSDN?9bI9pEh;jy zzgYgy!a12>v1z94t%yXZRpC$?R6uqx4Y2;duPD2o6Y(* z8t4yJEZBD!oBBq2u>|}vVPR0bo;L!eDzhCPPAg3|V^zBC5#Xw0b#|LwN^_T2SEY`4 z;a=t!c0+)73E%+@t0p9vS_QEEAZ0MNpZSG5Tqtj=R4*0`9TAT+rZ-O6OaSedXBn_M zY0$DMeSW!HwVSWj&oP@w&r_f{-00*UioqjcVL?rj`ko-qH?mmi()308AMXNaw|d@E zJ>Q+>`@TK}2M6aWP*`kqa1s#_y}Vpc@m!BH|5#m}Yj?8)0rt-@j^Vr6zqX+>saX6y3Mz`Z}o>bgge_)n~!j&+|QlxB~a|npB0Cm35sFRfNqK5 z+Bgo&o?^l$CI9!rV~@_6%pQaEc-v6d7OGgIjZY;RGxhD8og>@e;Nbn^W6t!!#DRV5 z<6%h{9%l?Hxy(eV8nfs922@T?j$Fy?{r!DZYHDb&Ue(ULY28wSj{~q(*47M@lau#P zPghT89am>wZ>d0qGJt9wfN>elReY zFED`FbKwIXRjAY9*}ImgTBaN(LIT9BZlK#18!HH)YgJ7R2?*5I(|Wqx5b5XlDF6;z zPqJUHY69>q+X~&z+y6v18=E3I{8eqE+(|K2RV+ZiKu%6BASj5{?|t)ljX* z2!7pD!yc^=pabVK3bHR{OFAVO;ntNEeS@+6jH$F~9Z6!LMjzbYI?~O9M^e`tt;Q{R zUVp04X-ahcWJ7M+GIr%z%Aa9LPfusWf_pzf&dbJ3*x1-VS#X$`n5+Q=*qK~hOa^#V zu5yWm;O^4mq76VorlzMa&d(|22>{JG3JMC)O%;v+x3;(c%E&lbzgDirJy)h7dbZXE zkV@TwC?X(C77n~9sB6&BTDZAAFSbs zvdeD0RhxaJEExm92Vf^$zybWTxY#5xFAkKGjHl+OL?nIbWGAy0j;KueF2B}!pPG3Z z)+)v!39Mj_SmH>*Q?nf>F^vX29*?%TzDmyK6bTxm@q`KF3uQN>O9>Z&-IQe&=jN~( z46^=5H{jLggE&z#G+PcSh|?RN{TGj zVy$m9m3_KE8uxIfNdM_?hxHOzD!Wwyz)pc6(6PWvT4q+K4&bD2s=|3$!&=w;d?Eld zXeD;xBHf8Pp1~ryM5Ltt07TmXxF~<+3Yg;gz2D06EgV)Y8{>)K$!)IP$XZ!<_)}{AS3ew@z~qj8;{R(h3(h@cmwpPu);+E1ZKBf zc~43JuTD!(e*ieO`O`E7ca5msd?De*Bqg^1dx(}PE7TZ` z5?i#E)~l*7?d%lQ-a6eJ&e~>zoR)4+j*nHFZ1XK-X2oO4bnDcI-B081;Hb+ylVnEjD9JxSAPfndTDWl8whKqC{1aw<+Bvuwd{Qpm4X zcArz-R$kED#vYFMG%Wl-&eGIHn2=bvB2zYTZjg?thE^MDx#s&l>$kOfnMQ+1;q-fE z9}^oZE+w^HGtT?2lVCBO2?9``1qc52_7+GO>MfQtW4TlpLJ)fPIpEDE+r1*0ukx)>&0J`ja(TiE6T!sUHMlNvPHJj}R z=cr4pWoLcXf~L)hzMj6#>{8`29T>i0lAG z4v)a+o@#b5^L#ug>~N5s{RnX-`l{4+Fmz}LXMMj<_^Hki4PxTgSj1APO}d#0;imH;?nm0m9l;O{`3)B_@7y{=(@ zIBq{ch=B(K0C;PAy9c1Rs_pKaz#-p?SJD3PXL>posG48h%c^538?n(kU8j*QTXlvTKR>^cX{J(H=4FN#MyP*Q)|Yq6P;b5{07N$G>vyvK z6is|&RDk~FbbwzS!XX9+8L`&a&1q}nfEJyo2Ry6XN>IHHS|FbxvGJvkgAk~nOFVq- zyhQ+iI#Z~8Bf81hxzcUfJGaBKr~a)@5v2}PauxNIwDwvW$*JRStvX&DRW6f~l78aK z1BeF@$hegx=gjX-NBqZUDNYAn;bE=cEWvJ6?~n$d5;O6FE=V{?pLFFb~qtV z-GIfY+^t^K9^QkxmUK<&E&Iuq^oYlm+Oq3NHnaI!YqasxU5?>Z;0ID0a@h}m&*nc> zBDvjTnXx@5ddVg`&kuVY&QS8c-s=Mhvfkv{xgPes(jUS_>BoO&{|IC{HNWLPrAsZjrx~gva9M8@l<%n_zYOKzZ3Wj&R55b4FiqK4sE;~mJp}fNN-4hrey)32K`vP z$-ldKNY+;6e-Fj@u;femHY$*vQM7_#pp=h$W+4&>6F1A^!avj1{koQ+QxmAkLPRwX zl_Di?$^}_Ry~eA({~C>|jwQy6E!(_=`xem5Eh|GPyFvwLj=Q~;E zNwN|NH_{mYrwRERuETFN+vQb$P1nY_HNFdJ2YY+J7FmsGPwpe=od12-{XyZ$?6FSJrK+yg%8c zb1J(94TUe)nF|cX&u-tne!|=Bi6S*UeY${jYxQ`B_Hc#U$aUS+P_|}vAkkk!Abni4 z=9O_oUhulp`?GiPDIqp<0nu&pkObduD+ijM!^(&!I&+Le_fmocm$0MuVSANj)+?uBbfO z&$ee1bf#a76=B(hne`tXv@fcG);q=C+dkBO_bntm4iYl*#kU0MQ)$ZF&>GY?9A3W_ zO_GkD=e|TUc0CAJzPb3@6Llc*{9dATm$wEe`UU{bK%H((PfxFr+PeJE{C~XYU9=qp z6+<-}G$`yqU8z2F-hqM1O4W9dv6I_O2A!{E;$>+Cp{kWe$Cstj^=(E4x##Ow@Tg~( zPv227P>X3j-mbR|V&Kd3R5q)zuEoFV_*{=j;Ke2jU6O(fj1pU{9F0&06Jr<+a3o{| z%Y-$$3}x6zeW5oIdXSn-p^?xD05hD43Yl?4KX&&nh{<4Q>)WKRtiuK)M z4aEq$P8^&;R*I=488?4Zn8I6;>#ZQjObmwX_Sep`5_6Sv;q@CLk zot~~`UWHR59{Cj9+YLUc`{gv0p^H6U)3ZVsS4={J%2=G-((&gGQz5+JY4S13rEzbH zXT(0M0(2StS5ZcbYo1LB7$Y;^*JZ6g(djblU;1<&X3+4aX!D%GUbzK6`d>}=ZW@Nt zRP2>yWrAAvF{M?n{k+^^|toOxL6wcMcO+Zir zy67-BiN#c$vVVP79_@P|+`S`WuMT|FNJ_9S4QHMxCR4nH@f7EU1`A(r+80XR6g5yQ zLz<@G!nsQiI`7V{Nmv@H?^+4Do&F~0od(Nfm3WV+H0gq%>_{4e(FsjT_PwkqlaUf$ zz!E6Ag*!MecT(t#cOW>FeBoA|p?O3#Aq=ZKMbdD)gXy2u%YCwm45N3>YM)n6rA@r5 z2W;OO-eu4*2Svcx#-?}P0|~4`&7ljm@UDDYUBqn2;>8-I5^fXL{@Md=g4dHr(Gv$Z zDGJ&>cIhO@dY-?7)dzks>tsIG6UY^&U1zq6@b@E zs*M!4jb(LL6!WaQ zW?Sod@r>6jB-@ydlsVb{|XJs!m{#J3(@qCyIyNF@HdO7AIxyZ4De)5#- zotR$qO-)T+C4VI>Ez4{9h)%a|0S=->>XrX5@hvri#mMFKqTEk5rK?sA!>~0qJvHIQ zXQ4%#0pcK77iLz9P`RV~VF%1saLK4JrE89Zi zaey7eo|*S5#UozOp>kTA?mDFnm9!Zg$^HznNBC_#;1^|ZqdvseF-}m*8(nl!7JQ0G z&oRo!V*lySDH1)`amW28)~rZ!x*G!Y1vE)}DW>0TSPZT|gFAP# zeFY}7$!*QhdP8iPLVkZbM}*GLW6-~BW(?Cpk36d+m4c_V;*|&g&Yi=sFK~dJ)=)u2 zmw-w(QGYBhn~8#O0aMVHS-<}hgC}ed_5p8s+Dq<2^8o>dWCr<~o4vX$OZ&#ACmmv@ z?DI)Eb=7Ju;w1!J8V9P*r9y%Hf5K(Fgs_0XN97VF47FEfNk_-qbz(xJnq)vV15CB# zzYG!&d#tPhMkuy)BVPS6-NALWG=}$HKsvFxu>6+Vul>bc6A|Z`gtu_OaBrKgwefZbW8P%?ET>s@v z94q~Bdgp<%6?G0rMYuPjp-S8MF08W^Yte_)ZH;{9bPbJiZxdlxCZ$uoU**ANaoU+8 zL_0O~yAFfXf!BiDDVI?l)C;D$kwnX;mugvZ;lmkb=EdyoOIlNk|7C9( z4Yik>;aTWVA-P}UJj)*ZL=W#)=4CxJ3mx;%Q|En6XNYQQ-%B(7}2)to;l2Qhz8bwO+6)f#Ch~ zk5_S`sO`MgCgHmBW|Tdh7s-6GXalerE=>ooUL{Ih8FfJx+=f1IbpcVo9YjeDwzm!a zeLn6G)}rXrwerHZn)tI93o!}e;OA!RR?%Ko(&#w2-yRoMinbnRNB5h>0r$C3!OZYP zjdBlLP9n(0m&Q^~Z<|nLLJYg{tUc^_-SrQkjhjmtJn0!3(9&Nyfve$?ld7=1FjM+t{HrTM+-`pGiE0n+U$2hM-_##E`vjqa!y%f%2?Q6c^*;wFdQg%x z0sI3ROht5_o4y2qQd?G_47AlBX}3Q?R0Ma?Py^HfI(QI)(ypkesCw;Bq7&Jmr^bJE zium)3IG8t^)CHb;Xo)TOmK=Qay`RFA|-)(Jo?d6sDrNZvnPYxGiW6wd%+G%~Y&7-QEwPYc-_0-gEI*M!{ zq8^a37Z0pQkXxIqfrcM*qkWJ^ zaaGV}SZK)uYh1#mx1zfGoH z5X@Uo!q;`j^vvOUd#BetZMF%hRSkaE^=(4WS0v(Tjj0cjYjau?|7QRLqZm>Wr^saX z;@UP_z0NkkkA+a*GSm2>izTe?%_ChIqHthk&@3`i->eMUTn9IxVn|@9++RwoGJQ+M zQm>L@B2R^bP|7on3s2v2y;9QPx zC{!8q$flqNxy*gONR&H}PQq7Gg(Xv{+kP7fE!C_071|YiglK4;n-7u+tUg<65TLtDZ=^UtA2+#y;R2?Byr>c{|O)xs*ymjPerIU5TYj@KIl2*qw;Bbp|X>P?|H-NY}qnG)(1;L zF#K8gERA{P6U^bdrPGpgaNyjS&5jhwOGE%_K<8#nnGH=q^3Zs}hI5VCL5>LzJ zqANMkQp>tutOY*V2~uGoM=T=?r!8e>6QRT1=qwE+&69|+0U8R>sAET7VZmOVji?r7 zH;b7C$ZPrr-FYr$GuYV$2VfLO1TxM}C-{j~hBv+*dWz{$07{N5e-FnpF&*_HqXZY+k(on@<5Mpi2nHeIf@H?^)W z6%y`PnI3-YvYeB8KeRn?$KN_3?gChBzb{;VuMrolEs?bugCjVsj)eLGv_lF?^B$>( zT?*zz+Nqhr5w25o1i)GZ;%4?2A_-K*A}HHuV`>wVdiw0!tAi>%TkZuBPidc!c^$r< zfa0<|g93ehDof6~PCQh~nhw$;9>WX+ahU!Jcj&Qu1TS03R-oJoyX>I~JiFBP*ECKJ zWiOm}jIw;NpQ-JhRL2kP^;y&-YVP%vr+*WX8M@)-wPLmc-{Q{y!AM2%Jc>fCj3%5R zul()e+gzLOo+(=fgel?=v5g-=TuIr2ACuWZ3BPwrf^i8V-oWLwU&ctKmel$XxO4>i zr43I<7(Pm3%g;q2Nh%7MFOpwg8o?o{CXXa zI*OpEIEIq6xeazQbyxLXU+QSF{4i&V%D|Jg?Zmur=#+Y~$9R}_)f~MdF-Cc`l%-D0Ljo^DM`9^e-d}D^jSks*}M;4>z z|Iv34$UhE3eK>{S(K2@CD!F4Q+7c$BCWvoLIIih*r*j!<(}rS_(ec%}GX~Oa{xS#1 zb-)~F;0@+^3aZ&**smHRGm=g?68KVrl_RVCR|`O&nIB0|CR{SR8{e-u*4kF!JQud# zyHGYL*TQGVhpmw3lcumYa}X)Dp1{_geO_~fo6sj>o_ni2aF!W;V)H%Bhm$e!nq zD;qxTr1exXI*BYu_(PwENC$I{6+d0O=FR*MD@*4q3cS~^7nm`D@VUwmdcM1UXTZQ+ zNu1sKDvn8K&zU2`&=@*)u+UI^B8Z zP2tb=7EqOc!MBO~+FY|viP2m8pZB~i0p=p+H;KdZ2GRjUfxohmq~Pc1SD z4dzxROTb0@YWbN8ItL+(h6KEu;pi-q|I?>WcRQ^*6)v44ZFgyQ9eXQor)`-}FP;yM zs<2>Rce@+(141Z!#+I_eTKl^gMtJXghtHn5`8nsW(NZ*GN;A_@2-VHtfx z?yxK-!{;V7job@$y2EA(^HDZ7*^i$-b}ETFEC{J-KqQdKe?{N$d}8wNT!R5gPmofDb;mB39%ipahJx99A^yT3fnqWuz5BAF z5Y^>_F;`^OmD-Ksi)~SAYCV6GaEZ?HPwb0hv>d9O`Na60sCpC5D!1#b;IF%(JMKKU zAFX(W3OBiwj!pL{|rmu7cYj{&k zQc;q)6(v`qkcA*z#2Vk}UR|-O-%5 zI1DTy_IOx)a+13!gV&2~!6%!8Cn_YxwgzjCJ+I^$POPi&MYLr5Gz#9k!=O&hzt0*O zIw#z}I+{sHmO=g?Bbu1Rb)8DQSJd&WwQxr~I#9LvtJW;=hc(QTJz zt_@i_)@K@x!u{f^v^-`>cF%UHH4^a*y9*P&gR|7I@iFoH=Fh*QClEuG^WU9bu!2)3 zBg<^RZTbYV#SFfs55|={SZz#6`KtKS@^D9NKLpNCzb$JS@Gi$A)U8~(3PqA!=I@w~ zV0X6pm#F1;_|88jWTGnJljd37hm7l^4$?S&iB+S#@0VDfG=|^u2{fLzi=4}+J-68S zd)B3g$MQ|F?(lx+25W6X`tNk4$cBn8L6L;NMpN`9)vZ%p{P)wjPx0FV%iJ6_S6bSO z$b-lE4I4xsmRUV6b-U;C_#*qR3*%9~{6fA%+{!HqK5hsjYpzf1(6ZDYy9JF@VRJed zkgt!prnt${{8$~~{f$%ITD6rEy#xKpr-WfJe#wU0ylZ6<9cp4JUkROmHlnSs5Lz0G z>00;p>vPxONUg~HJZ)B*Q(t-ExoAf`LDaJ@*uChv_xeF!+SL4(u_`y*qFwJBvaxU z7sLAiWDvz8%yD4?vTTQx)GSi-)o#@J;b)Q7=s#UhB3&WQyzMm^KN@Uh1zd$uS9gh* zCteKeOEYZ8mgPz@dvg)SwWw_E4yBv6w?D!cFAI$Y)FSLrMZU)2?+vLU!nencCoXR;3v+=mM+4$e=6#Z0CSgmFx#<~H`&VXEuGtt;t! zP}z|FRx{Sv!qzWc-e<}VTcP}Z3jT8#8Y7zia33%!dV-SeRWNxUzIb=n|8#YB-q4jH zx(fqO$yC_Q)5d9Cc|0FTiNsz$-sG{OQw%7JXg(6{4SGN)GO_4AetU*Kb+aR#9L6Cq zpD?W={@%QytP(Gs)A)3Im(&8NkDF{7!(YNI%ZI5kQ{Ntc_3MoP*qqN~?vP|QxZR@3 z;7K@%H&dnH(DK74+^cbNBWPAY;c3PF@;kw}`p_SXw+_^kNGP4@Q&z0?KM{D+FQGZ^s}M)$HAm(A zYT5_cAw3AcgovAV%rjbSk!@VFis(JtE$b@sXo&axGFE0ogVNc3#8XPvWyTA}>JM%n zxrDN6k|vJmzd+8`hw{g&)-uJ8cruGGu!LVIye!n&hiqM%zlvuR8a( zxwi=K&?AnQKM2slr41iKn&k|kfX~}GCG%{_NMeH@NHtj!cK0EWLm|Lkt8`5XK(4Xp zOnwom{`&`}VC5w6?Dj#3y$xnH3r=^cMI-6jmCgi;X_DGw64LBK>7$zwm)(%#sp5f} zq%zONL6(POPgCXMoU^ifVgR(53ka`a-fXFd(-Bqs&~LdU3-6LKxk};uPfz*i#eV!` z*l}U0-LWxUYTp1kX0&q7*X<2q^JfE;C3WRHvz?=B#nDkBDAR)@JX>3^xckS9^~3@Y zY%-4{WR)5j4{qW-cO2PB{$Cvc8A5o zKj?nf(=-WK->5kCbeKS?yV>_@P2zDoYUY&-7@+@8!2kTo=O_sFetdy)SXxib9EJ|x z$AlI_Z30OI6930wV25q#2m%{;eQ zwt;19f?Hp0QHlVf+4m2<(slOmrU7u=y+ybWJ90`Lval^GbfiSK*Gjfc&3dTDm)n6QmAu<0dlY~LnHHFGghB-TL^zFCI+Wf zb5ZbBCHqq|9kAwfFz=arEK9Cn-;7zAKRM7I&6gX!EX|g_{6smK0e3dsi5$V(chq&u zoOh(|b?G1E)HiwlcGKbOMjUazvwXy0J90)-q7>mz z#KpEuyLKJs`046T+LrUnlpU>~nwph7-ruaHzrQF%bn6wyw;KAZ6pubsEmke3>Ha!l z!>y+xC>?F}IGA%n)5;Y=nP}%e)oyQedqCPhl5pmxCUH$*HVg_@dINP2VY_xMt3?ld z6*ENnYP+XXr0J8lbR-#}@n^||MyDATRf1S2d~ZKGx6bR9UN4P4im*TDjHyCgvhJi# z26?YBWjV~JzH*Ykj2ov-<9_AB~$ z)u~(SQy)=Kki`w|VEEAoRx-Y&pu2Z>Q3>+yS%#DM7L&S)%`!|%#7TqX*evqCSV{w} z0J@=ppE+h8MV&%Rg|XPr1H@BO?Lr*{8+3zX!ysQ3cR&r6LQ(888_FGY}%gn1noX}=)rfT~e1n<)m<7N$p z(j89Qh*+zJqMNrwZc}4}AAk#A_ezbGmNYTWUf5G3J;z=ZG=RgD)}ZVdy8rY4pg`XY zG3pY>_28#w`vaN6G2Lr|7no%a!kt(b{qyLLml0Ag=d=Ns9-Z5sAm|guFj2nsQEYJy zg2!`EUs3|2!%wu;E)r}86O586Nu1ZuYL4Dahs7;xFhln{y`4hWC!%LT**veQeB(O{uI#g+fsSEG-1k?6 zFD{NWtC!GLZ=OE6M>={!XBqbJcAm}ayosM+zuat{HeF#^+tWGSp7K|;@a6pISsuYX z3cdDOmb7-bD`*l?c$jo9j*^ULnRebfT>={~NwH`+-O3%*cP1)7clW;cA(>5NyyD%| zO(b+SkR$AZ>aXm3VZ>->0CO6AaNrD?R(*H`hdZ8)1#aIx;Cs-TYH1z7d^-s({xCe= z;P$e$>GRI1%p_{;VQqa^57JHf_M+7vs#M-OitmbB5)oIq%#vTS;&ilmdJw0tRPQTL zw3`aUL<3XK=Q*MV^Tl@L4d~?a=#1ZnqK5Lt43&%{HU5}6jN2xVr+&lky>B@RhS^~B zq13PY6?|WT8Lij$D1CE+9;|$7ewDM`JS(KIX{$H=p($ZtpzkR;faivh8Or4sYvMv; zLCvP?loCjU;jNqU=gtoa?QbL8l$w0a#WDMP1*j(<3h?ccE=2^|1PUoVkQwQFa~cE& zx|x$#2Fm3{MhrG;bSbiw+pSiu(4ER z+>f>}xCk-jsKh($OuD=01u+S#m1Qa+x`9a$@8Rc-$cap<$iUU-}RC~6on1jbvP;Pr{ z9bd2nRkgIcFk32oQc+S@eR{PK{#-Ca-5+h6CY*VBkBW9Q<`A1|VTJeEIc1>>?B{1O z<86+|R?#dz;T<828$Vs3qa~!J$o(Bgk~ReEDWD4 z&Z3WTFVw#W?xG9@azW@cLRiYn9FlrU+8OR4X|VlR*w16QHxQEic1q91m| zax%h5FcG^5GRC`H6oO_Ht-O|oIHlZNKU_3r9rLD#YwV$F?O0FI69li5*d#TN>pIDY zrxhzv1{;fPi(%j~WFPaS-}^lX%@Lg+B!>5&d8lir=r8N(i4j)pJ=cdKGjGm1OM&((sk3w13OER6BMg+bZJG4RSygH5Bj{11&j<|WYxYE}cDcXX zyNZur`}vL>sMTyKGjN(SQQLxoJl!yHGZ9VX*0yS$az4MwejEx)3|{8hOFOxS9>F6R zT@ecMy!)a-wH!UzmAxUgT-twkTCq^qMR~46<8V^)cQO6e(*G~dS+!4GmnsUiGC zjRNxy|8n4WAI>6^*Y!F2&`*nuJk?0=|GZ4jr1`n{pKsIKS#KvgkExDvfWDs~93yZe z1hz@Y%-XGwyH+4r#4coAk}`>-N6x~~D`8SHH9gNU+KTgpDjR(y5R%37+E~d(j!j;{ zt^~$GZNjZf=2$R`Q*SeFrcz7$juulh0lM1k!H+Q>0X8Jiw=;rC?s#ZDc&YZ`g6w{Ekjcy^W{ zyRCM;b!9j`;gm9ki2KU$b^x&#xWwAaEWP}zUVJ6UmE@!vf%-(hByM&xmBBUPcRn zzA;lxCR719EY`Xe5A&MpA0H>9%l!%K9G!5{ilWcr?zd<$NTTlTG3P{+iJebOiH)O_ zN$Nlz`tqD_qBBO$hWSnQ*^6sKS=K93)7_FLkf$yxxxpn%HcisLB3df7?H5E%AtMu0 zN>eZy59Fx9E9zbZ@$?)7&BEaduhUL$twWKUxeG4}Ia#$vTFqJ}Ih;u;H&4eD$xU-( zQGx^|EiFVAFyj)J1Y4o1#nnwzZ{XR>?v_cq(K9qu*^jZ&M)ltc$mdTgcufr6e@!Rt z7e0F8lN|%;U^#w)J4iI*G++7$d5S~|mtC>)V6OT@!{!|UEdtWEOOCA@6vEe8fqSms z7*i^cC|||!z6kqt6MYEG-B@1#yU$K*tVEX;Y;>6pAJj&Ls6PcBJ+c`4?etK%l#4Nf zGNoi?|1TCBnP27Kn7xYD-`pMj=eor_56`)v#>9w#Q|ZO7r#HDupCpCk5pH-RPQcJ6=NiIJZBa<&mx?p zY{+&!V=IZr0g{;@qUR2!!V(lPqWjuy69$Z9$3^O?GFW2L-?e_^jzRtU~W_Lt=90vRg~#AP^b(vOa8G*@v2G(B*XeIcKa!g{}oBrAb!zZrpeykkLm<&bIXPryIT6H2$5buw&*Y@wu{= zLtPJgG1R+5om7_W#^(j4qDQ$-It29NE}hkAnUvR0EJtBd#G-UcLEa>dKND!wh{OJy zrX$UGe}1C|%;$rf(C7D77Giw#t?O~cJGFK2LD$P-uj>uLB>hiiy%$@vd*G<|s%gJv z-BzWqz{ynBiRJTo2Rnx{Y7@4J!7keO0Ne~ubpapu?;$D^vMw#xb^EVu^V!U}1=Q?w(%;S5e11iTS#q{56{kO~uKep_3bpdx>I99~g?VKbn)q5?E0E z(l<*hUDxlYQU6LuL;PVwV-n@Ayx4t)W`p+)$BJ}t68YKdGL^Kyk zi^d835?P^`(00cyaFM3FZ}&MoMnPly(;&FTo|t8ESTccnmt~1pqg7l3E_z6ASORDVG)s)7rWV88{4tukE$%X)a3xWda z8cQ+%Myf_JI7nXxpZCR6eJ_~>#@QG}KjXsoG&UER+c7GlD$(zJsQXuaVMj5{?|p9f zWPC02oea3{5iTkos5uBGtU zTWiT&?u3X_RWAH)$gJDz&feKFCcN|P>2^H2^FrT-a=jDSoo}Fq=MtTGnx*4wxaa{X z9@91cLFrmZOTrPNHs8XW@I+EiE9OgCT*$-y-<l!Aoai-Sr-u+ zzHp{`@tZIH-+~j8=0^d=e~CF5N8BY;xuvwpS~b2jNd50-vA}MQ!ND3o4`verJv;af zY;lyvS7X5#$^0bOgqn3ieA8lw7EZq31GF*0GVh_Rlh(i2C}$u}aC1c~RbsKq&{jE9g= zJ+&R5c}~owl#vokf86ouabdi#tju>&IY3~yFJf!m=J$_z_;&VLyTXLz++iB)rLJQ4*Va7y(0D4?X;VH2?W$tBN&X- zU@{n4Mv8wQ_zwcIK8X3h8}YweVNJ@oEQJ=A{$q9Hfju%yo!`af0e;>neFJIz^bHZf znP1EeW&izSV1ZX{_kD<#Ns`gj|IXp8%r&7*Efg@%WZ@2n)SP?@Ooh__F6PT`)c-LH@adNF=1Gzk z11S_y!7mt}%ei)xNy=@}0b(v{%wfM;KdrNh3{*J*3-iRk{zlhsY-&{DE5=j)DrWun zo6o1B)elb6kb&T#vl8p=9?^pa3zZB_!>LK7kZ`*KAyS-ZsWREroSMmIH?F9fi0H=x z#vDES5pSJ(^!>tzRFD-}o-~6r&+|{mOq^pnWZ#i4t}%ILmxUL^-&Z!vxfx8#;&KWi zIQ$BwK>#huyRm%If8Ml*uZ=y27hD;W6bLbo9}#0Q68Vq@nhVMP8l7!@mo3<%O3=s- z!hc;nZ z5nJM?h#duU$oN3MrLnfpRwb5cNQ!Ag0SpyN2QjW0#KBggg-U|Y(Bp5b`{eY6<=&1v!BDBmzv z!?aszhky81>tK--Nl8D(aUpc!>1ur2Kg>vxypDq$x*U3EPQDZYwgc~VyBS51+f_7M z*?C&(K#Up@zfc)n)1e0f1rF)Le(|0!Jm zX=P4SQ?wP&SQWDyr-@jd|2S?Uq6RM|?p%!Geu!7UTo=e- z0ft$8m2kWm4?On_PLKrr*!9*zU2xN6&$W%`TV}k(kX6Y*i-mi)f7X;#{YzTVSe}5w zuw)9P7GyGch@4AN39JnYr;*!>FuVP-WYLyLZAn=xUQJQjm4Q<1hqlQ8iPamX>-6Li zzPaj$AarRtiVa###tbP^hj~a__*^W)13TSG<&H=Tx3W*+a3CGIwm*$ctx1z7>fHh0 zkUZ*vC`;PmBT1qnt|)w&1G#TWy69ak;jJBPmAbOXhjZC}PKw{Pqxemy#tkrqnCZAa zEBRXavH0B~Y`4&QMG-KB{KzhWDQ6uPDtoaE}kStz7v4G@ggf{|{uyL2z%y!Jxo-`19%8|;_)`>9* z;zpW{Vik08S$wHFSkR|Lm5o<Adm#QR_N`!d%Cu@#^6hR{5xvSc0 zYaw0BXQT!Eg^Xv!Z;iJRtloG1{H(#VP;u8icfhi4a(AtPx9KeYzghqn3nADLM9aU+ zXY4h5&d~B_2ykilSg2jPN6Ylpn^EX3vtj6%XtvOFS_HbC9d33;drmYOi9M4(@};)2 zK9;FHGlQUuA+3Hh`sW^-CcL8V4-$mUkuR8$h!(!oY*Pt5!?+r713T!ENEXWG*$Vgf z53gcOrdAzN4H5I&gPUXH83hfnKlo&hM;5okGzL&#Q;TV9(pUbZsVL_pJ%6BwvlKA_ zu_3>+y{m^mjP>SRV#CN+SPOk60#P`$)lMx#zC%b-{P%mV-v+c&F5wyZsXSvAY7luAKm{O!QL1>FY zqmx6l7=>yRzAs2>CS2lAS2h;hevA!f)bp^4rFs^JmhvqSlfx|=vqK-d_75*e1_u{w z3DGDlr65$|kND+I_VI-^#tCXI9bZEUROG)|z%dnFIj&5PW*SKlay4N2h0es2_23 zAGZ6%I^lE%>B!Tj+4EXb=gHfP&vKRR-y`D(kp~tlY12r!%1q7vWy#2?lZS?TSvT~Z zMVnUkCk?h61pR6p>x04AOpvq{CT{Ojhv6+$)mLHAu!Z!8ug-`r-Vb+9LIL0}3GB(Q z>>MGEmrD32gcaslHh2)`ZC7; z>95a8BC@~hFwlC~;^e1#OF?~pQqJni3L$1P)T;O5*VTCcB|;+;+|ZT$itp?&7oZx{Y{f*wV*+nUGvGuUA>;x% zpKl%WS*&qY_(EbD&90(nEk5g60lz|ij{7A?>-pkhibF;5_)7<@+cq$T zbMge+Ics9jV7~ErTC%Iz8>&5UdW7u^;7EUeBGSe>Guw26kG3}$Z?6}2TSYpE*(0;5 z5)X|rV3as5r)X(}V;wt)CH%s+7@$`ArN-}*;B8CX$^=eLn^%ql> zw@Af5B)A{}t)9t&jkhn?X1nw0cv|7`(1XgzpKJmZK>vyTy&2aT&dMNsvN~Ez$T1^hC`= z*@aK)rO216+ZGfl9kJ`VHE2(E4I{3j>GZ^sb!nEwrBd9HUUmJLakUU>{mnjIxTkfu zW`L}#DALaFi~Cqx=Jju`Qw|vc-lGJIO+lVK(vYSWP40<{=NGDn@iXzaVz9VJQo+@W z$J6=ym?qqwK!4~G@*G6M@!(bW8bgrq8UE}+53(SfW5N&V1d6RscAp)rUzNto1&ie;m26Gn_Raw>=Dh z@u+cvD$6r3EkGNeYdv%NFz_93!#U*Y-1nTHEwmU72)5%rH#a)^OK70aEO+m*V-+T+ zWly}o=S{u7NbZUn!J~?eN77>Dcyy_C!!x)&`DAJJVcDJGqV3yKjUU)(FEUaJbq_@s zg>C^cG{bG@!IS}7u!=$wCj;u zrB3*b#Rv)Hs>}3qQ5e)O#-FDy1k6&B23XFJcFK$`qO#0kH8OgY+!%y_}cB)Rv=r@$jg zA?l9@qrtPFSQbM^`p}aK zGPeDsPF_@GZuCS;%8JY1H9nlINezA$(CZWEN04?L(DLvEb6i%PKmtVyR&&162gAnn zOkn%XAo4GogrT2OyPoZhd4NBDLj{bc7!;SF2sI5oUAYM@)UO_!Mni?$E1FZ>1#)TA z6<3OhQw61wb-Dr{LM&>C3`Q$}T2J96^@~>zQhR#4;v{laqRPbx6?bmfsor2n!ky*qv#i_!QUYB z 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ét6O=$=jA$7W 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

    qzq1 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 literal 310440 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ę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

    )Sfd>td*AhIV(5F`@6{Uz=;L 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

    #^I`a49-*aa1&u^t_56OMB!`(oM>JV8j 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 diff --git a/documentation/src/pages/images/reports.png b/documentation/src/pages/images/reports.png index 6579ece015d20f0bdf9d3256f60d46ed2e6bba27..ff3aa8fe18082b80376c6bd0da7b0da6147cde86 100644 GIT binary patch literal 326156 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 z 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ét6O=$=jA$7W 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

    qzq1 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 literal 310440 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ę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

    )Sfd>td*AhIV(5F`@6{Uz=;L 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

    #^I`a49-*aa1&u^t_56OMB!`(oM>JV8j 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 From 1cb9e19e3c835ff1d95d035ff992e00417c1b98d Mon Sep 17 00:00:00 2001 From: alkoleft Date: Wed, 4 Sep 2024 23:33:23 +0300 Subject: [PATCH 79/86] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BB=D1=81=D1=82=D0=BE=D0=B3=D0=BE=20=D1=83=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D0=BC=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 4 +-- .../Module.bsl" | 26 +++++-------------- .../Module.bsl" | 16 ++++++++++-- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 60c58e4c0..7ada12bac 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -54,14 +54,14 @@ КонецЦикла; -#Если НЕ ТолстыйКлиентОбычноеПриложение Тогда // Исключение для обычного приложения в файловом варианте +#Если НЕ ТолстыйКлиентОбычноеПриложение И НЕ ТолстыйКлиентУправляемоеПриложение Тогда // Исключение для толстого клиента в файловом варианте Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим #КонецЕсли КонецЦикла; АдресХранилища = ПоместитьВоВременноеХранилище(Хранилище, Новый УникальныйИдентификатор()); - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаХранилище(), АдресХранилища); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаХранилище(), АдресХранилища, Истина); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 371f511a3..b5e2d69e8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -198,35 +198,23 @@ #Если ТолстыйКлиентОбычноеПриложение Тогда Если МетаданныеМодуля.КлиентОбычноеПриложение Тогда - ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); - ИначеЕсли МетаданныеМодуля.Сервер Тогда - ОписаниеМодуля = ЮТЧитательСлужебныйВызовСервера.ИсполняемыеСценарииМодуля(МетаданныеМодуля); ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); - - КонецЕсли; -#ИначеЕсли Сервер Тогда - Если МетаданныеМодуля.Сервер Тогда - - ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); - - Иначе - - ВызватьИсключение "Чтение списка тестов модуля в недоступном контексте"; - КонецЕсли; -#ИначеЕсли Клиент Тогда +#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Или ТонкийКлиент Тогда Если МетаданныеМодуля.КлиентУправляемоеПриложение Тогда - ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); - ИначеЕсли МетаданныеМодуля.Сервер Тогда - ОписаниеМодуля = ЮТЧитательСлужебныйВызовСервера.ИсполняемыеСценарииМодуля(МетаданныеМодуля); ЮТЛогированиеСлужебный.ВывестиСерверныеСообщения(); - + КонецЕсли; +#ИначеЕсли Сервер Тогда + Если МетаданныеМодуля.Сервер Тогда + ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); + Иначе + ВызватьИсключение "Чтение списка тестов модуля в недоступном контексте"; КонецЕсли; #КонецЕсли diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index 43269c532..ed02fc1bd 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -1143,10 +1143,22 @@ &НаКлиенте Процедура ЗагрузитьПараметрыТестирования() - Если ЗначениеЗаполнено(ИмяФайлаПараметров) Тогда + Если НЕ ЗначениеЗаполнено(ИмяФайлаПараметров) Тогда + Возврат; + КонецЕсли; + + ОбновитьЗаголовок(); + + Попытка ПараметрыЗапускаТестирования = ЮТПараметрыЗапускаСлужебный.ПараметрыЗапускаИзФайла(ИмяФайлаПараметров, Неопределено); + Исключение + Ошибка = ИнформацияОбОшибке(); + КонецПопытки; + + Если Ошибка = Неопределено Тогда ПоказатьОповещениеПользователя("Настройки тестирования", , "Настройки загружены", БиблиотекаКартинок.ЮТНастройки); - ОбновитьЗаголовок(); + Иначе + ПоказатьПредупреждение(, "Не удалось загрузить настройки тестирования. " + КраткоеПредставлениеОшибки(Ошибка)); КонецЕсли; КонецПроцедуры From ff7b28f488cbe3332b090699e1c3c323ddc97adf Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 6 Sep 2024 01:19:39 +0300 Subject: [PATCH 80/86] =?UTF-8?q?test:=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF?= =?UTF-8?q?=D1=82=D1=8B=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + tools/local-test/.env | 2 + tools/local-test/scripts/DisableSafeMode.epf | Bin 0 -> 7729 bytes tools/local-test/scripts/build-artifacts.sh | 27 ++++++++++ tools/local-test/scripts/convert-to-xml.sh | 13 +++++ tools/local-test/scripts/create-ib.sh | 23 +++++++++ tools/local-test/scripts/make.sh | 40 +++++++++++++++ tools/local-test/scripts/run-tests.sh | 27 ++++++++++ .../scripts/test-filedb-ordinary.sh | 6 +++ tools/local-test/scripts/test-filedb-thick.sh | 6 +++ tools/local-test/scripts/test-filedb-thin.sh | 6 +++ v8config.json | 47 ++---------------- 12 files changed, 155 insertions(+), 43 deletions(-) create mode 100644 tools/local-test/.env create mode 100644 tools/local-test/scripts/DisableSafeMode.epf create mode 100755 tools/local-test/scripts/build-artifacts.sh create mode 100755 tools/local-test/scripts/convert-to-xml.sh create mode 100755 tools/local-test/scripts/create-ib.sh create mode 100755 tools/local-test/scripts/make.sh create mode 100755 tools/local-test/scripts/run-tests.sh create mode 100755 tools/local-test/scripts/test-filedb-ordinary.sh create mode 100755 tools/local-test/scripts/test-filedb-thick.sh create mode 100755 tools/local-test/scripts/test-filedb-thin.sh diff --git a/.gitignore b/.gitignore index 6957df178..e4cb08acb 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ tests/.settings/* documentation/api/ *.jar /tools/**/distr/ +workpath/ \ No newline at end of file diff --git a/tools/local-test/.env b/tools/local-test/.env new file mode 100644 index 000000000..1aa8dc53b --- /dev/null +++ b/tools/local-test/.env @@ -0,0 +1,2 @@ +export EDT_VERSION=2023.3.5+10 +export ONEC_VERSION=8.3.21.1895 \ No newline at end of file diff --git a/tools/local-test/scripts/DisableSafeMode.epf b/tools/local-test/scripts/DisableSafeMode.epf new file mode 100644 index 0000000000000000000000000000000000000000..dafcb3b284f466f3966dc1d0df585ef3b5a0dfb8 GIT binary patch literal 7729 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/dev/null 2>&1 ; pwd -P )" + +source $SCRIPTPATH/../.env + +export EDT_PATH=/opt/1C/1CE/components/1c-edt-$EDT_VERSION-x86_64 +export ONEC_PATH=/opt/1cv8/x86_64/$ONEC_VERSION + +export WORK_PATH=$(realpath $SCRIPTPATH/../workpath) +export ROOT_PATH=$(realpath $SCRIPTPATH/../../../) + +export TMP_PATH=$WORK_PATH/tmp +export DB_PATH=$WORK_PATH/file-db +export EXPORT_PATH=$WORK_PATH/export +export BINARY_PATH=$WORK_PATH/binary +export RESULT_PATH=$WORK_PATH/result + + +mkdir -p $DB_PATH +mkdir -p $EXPORT_PATH +mkdir -p $BINARY_PATH + +mkdir -p $TMP_PATH +mkdir -p $RESULT_PATH + +rm -rf $TMP_PATH/* +rm -rf $RESULT_PATH/* + +cat >~/.1cv8/1C/1cv8/conf/conf.cfg <$CONFIG < Date: Fri, 6 Sep 2024 02:11:55 +0300 Subject: [PATCH 81/86] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=B2=D1=8B=D1=8F=D0=B2=D0=BB=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B8=20=D0=BD=D0=B0=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2=D1=8B=D1=85=20=D0=B1=D0=B0=D0=B7=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 8 +- .../Module.bsl" | 14 +- .../Module.bsl" | 28 - .../Module.bsl" | 2 +- .../Module.bsl" | 71 ++- .../Module.bsl" | 84 +-- .../Module.bsl" | 464 +--------------- .../Module.bsl" | 507 +++++++++++++++++- .../Module.bsl" | 6 + .../Module.bsl" | 33 +- .../Module.bsl" | 3 + .../Module.bsl" | 13 +- .../Module.bsl" | 14 +- .../Module.bsl" | 11 + .../Module.bsl" | 5 +- .../Module.bsl" | 13 +- .../Module.bsl" | 9 +- 17 files changed, 693 insertions(+), 592 deletions(-) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 7ada12bac..3145d5500 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -35,12 +35,14 @@ Хранилище = Новый Соответствие(); - Для Каждого Модуль Из ТестовыеМодули Цикл + Для Каждого ОсновнойМодуль Из ТестовыеМодули Цикл + Модуль = ЮТКоллекции.СкопироватьСтруктуру(ОсновнойМодуль, Ложь); Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(Модуль); + Хранилище.Вставить(Идентификатор, Модуль); - Для Каждого Набор Из Модуль.НаборыТестов Цикл + Для Каждого Набор Из ОсновнойМодуль.НаборыТестов Цикл Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(Модуль, Набор); Хранилище.Вставить(Идентификатор, Набор); @@ -54,9 +56,7 @@ КонецЦикла; -#Если НЕ ТолстыйКлиентОбычноеПриложение И НЕ ТолстыйКлиентУправляемоеПриложение Тогда // Исключение для толстого клиента в файловом варианте Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим -#КонецЕсли КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 25ae9d009..43663e90d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -143,7 +143,7 @@ ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка; - Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); + Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); Возврат Ссылка; @@ -151,12 +151,10 @@ Функция НовыйОбъект(Контекст) Экспорт - Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект( - Контекст.Менеджер, - Контекст.Данные, - Контекст.ДополнительныеСвойства, - Контекст.УникальныйИдентификаторСсылки - ); + Возврат ЮТТестовыеДанныеСлужебный.НовыйОбъект(Контекст.Менеджер, + Контекст.Данные, + Контекст.ДополнительныеСвойства, + Контекст.УникальныйИдентификаторСсылки); КонецФункции @@ -167,7 +165,7 @@ ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение; - Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); + Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); Возврат Ссылка; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 6552e3c83..5c5634ee9 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -56,18 +56,6 @@ КонецФункции -Функция ВыборкаИзТабличногоДокумента(ТабличныйДокумент) Экспорт - - Возврат ЗапросКТабличномуДокументу(ТабличныйДокумент).Выбрать(); - -КонецФункции - -Функция ТаблицаИзТабличногоДокумента(ТабличныйДокумент) Экспорт - - Возврат ЗапросКТабличномуДокументу(ТабличныйДокумент).Выгрузить(); - -КонецФункции - Функция ИзХранилищаЗначений(Знач ХранилищеЗначений) Экспорт Возврат ХранилищеЗначений.Получить(); @@ -86,20 +74,4 @@ #Область СлужебныеПроцедурыИФункции -Функция ЗапросКТабличномуДокументу(ТабличныйДокумент) - - ВсегоСтрок = ТабличныйДокумент.ВысотаТаблицы; - ВсегоКолонок = ТабличныйДокумент.ШиринаТаблицы; - - Область = ТабличныйДокумент.Область(1, 1, ВсегоСтрок, ВсегоКолонок); - - ИсточникДанных = Новый ОписаниеИсточникаДанных(Область); - ПостроительОтчета = Новый ПостроительОтчета; - ПостроительОтчета.ИсточникДанных = ИсточникДанных; - ПостроительОтчета.Выполнить(); - - Возврат ПостроительОтчета.Результат; - -КонецФункции - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index d2df5c676..70d48090e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -69,7 +69,7 @@ КонецЕсли; Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда - ЮТОбщийСлужебныйВызовСервера.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); + ЮТТестовыеДанныеСлужебныйСервер.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); КонецЕсли; НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 1f5a72029..f0bafed13 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -44,7 +44,7 @@ КонецЕсли; КонецЕсли; - Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); + Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); Возврат Ссылка; @@ -73,7 +73,7 @@ Данные.Удалить("РежимЗаписи"); КонецЕсли; - Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); + Ссылка = ЮТТестовыеДанныеСлужебный.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, Ложь); Возврат Ссылка; @@ -524,7 +524,11 @@ // Результат = СлучайноеЗначениеПеречисления(Перечисление); // Результат будет содержать одно из значений перечисления "Пол" (Мужской, Женский). Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт +#Если Сервер Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.СлучайноеЗначениеПеречисления(Перечисление); +#Иначе Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеЗначениеПеречисления(Перечисление); +#КонецЕсли КонецФункции @@ -546,7 +550,11 @@ // // объекта конфигурации "ВидыЦен" непомеченное на удаление". Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт +#Если Сервер Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); +#Иначе Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); +#КонецЕсли КонецФункции @@ -565,14 +573,12 @@ // Результат = СлучайныйНомерТелефона(); // Результат будет содержать случайный номер телефона в формате "+7(XXX)XXX-XX-XX". // Результат = СлучайныйНомерТелефона("666"); // Результат будет содержать случайный номер телефона в формате "+666(XXX)XXX-XX-XX". Функция СлучайныйНомерТелефона(КодСтраны = "7") Экспорт - Результат = СтрШаблон( - "+%1(%2)%3-%4-%5", - ?(ПустаяСтрока(КодСтраны), "7", КодСтраны), - Формат(СлучайноеЧисло(0, 999), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), - Формат(СлучайноеЧисло(0, 999), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), - Формат(СлучайноеЧисло(0, 99), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;"), - Формат(СлучайноеЧисло(0, 99), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;") - ); + Результат = СтрШаблон("+%1(%2)%3-%4-%5", + ?(ПустаяСтрока(КодСтраны), "7", КодСтраны), + Формат(СлучайноеЧисло(0, 999), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), + Формат(СлучайноеЧисло(0, 999), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), + Формат(СлучайноеЧисло(0, 99), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;"), + Формат(СлучайноеЧисло(0, 99), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;")); Возврат Результат; @@ -858,10 +864,16 @@ // Привилегированно - Булево - Выполнить удаление в привилегированном режиме (без учета прав на объекты) Процедура Удалить(Ссылки, Привилегированно = Ложь) Экспорт - Если ЗначениеЗаполнено(Ссылки) Тогда - ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки, Привилегированно); + Если НЕ ЗначениеЗаполнено(Ссылки) Тогда + Возврат; КонецЕсли; +#Если Сервер Тогда + ЮТТестовыеДанныеСлужебныйСервер.Удалить(Ссылки, Привилегированно); +#Иначе + ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки, Привилегированно); +#КонецЕсли + КонецПроцедуры // Возвращает объект подражателя для формирования осмысленных тестовых данных @@ -907,12 +919,23 @@ ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОписанияТипов, "Структура, Соответствие", "ЮТТестовыеДанные.ЗагрузитьИзМакета", "ОписанияТипов"); - Возврат ЮТТестовыеДанныеСлужебный.ЗагрузитьИзМакета(Макет, - ОписанияТипов, - КэшЗначений, - ЗаменяемыеЗначения, - ПараметрыСозданияОбъектов, - ТаблицаЗначений); + ПараметрыЗаполнения = ЮТФабрикаСлужебный.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов); + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.ЗагрузитьИзМакета(Макет, + ОписанияТипов, + КэшЗначений, + ЗаменяемыеЗначения, + ПараметрыЗаполнения, + ТаблицаЗначений); +#Иначе + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ЗагрузитьИзМакета(Макет, + ОписанияТипов, + КэшЗначений, + ЗаменяемыеЗначения, + ПараметрыЗаполнения, + ТаблицаЗначений); +#КонецЕсли КонецФункции @@ -958,7 +981,11 @@ // Длительность - Число - Длительность блокировки в секундах Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность = 30) Экспорт +#Если Сервер Тогда + ЮТТестовыеДанныеСлужебныйСервер.УстановитьФоновуюБлокировку(Блокировка, Длительность); +#Иначе ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьФоновуюБлокировку(Блокировка, Длительность); +#КонецЕсли КонецПроцедуры @@ -970,7 +997,7 @@ // Ссылка - ЛюбаяСсылка // ИмяРеквизита - Строка // ЗначениеРеквизита - Произвольный -// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи +// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи Процедура УстановитьЗначениеРеквизита(Ссылка, ИмяРеквизита, ЗначениеРеквизита, ПараметрыЗаписи = Неопределено) Экспорт Значения = Новый Соответствие(); @@ -984,10 +1011,14 @@ // Параметры: // Ссылка - ЛюбаяСсылка - Ссылка // ЗначенияРеквизитов - Структура, Соответствие из Произвольный - Значения реквизитов -// ПараметрыЗаписи - см. ЮТФабрикаСлужебный.ПараметрыЗаписи +// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи = Неопределено) Экспорт +#Если Сервер Тогда + ЮТТестовыеДанныеСлужебныйСервер.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи); +#Иначе ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи); +#КонецЕсли КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index e710b2d76..3628e0674 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -56,7 +56,7 @@ Иначе - Значение = ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения); + Значение = ФикцияЗначенияБазы(Тип, РеквизитыЗаполнения); КонецЕсли; @@ -158,6 +158,56 @@ КонецФункции +Функция ГенераторСлучайныхЧисел() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаГенераторСлучайныхЧисел()); + +КонецФункции + +Функция СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, ВернутьОбъект) Экспорт + +#Если Сервер Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, ВернутьОбъект); +#Иначе + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, ВернутьОбъект); +#КонецЕсли + +КонецФункции + +// Создает новый объект и заполняет его данными +// +// Параметры: +// Менеджер - Произвольный +// Данные - Структура - Данные заполнения объекта +// ДополнительныеСвойства - Структура - Дополнительные свойства объекта +// УникальныйИдентификаторСсылки - УникальныйИдентификатор - Уникальный идентификатор, который будет установлен в качестве ссылки для объекта +// +// Возвращаемое значение: +// Произвольный - Созданный объект +Функция НовыйОбъект(Менеджер, Данные, ДополнительныеСвойства = Неопределено, УникальныйИдентификаторСсылки = Неопределено) Экспорт + +#Если Сервер Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.НовыйОбъект(Менеджер, Данные, ДополнительныеСвойства, УникальныйИдентификаторСсылки); +#Иначе + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(Менеджер, Данные, ДополнительныеСвойства, УникальныйИдентификаторСсылки); +#КонецЕсли + +КонецФункции + +Функция ФикцияЗначенияБазы(ТипЗначения, РеквизитыЗаполнения = Неопределено) Экспорт + +#Если Сервер Тогда + Возврат ЮТТестовыеДанныеСлужебныйСервер.ФикцияЗначенияБазы(ТипЗначения, РеквизитыЗаполнения); +#Иначе + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ФикцияЗначенияБазы(ТипЗначения, РеквизитыЗаполнения); +#КонецЕсли + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + #Область ОбработчикиСобытий Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт @@ -192,38 +242,6 @@ #КонецОбласти -Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыСозданияОбъектов, ТаблицаЗначений) Экспорт - - ПараметрыЗаполнения = ЮТФабрикаСлужебный.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов); - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда - Возврат ЮТТестовыеДанныеСлужебныйСервер.ЗагрузитьИзМакета(Макет, - ОписанияТипов, - КэшЗначений, - ЗаменяемыеЗначения, - ПараметрыЗаполнения, - ТаблицаЗначений); -#Иначе - Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.ЗагрузитьИзМакета(Макет, - ОписанияТипов, - КэшЗначений, - ЗаменяемыеЗначения, - ПараметрыЗаполнения, - ТаблицаЗначений); -#КонецЕсли - -КонецФункции - -Функция ГенераторСлучайныхЧисел() Экспорт - - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаГенераторСлучайныхЧисел()); - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - Функция СлучайноЗначениеСистемногоПеречисления(Тип) Менеджер = ЮТМетодыСлужебный.ВычислитьБезопасно(ЮТТипыДанныхСлужебный.ИмяСистемногоПеречисления(Тип)); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index d74e6d831..784a02a2c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -20,138 +20,25 @@ Функция СоздатьЗапись(Знач Менеджер, Знач Данные, Знач ПараметрыЗаписи, Знач ВернутьОбъект) Экспорт - ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); - - Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); - - КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи); - ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); - - Если ВернутьОбъект Тогда - Возврат Объект; - Иначе - Возврат КлючЗаписи; - КонецЕсли; + Возврат ЮТТестовыеДанныеСлужебныйСервер.СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, ВернутьОбъект); КонецФункции -// Создает новый объект и заполняет его данными -// -// Параметры: -// Менеджер - Произвольный -// Данные - Структура - Данные заполнения объекта -// ДополнительныеСвойства - Структура - Дополнительные свойства объекта -// УникальныйИдентификаторСсылки - УникальныйИдентификатор - Уникальный идентификатор, который будет установлен в качестве ссылки для объекта -// -// Возвращаемое значение: -// Произвольный - Созданный объект -Функция НовыйОбъект(Знач Менеджер, - Знач Данные, - Знач ДополнительныеСвойства = Неопределено, - Знач УникальныйИдентификаторСсылки = Неопределено) Экспорт - - ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); - Менеджер = ЮТОбщий.Менеджер(ОписаниеОбъектаМетаданных); - - ЭтоРегистр = ЮТМетаданные.ЭтоРегистр(ОписаниеОбъектаМетаданных); - - Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, Данные); - - Если ДополнительныеСвойства <> Неопределено Тогда - ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); - КонецЕсли; - - Если УникальныйИдентификаторСсылки <> Неопределено И ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда - Ссылка = Менеджер.ПолучитьСсылку(УникальныйИдентификаторСсылки); - Объект.УстановитьСсылкуНового(Ссылка); - КонецЕсли; - - Если ЭтоРегистр Тогда - ЗаполнитьНаборРегистра(Объект, Данные); - Возврат Объект; - КонецЕсли; - - ЗаполнитьЗначенияСвойств(Объект, Данные); - - Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда - - Для Каждого ОписаниеТабличнойЧасти Из ОписаниеОбъектаМетаданных.ТабличныеЧасти Цикл - - ИмяТабличнойЧасти = ОписаниеТабличнойЧасти.Ключ; - Если НЕ Данные.Свойство(ИмяТабличнойЧасти) Тогда - Продолжить; - КонецЕсли; - - Для Каждого Запись Из Данные[ИмяТабличнойЧасти] Цикл - Строка = Объект[ИмяТабличнойЧасти].Добавить(); - ЗаполнитьЗначенияСвойств(Строка, Запись); - КонецЦикла; - - КонецЦикла; - - КонецЕсли; +Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства, Знач УникальныйИдентификаторСсылки) Экспорт - ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); - - Возврат Объект; + Возврат ЮТТестовыеДанныеСлужебныйСервер.НовыйОбъект(Менеджер, Данные, ДополнительныеСвойства, УникальныйИдентификаторСсылки); КонецФункции -Процедура Удалить(Знач Ссылки, Привилегированно = Ложь) Экспорт - - Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда - Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки); - КонецЕсли; - - Ошибки = Новый Массив; - - Если Привилегированно И НЕ ПривилегированныйРежим() Тогда - УстановитьПривилегированныйРежим(Истина); - КонецЕсли; - - Для Каждого Ссылка Из Ссылки Цикл - - УдалитьСсылку(Ссылка, Ошибки); - - КонецЦикла; - - ОбновитьНумерациюОбъектов(); +Процедура Удалить(Знач Ссылки, Знач Привилегированно) Экспорт - Если ЗначениеЗаполнено(Ошибки) Тогда - ВызватьИсключение СтрСоединить(Ошибки, Символы.ПС); - КонецЕсли; + ЮТТестовыеДанныеСлужебныйСервер.Удалить(Ссылки, Привилегированно); КонецПроцедуры -Функция ФикцияЗначенияБазы(Знач ТипЗначения, Знач РеквизитыЗаполнения = Неопределено) Экспорт - - ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения); - - Если ОбъектМетаданных = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - Если Метаданные.Перечисления.Содержит(ОбъектМетаданных) Тогда - - Возврат СлучайноеЗначениеПеречисления(ОбъектМетаданных); - - КонецЕсли; - - ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОбъектМетаданных); - Менеджер = ЮТОбщий.Менеджер(ОбъектМетаданных); - - Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, РеквизитыЗаполнения); - - Если ЗначениеЗаполнено(РеквизитыЗаполнения) Тогда - ЗаполнитьЗначенияСвойств(Объект, РеквизитыЗаполнения); - КонецЕсли; +Функция ФикцияЗначенияБазы(Знач ТипЗначения, Знач РеквизитыЗаполнения) Экспорт - ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); - - КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи()); - ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); - - Возврат КлючЗаписи; + Возврат ЮТТестовыеДанныеСлужебныйСервер.ФикцияЗначенияБазы(ТипЗначения, РеквизитыЗаполнения); КонецФункции @@ -173,97 +60,25 @@ Функция СлучайноеЗначениеПеречисления(Знач Перечисление) Экспорт - Менеджер = ЮТОбщий.Менеджер(Перечисление); - - НомерЗначения = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(Менеджер.Количество()); - Возврат Менеджер.Получить(НомерЗначения - 1); + Возврат ЮТТестовыеДанныеСлужебныйСервер.СлучайноеЗначениеПеречисления(Перечисление); КонецФункции -Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор) Экспорт - - ИмяТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Менеджер); - Условия = ЮТест.Предикат(Отбор) - .Реквизит("Предопределенный").Равно(Истина); - - ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка"); - - Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса); - - Если Данные.Количество() = 1 Тогда - Значение = Данные[0].Ссылка; - ИначеЕсли Данные.Количество() > 1 Тогда - Индекс = ЮТест.Данные().СлучайноеЧисло(0, Данные.Количество() - 1); - Значение = Данные[Индекс].Ссылка; - Иначе - Значение = Неопределено; - КонецЕсли; +Функция СлучайноеПредопределенноеЗначение(Знач Менеджер, Знач Отбор) Экспорт - Возврат Значение; + Возврат ЮТТестовыеДанныеСлужебныйСервер.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); КонецФункции -Процедура УстановитьЗначенияРеквизитов(Знач Ссылка, Знач ЗначенияРеквизитов, Знач ПараметрыЗаписи = Неопределено) Экспорт +Процедура УстановитьЗначенияРеквизитов(Знач Ссылка, Знач ЗначенияРеквизитов, Знач ПараметрыЗаписи) Экспорт - Объект = Ссылка.ПолучитьОбъект(); - ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); - - Для Каждого Элемент Из ЗначенияРеквизитов Цикл - Объект[Элемент.Ключ] = Элемент.Значение; - КонецЦикла; - - ЗаписатьОбъект(Объект, ПараметрыЗаписи); + ЮТТестовыеДанныеСлужебныйСервер.УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи); КонецПроцедуры -Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность) Экспорт - - ОписаниеБлокировки = ОписаниеБлокировки(Блокировка); - Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеБлокировки, Длительность); +Процедура УстановитьФоновуюБлокировку(Знач Блокировка, Знач Длительность) Экспорт - Задание = ФоновыеЗадания.Выполнить("ЮТТестовыеДанныеСлужебныйВызовСервера.УстановитьБлокировку", Параметры); - - Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда - //@skip-check empty-except-statement - Попытка - ФоновыеЗадания.ОжидатьЗавершения(ЮТКоллекции.ЗначениеВМассиве(Задание), 1); - Исключение - // Исключение не интересно - КонецПопытки; - Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.УникальныйИдентификатор); - КонецЕсли; - - Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда - ВызватьИсключение Задание.ИнформацияОбОшибке; - ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда - ВызватьИсключение "Фоновое задание с блокировкой завершилось"; - КонецЕсли; - -КонецПроцедуры - -Процедура УстановитьБлокировку(ОписаниеБлокировки, Длительность) Экспорт - - Блокировка = Новый БлокировкаДанных(); - - Для Каждого ОписаниеЭлемента Из ОписаниеБлокировки Цикл - Элемент = Блокировка.Добавить(); - ЗаполнитьЗначенияСвойств(Элемент, ОписаниеЭлемента, "Область, Режим"); - - Для Каждого ОписаниеПоля Из ОписаниеЭлемента.Поля Цикл - Элемент.УстановитьЗначение(ОписаниеПоля.Поле, ОписаниеПоля.Значение); - КонецЦикла; - КонецЦикла; - - // BSLLS:BeginTransactionBeforeTryCatch-off - // BSLLS:PairingBrokenTransaction-off - // BSLLS:PairingBrokenTransaction-off - НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); - // BSLLS:BeginTransactionBeforeTryCatch-on - // BSLLS:PairingBrokenTransaction-on - // BSLLS:PairingBrokenTransaction-on - //@skip-check lock-out-of-try - Блокировка.Заблокировать(); - ЮТОбщий.Пауза(Длительность); + ЮТТестовыеДанныеСлужебныйСервер.УстановитьФоновуюБлокировку(Блокировка, Длительность); КонецПроцедуры @@ -274,254 +89,3 @@ КонецФункции #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Создать объект. -// -// Параметры: ОписаниеМенеджера - -// См. ОписаниеМенеджера -// Менеджер - Произвольный - Менеджер -// ОписаниеТипа - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных -// Данные - Структура -// Возвращаемое значение: -// Произвольный - Создать объект -Функция СоздатьОбъект(Менеджер, ОписаниеТипа, Данные) - - Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда - - ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТКоллекции.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь)); - Если ЭтоГруппа Тогда - Результат = Менеджер.СоздатьГруппу(); - Иначе - Результат = Менеджер.СоздатьЭлемент(); - КонецЕсли; - - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьДокумент" Тогда - Результат = Менеджер.СоздатьДокумент(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьСчет" Тогда - Результат = Менеджер.СоздатьСчет(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьВидРасчета" Тогда - Результат = Менеджер.СоздатьВидРасчета(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьУзел" Тогда - Результат = Менеджер.СоздатьУзел(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьНаборЗаписей" Тогда - Результат = Менеджер.СоздатьНаборЗаписей(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьМенеджерЗаписи" Тогда - Результат = Менеджер.СоздатьМенеджерЗаписи(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьБизнесПроцесс" Тогда - Результат = Менеджер.СоздатьБизнесПроцесс(); - ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьЗадачу" Тогда - Результат = Менеджер.СоздатьЗадачу(); - Иначе - ВызватьИсключение СтрШаблон("Для %1 не поддерживается создание записей ИБ", ОписаниеТипа.Имя); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Записать объект. -// -// Параметры: -// Объект - Произвольный - Объект -// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи -// -// Возвращаемое значение: -// ЛюбаяСсылка -Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи) - - Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда - Объект.ОбменДанными.Загрузка = Истина; - КонецЕсли; - - Попытка - - Если ПараметрыЗаписи.РежимЗаписи <> Неопределено Тогда - Объект.Записать(ПараметрыЗаписи.РежимЗаписи); - Иначе - Объект.Записать(); - КонецЕсли; - - Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда - Объект.ОбменДанными.Загрузка = Ложь; - КонецЕсли; - - Возврат КлючЗаписи(Объект); - - Исключение - - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект))); - ВызватьИсключение; - - КонецПопытки; - -КонецФункции - -Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных) - - АнглийскийЯзык = ЮТОкружение.ИспользуетсяАнглийскийВстроенныйЯзык(); - ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ"); - ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код"); - ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование"); - - ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа; - Если ОписаниеТипа.Имя = ИмяТипаДокумент Тогда - Если НЕ ЗначениеЗаполнено(Объект.Дата) Тогда - Объект.Дата = ТекущаяДатаСеанса(); - КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.Номер) Тогда - Объект.УстановитьНовыйНомер(); - КонецЕсли; - КонецЕсли; - - УстановитьНовыйКод = ОписаниеОбъектаМетаданных.ОписаниеТипа.УстановитьНовыйКод - И ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод) - И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаКод].Обязательный - И Не ЗначениеЗаполнено(Объект.Код); - - УстановитьНаименование = ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование) - И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный - И НЕ ЗначениеЗаполнено(Объект.Наименование); - - Если УстановитьНовыйКод Тогда - Объект.УстановитьНовыйКод(); - КонецЕсли; - - Если УстановитьНаименование Тогда - РеквизитНаименование = ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование]; - Объект.Наименование = ЮТТестовыеДанные.Фикция(РеквизитНаименование.Тип); - КонецЕсли; - -КонецПроцедуры - -Функция КлючЗаписи(Объект) - - ТипЗначения = ТипЗнч(Объект); - - Если ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда - - Возврат Объект.Ссылка; - - ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМенеджерЗаписи(ТипЗначения) Тогда - - Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Объект); - - КлючевыеРеквизиты = Новый Структура(); - Для Каждого Реквизит Из Описание.Реквизиты Цикл - Если Реквизит.Значение.ЭтоКлюч Тогда - КлючевыеРеквизиты.Вставить(Реквизит.Ключ, Объект[Реквизит.Ключ]); - КонецЕсли; - КонецЦикла; - - Менеджер = ЮТОбщий.Менеджер(Описание); - Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты); - - ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипНабораЗаписей(ТипЗначения) Тогда - - КлючевыеРеквизиты = Новый Структура(); - - Для Каждого ЭлементОтбора Из Объект.Отбор Цикл - КлючевыеРеквизиты.Вставить(ЭлементОтбора.Имя, ЭлементОтбора.Значение); - КонецЦикла; - - Менеджер = ЮТОбщий.Менеджер(Объект); - Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты); - - Иначе - - Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект); - ВызватьИсключение Сообщение; - - КонецЕсли; - -КонецФункции - -Функция ПараметрыЗаписи(ВходящиеПараметрыЗаписи = Неопределено) - - Если ВходящиеПараметрыЗаписи = Неопределено Тогда - Возврат ЮТОбщий.ПараметрыЗаписи(); - Иначе - ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); - ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ВходящиеПараметрыЗаписи); - Возврат ПараметрыЗаписи; - КонецЕсли; - -КонецФункции - -Процедура ЗаполнитьНаборРегистра(Набор, ДанныеЗаписи) - - Запись = Набор.Добавить(); - ЗаполнитьЗначенияСвойств(Запись, ДанныеЗаписи); - - Для Каждого ЭлементОтбора Из Набор.Отбор Цикл - ЭлементОтбора.Установить(Запись[ЭлементОтбора.Имя]); - КонецЦикла; - -КонецПроцедуры - -Процедура УдалитьСсылку(Значение, ОшибкиОбработки) - - ТипЗначения = ТипЗнч(Значение); - - Если Значение = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда - Возврат; - КонецЕсли; - - Попытка - - Если ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда - Если НЕ Значение.ЭтоНовый() Тогда - Значение.Удалить(); - КонецЕсли; - ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда - Объект = Значение.ПолучитьОбъект(); - Если Объект <> Неопределено Тогда - Объект.Удалить(); - КонецЕсли; - Иначе - Менеджер = ЮТОбщий.Менеджер(ТипЗначения); - Запись = Менеджер.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, Значение); - Запись.Прочитать(); - Запись.Удалить(); - КонецЕсли; - - Исключение - - ОшибкиОбработки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Значение, ИнформацияОбОшибке())); - - КонецПопытки; - -КонецПроцедуры - -Функция ОписаниеБлокировки(Блокировка) - - Описание = Новый Массив(); - - Для Каждого Элемент Из Блокировка Цикл - Описание.Добавить(ОписаниеЭлементаБлокировки(Элемент)); - КонецЦикла; - - Возврат Описание; - -КонецФункции - -Функция ОписаниеЭлементаБлокировки(ЭлементБлокировки) - - Описание = Новый Структура; - Описание.Вставить("Область", ЭлементБлокировки.Область); - Описание.Вставить("Режим", ЭлементБлокировки.Режим); - Описание.Вставить("Поля", Новый Массив); - - Для Каждого Поле Из ЭлементБлокировки.Поля Цикл - ОписаниеПоля = Новый Структура; - ОписаниеПоля.Вставить("Поле", Поле.Поле); - ОписаниеПоля.Вставить("Значение", Поле.Значение); - КонецЦикла; - - Возврат Описание; - -КонецФункции - -#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 871127613..872478059 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -18,12 +18,7 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция ЗагрузитьИзМакета(Знач Макет, - Знач ОписанияТипов, - КэшЗначений, - Знач ЗаменяемыеЗначения, - Знач ПараметрыЗаполнения, - Знач ТаблицаЗначений) Экспорт +Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ТаблицаЗначений) Экспорт Таблица = ЗагрузитьВТаблицуИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения); @@ -44,6 +39,238 @@ КонецФункции +Функция ВыборкаИзТабличногоДокумента(ТабличныйДокумент) Экспорт + + Возврат ЗапросКТабличномуДокументу(ТабличныйДокумент).Выбрать(); + +КонецФункции + +Функция ТаблицаИзТабличногоДокумента(ТабличныйДокумент) Экспорт + + Возврат ЗапросКТабличномуДокументу(ТабличныйДокумент).Выгрузить(); + +КонецФункции + +Функция СоздатьЗапись(Менеджер, Данные, ПараметрыЗаписи, ВернутьОбъект) Экспорт + + ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); + + Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); + + КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи); + ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); + + Если ВернутьОбъект Тогда + Возврат Объект; + Иначе + Возврат КлючЗаписи; + КонецЕсли; + +КонецФункции + +Функция НовыйОбъект(Знач Менеджер, Данные, ДополнительныеСвойства, УникальныйИдентификаторСсылки) Экспорт + + ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); + Менеджер = ЮТОбщий.Менеджер(ОписаниеОбъектаМетаданных); + + ЭтоРегистр = ЮТМетаданные.ЭтоРегистр(ОписаниеОбъектаМетаданных); + + Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, Данные); + + Если ДополнительныеСвойства <> Неопределено Тогда + ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); + КонецЕсли; + + Если УникальныйИдентификаторСсылки <> Неопределено И ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда + Ссылка = Менеджер.ПолучитьСсылку(УникальныйИдентификаторСсылки); + Объект.УстановитьСсылкуНового(Ссылка); + КонецЕсли; + + Если ЭтоРегистр Тогда + ЗаполнитьНаборРегистра(Объект, Данные); + Возврат Объект; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Объект, Данные); + + Если ОписаниеОбъектаМетаданных.ОписаниеТипа.ТабличныеЧасти Тогда + + Для Каждого ОписаниеТабличнойЧасти Из ОписаниеОбъектаМетаданных.ТабличныеЧасти Цикл + + ИмяТабличнойЧасти = ОписаниеТабличнойЧасти.Ключ; + Если НЕ Данные.Свойство(ИмяТабличнойЧасти) Тогда + Продолжить; + КонецЕсли; + + Для Каждого Запись Из Данные[ИмяТабличнойЧасти] Цикл + Строка = Объект[ИмяТабличнойЧасти].Добавить(); + ЗаполнитьЗначенияСвойств(Строка, Запись); + КонецЦикла; + + КонецЦикла; + + КонецЕсли; + + ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); + + Возврат Объект; + +КонецФункции + +Процедура Удалить(Ссылки, Привилегированно) Экспорт + + Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда + Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки); + КонецЕсли; + + Ошибки = Новый Массив; + + Если Привилегированно И НЕ ПривилегированныйРежим() Тогда + УстановитьПривилегированныйРежим(Истина); + КонецЕсли; + + Для Каждого Ссылка Из Ссылки Цикл + + УдалитьСсылку(Ссылка, Ошибки); + + КонецЦикла; + + ОбновитьНумерациюОбъектов(); + + Если ЗначениеЗаполнено(Ошибки) Тогда + ВызватьИсключение СтрСоединить(Ошибки, Символы.ПС); + КонецЕсли; + +КонецПроцедуры + +Функция ФикцияЗначенияБазы(ТипЗначения, РеквизитыЗаполнения) Экспорт + + ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения); + + Если ОбъектМетаданных = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Если Метаданные.Перечисления.Содержит(ОбъектМетаданных) Тогда + + Возврат СлучайноеЗначениеПеречисления(ОбъектМетаданных); + + КонецЕсли; + + ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОбъектМетаданных); + Менеджер = ЮТОбщий.Менеджер(ОбъектМетаданных); + + Объект = СоздатьОбъект(Менеджер, ОписаниеОбъектаМетаданных.ОписаниеТипа, РеквизитыЗаполнения); + + Если ЗначениеЗаполнено(РеквизитыЗаполнения) Тогда + ЗаполнитьЗначенияСвойств(Объект, РеквизитыЗаполнения); + КонецЕсли; + + ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных); + + КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи()); + ЮТТестовыеДанныеСлужебный.ДобавитьТестовуюЗапись(КлючЗаписи); + + Возврат КлючЗаписи; + +КонецФункции + +Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт + + Менеджер = ЮТОбщий.Менеджер(Перечисление); + + НомерЗначения = ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(Менеджер.Количество()); + Возврат Менеджер.Получить(НомерЗначения - 1); + +КонецФункции + +Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор) Экспорт + + ИмяТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Менеджер); + Условия = ЮТест.Предикат(Отбор) + .Реквизит("Предопределенный").Равно(Истина); + + ОписаниеЗапроса = ЮТЗапросыСлужебныйКлиентСервер.ОписаниеЗапроса(ИмяТаблицы, Условия, "Ссылка"); + + Данные = ЮТЗапросы.РезультатЗапроса(ОписаниеЗапроса); + + Если Данные.Количество() = 1 Тогда + Значение = Данные[0].Ссылка; + ИначеЕсли Данные.Количество() > 1 Тогда + Индекс = ЮТест.Данные().СлучайноеЧисло(0, Данные.Количество() - 1); + Значение = Данные[Индекс].Ссылка; + Иначе + Значение = Неопределено; + КонецЕсли; + + Возврат Значение; + +КонецФункции + +Процедура УстановитьЗначенияРеквизитов(Ссылка, ЗначенияРеквизитов, ПараметрыЗаписи) Экспорт + + Объект = Ссылка.ПолучитьОбъект(); + ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); + + Для Каждого Элемент Из ЗначенияРеквизитов Цикл + Объект[Элемент.Ключ] = Элемент.Значение; + КонецЦикла; + + ЗаписатьОбъект(Объект, ПараметрыЗаписи); + +КонецПроцедуры + +Процедура УстановитьФоновуюБлокировку(Блокировка, Длительность) Экспорт + + ОписаниеБлокировки = ОписаниеБлокировки(Блокировка); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеБлокировки, Длительность); + + Задание = ФоновыеЗадания.Выполнить("ЮТТестовыеДанныеСлужебныйСервер.УстановитьБлокировку", Параметры); + + Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда + //@skip-check empty-except-statement + Попытка + ФоновыеЗадания.ОжидатьЗавершения(ЮТКоллекции.ЗначениеВМассиве(Задание), 1); + Исключение + // Исключение не интересно + КонецПопытки; + Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.УникальныйИдентификатор); + КонецЕсли; + + Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда + ВызватьИсключение Задание.ИнформацияОбОшибке; + ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда + ВызватьИсключение "Фоновое задание с блокировкой завершилось"; + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьБлокировку(ОписаниеБлокировки, Длительность) Экспорт + + Блокировка = Новый БлокировкаДанных(); + + Для Каждого ОписаниеЭлемента Из ОписаниеБлокировки Цикл + Элемент = Блокировка.Добавить(); + ЗаполнитьЗначенияСвойств(Элемент, ОписаниеЭлемента, "Область, Режим"); + + Для Каждого ОписаниеПоля Из ОписаниеЭлемента.Поля Цикл + Элемент.УстановитьЗначение(ОписаниеПоля.Поле, ОписаниеПоля.Значение); + КонецЦикла; + КонецЦикла; + + // BSLLS:BeginTransactionBeforeTryCatch-off + // BSLLS:PairingBrokenTransaction-off + // BSLLS:PairingBrokenTransaction-off + НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый); + // BSLLS:BeginTransactionBeforeTryCatch-on + // BSLLS:PairingBrokenTransaction-on + // BSLLS:PairingBrokenTransaction-on + //@skip-check lock-out-of-try + Блокировка.Заблокировать(); + ЮТОбщий.Пауза(Длительность); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -75,7 +302,7 @@ ПараметрыЗагрузки = ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения); - Выборка = ЮТОбщийСлужебныйВызовСервера.ВыборкаИзТабличногоДокумента(ДанныеМакета); + Выборка = ВыборкаИзТабличногоДокумента(ДанныеМакета); Пока Выборка.Следующий() Цикл @@ -244,7 +471,7 @@ КонецФункции -Функция ДанныеМакета(Знач Макет) +Функция ДанныеМакета(Макет) ТипПараметра = ТипЗнч(Макет); ДанныеМакета = Неопределено; @@ -585,4 +812,268 @@ #КонецОбласти +Функция ЗапросКТабличномуДокументу(ТабличныйДокумент) + + ВсегоСтрок = ТабличныйДокумент.ВысотаТаблицы; + ВсегоКолонок = ТабличныйДокумент.ШиринаТаблицы; + + Область = ТабличныйДокумент.Область(1, 1, ВсегоСтрок, ВсегоКолонок); + + ИсточникДанных = Новый ОписаниеИсточникаДанных(Область); + ПостроительОтчета = Новый ПостроительОтчета; + ПостроительОтчета.ИсточникДанных = ИсточникДанных; + ПостроительОтчета.Выполнить(); + + Возврат ПостроительОтчета.Результат; + +КонецФункции + +// Создать объект. +// +// Параметры: ОписаниеМенеджера - +// См. ОписаниеМенеджера +// Менеджер - Произвольный - Менеджер +// ОписаниеТипа - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных +// Данные - Структура +// Возвращаемое значение: +// Произвольный - Создать объект +Функция СоздатьОбъект(Менеджер, ОписаниеТипа, Данные) + + Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда + + ЭтоГруппа = ?(Данные = Неопределено, Ложь, ЮТКоллекции.ЗначениеСтруктуры(Данные, "ЭтоГруппа", Ложь)); + Если ЭтоГруппа Тогда + Результат = Менеджер.СоздатьГруппу(); + Иначе + Результат = Менеджер.СоздатьЭлемент(); + КонецЕсли; + + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьДокумент" Тогда + Результат = Менеджер.СоздатьДокумент(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьСчет" Тогда + Результат = Менеджер.СоздатьСчет(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьВидРасчета" Тогда + Результат = Менеджер.СоздатьВидРасчета(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьУзел" Тогда + Результат = Менеджер.СоздатьУзел(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьНаборЗаписей" Тогда + Результат = Менеджер.СоздатьНаборЗаписей(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьМенеджерЗаписи" Тогда + Результат = Менеджер.СоздатьМенеджерЗаписи(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьБизнесПроцесс" Тогда + Результат = Менеджер.СоздатьБизнесПроцесс(); + ИначеЕсли ОписаниеТипа.Конструктор = "СоздатьЗадачу" Тогда + Результат = Менеджер.СоздатьЗадачу(); + Иначе + ВызватьИсключение СтрШаблон("Для %1 не поддерживается создание записей ИБ", ОписаниеТипа.Имя); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Записать объект. +// +// Параметры: +// Объект - Произвольный - Объект +// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи +// +// Возвращаемое значение: +// ЛюбаяСсылка +Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи) + + Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда + Объект.ОбменДанными.Загрузка = Истина; + КонецЕсли; + + Попытка + + Если ПараметрыЗаписи.РежимЗаписи <> Неопределено Тогда + Объект.Записать(ПараметрыЗаписи.РежимЗаписи); + Иначе + Объект.Записать(); + КонецЕсли; + + Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда + Объект.ОбменДанными.Загрузка = Ложь; + КонецЕсли; + + Возврат КлючЗаписи(Объект); + + Исключение + + ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось записать объект `%1` (%2)", Объект, ТипЗнч(Объект))); + ВызватьИсключение; + + КонецПопытки; + +КонецФункции + +Процедура ЗаполнитьБазовыеРеквизиты(Объект, ОписаниеОбъектаМетаданных) + + АнглийскийЯзык = ЮТОкружение.ИспользуетсяАнглийскийВстроенныйЯзык(); + ИмяТипаДокумент = ?(АнглийскийЯзык, "Document", "Документ"); + ИмяРеквизитаКод = ?(АнглийскийЯзык, "Code", "Код"); + ИмяРеквизитаНаименование = ?(АнглийскийЯзык, "Description", "Наименование"); + + ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа; + Если ОписаниеТипа.Имя = ИмяТипаДокумент Тогда + Если НЕ ЗначениеЗаполнено(Объект.Дата) Тогда + Объект.Дата = ТекущаяДатаСеанса(); + КонецЕсли; + Если НЕ ЗначениеЗаполнено(Объект.Номер) Тогда + Объект.УстановитьНовыйНомер(); + КонецЕсли; + КонецЕсли; + + УстановитьНовыйКод = ОписаниеОбъектаМетаданных.ОписаниеТипа.УстановитьНовыйКод + И ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаКод) + И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаКод].Обязательный + И Не ЗначениеЗаполнено(Объект.Код); + + УстановитьНаименование = ОписаниеОбъектаМетаданных.Реквизиты.Свойство(ИмяРеквизитаНаименование) + И ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование].Обязательный + И НЕ ЗначениеЗаполнено(Объект.Наименование); + + Если УстановитьНовыйКод Тогда + Объект.УстановитьНовыйКод(); + КонецЕсли; + + Если УстановитьНаименование Тогда + РеквизитНаименование = ОписаниеОбъектаМетаданных.Реквизиты[ИмяРеквизитаНаименование]; + Объект.Наименование = ЮТТестовыеДанные.Фикция(РеквизитНаименование.Тип); + КонецЕсли; + +КонецПроцедуры + +Функция КлючЗаписи(Объект) + + ТипЗначения = ТипЗнч(Объект); + + Если ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда + + Возврат Объект.Ссылка; + + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоМенеджерЗаписи(ТипЗначения) Тогда + + Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Объект); + + КлючевыеРеквизиты = Новый Структура(); + Для Каждого Реквизит Из Описание.Реквизиты Цикл + Если Реквизит.Значение.ЭтоКлюч Тогда + КлючевыеРеквизиты.Вставить(Реквизит.Ключ, Объект[Реквизит.Ключ]); + КонецЕсли; + КонецЦикла; + + Менеджер = ЮТОбщий.Менеджер(Описание); + Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты); + + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипНабораЗаписей(ТипЗначения) Тогда + + КлючевыеРеквизиты = Новый Структура(); + + Для Каждого ЭлементОтбора Из Объект.Отбор Цикл + КлючевыеРеквизиты.Вставить(ЭлементОтбора.Имя, ЭлементОтбора.Значение); + КонецЦикла; + + Менеджер = ЮТОбщий.Менеджер(Объект); + Возврат Менеджер.СоздатьКлючЗаписи(КлючевыеРеквизиты); + + Иначе + + Сообщение = ЮТИсключения.НеподдерживаемыйПараметрМетода("ЮТТестовыеДанныеВызовСервера.КлючЗаписи", Объект); + ВызватьИсключение Сообщение; + + КонецЕсли; + +КонецФункции + +Функция ПараметрыЗаписи(ВходящиеПараметрыЗаписи = Неопределено) + + Если ВходящиеПараметрыЗаписи = Неопределено Тогда + Возврат ЮТОбщий.ПараметрыЗаписи(); + Иначе + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ВходящиеПараметрыЗаписи); + Возврат ПараметрыЗаписи; + КонецЕсли; + +КонецФункции + +Процедура ЗаполнитьНаборРегистра(Набор, ДанныеЗаписи) + + Запись = Набор.Добавить(); + ЗаполнитьЗначенияСвойств(Запись, ДанныеЗаписи); + + Для Каждого ЭлементОтбора Из Набор.Отбор Цикл + ЭлементОтбора.Установить(Запись[ЭлементОтбора.Имя]); + КонецЦикла; + +КонецПроцедуры + +Процедура УдалитьСсылку(Значение, ОшибкиОбработки) + + ТипЗначения = ТипЗнч(Значение); + + Если Значение = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда + Возврат; + КонецЕсли; + + Попытка + + Если ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда + Если НЕ Значение.ЭтоНовый() Тогда + Значение.Прочитать(); + Значение.Удалить(); + КонецЕсли; + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда + Объект = Значение.ПолучитьОбъект(); + Если Объект <> Неопределено Тогда + Объект.Удалить(); + КонецЕсли; + Иначе + Менеджер = ЮТОбщий.Менеджер(ТипЗначения); + Запись = Менеджер.СоздатьМенеджерЗаписи(); + ЗаполнитьЗначенияСвойств(Запись, Значение); + Запись.Прочитать(); + Запись.Удалить(); + КонецЕсли; + + Исключение + + ОшибкиОбработки.Добавить(ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки("Удаление " + Значение, ИнформацияОбОшибке())); + + КонецПопытки; + +КонецПроцедуры + +Функция ОписаниеБлокировки(Блокировка) + + Описание = Новый Массив(); + + Для Каждого Элемент Из Блокировка Цикл + Описание.Добавить(ОписаниеЭлементаБлокировки(Элемент)); + КонецЦикла; + + Возврат Описание; + +КонецФункции + +Функция ОписаниеЭлементаБлокировки(ЭлементБлокировки) + + Описание = Новый Структура; + Описание.Вставить("Область", ЭлементБлокировки.Область); + Описание.Вставить("Режим", ЭлементБлокировки.Режим); + Описание.Вставить("Поля", Новый Массив); + + Для Каждого Поле Из ЭлементБлокировки.Поля Цикл + ОписаниеПоля = Новый Структура; + ОписаниеПоля.Вставить("Поле", Поле.Поле); + ОписаниеПоля.Вставить("Значение", Поле.Значение); + КонецЦикла; + + Возврат Описание; + +КонецФункции + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" index 42d54d6a4..0b0ee17e5 100644 --- "a/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" +++ "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" @@ -28,4 +28,10 @@ КонецПроцедуры +Процедура Инициализация(ПараметрыЗапуска) Экспорт + + ПомощникТестированияВызовСервера.ПервичнаяНастройка(); + +КонецПроцедуры + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 8881bb991..fbbbefdfd 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -142,9 +142,24 @@ ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); - ЮТест.ОжидаетЧто(ДеревоТестов, "Глобальная настройка") - .НеЗаполнено(); - + Если НЕ ЮТест.Окружение().ТолстыйКлиент Тогда + ЮТест.ОжидаетЧто(ДеревоТестов, "Глобальная настройка (Тонкий клиент)") + .НеЗаполнено(); + Иначе + Утверждение = ЮТест.ОжидаетЧто(ДеревоТестов, "Глобальная настройка (Толстый клиент)") + .Заполнено() + .ИмеетДлину(1) + .Свойство("[0].ИмяКоллекции").Равно("Справочники") + .Свойство("[0].Объекты").ИмеетДлину(1) + .Свойство("[0].Объекты[0].Имя").Равно("Банки"); +#Если ТолстыйКлиентОбычноеПриложение Тогда + Утверждение + .Свойство("[0].Объекты[0].ТипыТестов").ИмеетДлину(5); +#Иначе + Утверждение + .Свойство("[0].Объекты[0].ТипыТестов").ИмеетДлину(2); +#КонецЕсли + КонецЕсли; // Для коллекции метаданных БазоваяНастройка = БазоваяНастройка(); БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("Документы", Новый Структура("УправляемыеФормы", Ложь)); @@ -165,14 +180,14 @@ ДеревоТестов = ДТОткрытиеФормСлужебныйВызовСервера.ТипыТестов(); - ЮТест.ОжидаетЧто(ДеревоТестов, "Настройка для объекта метаданных") + Утверждение = ЮТест.ОжидаетЧто(ДеревоТестов, "Настройка для объекта метаданных") .Заполнено() .Содержит(ЮТест.Предикат().Реквизит("ИмяКоллекции").Равно("Справочники")) - .Свойство("[0].Объекты") - .Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("Валюты")) - .НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("Банки")) - ; - + .Свойство("[0].Объекты"); + Утверждение.Содержит(ЮТест.Предикат().Реквизит("Имя").Равно("Валюты")); +#Если ТонкийКлиент Тогда + Утверждение.НеСодержит(ЮТест.Предикат().Реквизит("Имя").Равно("Банки")); +#КонецЕсли // Для переопределение настройки БазоваяНастройка = БазоваяНастройка(); БазоваяНастройка.ДымовыеТесты.ОткрытиеФорм.Вставить("УправляемыеФормы", Ложь); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 5a66367aa..b0dbbc564 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -31,6 +31,9 @@ Процедура ЛомающийКонтекстТест() Экспорт +#Если ТолстыйКлиентУправляемоеПриложение Или ТолстыйКлиентОбычноеПриложение Тогда + ЮТест.Пропустить("На файловой базе не работает"); +#КонецЕсли ЮТест.ОжидаетЧто(ЮТКонтекстСлужебный.ДанныеКонтекста()) .ЭтоНеНеопределено(); diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index c284acc23..3655c0979 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -21,22 +21,17 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты - .ДобавитьТест("ОписаниеОбъектаМетаданных") + .ДобавитьСерверныйТест("ОписаниеОбъектаМетаданных").СПараметрами(Истина) + .ДобавитьКлиентскийТест("ОписаниеОбъектаМетаданных").СПараметрами(Ложь) .ДобавитьТест("РегистрыДвиженийДокумента") .ДобавитьТест("НормализованноеИмяТаблицы") ; КонецПроцедуры -Процедура ОписаниеОбъектаМетаданных() Экспорт +Процедура ОписаниеОбъектаМетаданных(НаСервере) Экспорт -#Если Сервер Тогда - ДляСервера = Истина; -#Иначе - ДляСервера = Ложь; -#КонецЕсли - - Данные = ПомощникТестированияВызовСервера.ТестовыеДанныеДляОписаниеОбъектаМетаданных(ДляСервера); + Данные = ПомощникТестированияВызовСервера.ТестовыеДанныеДляОписаниеОбъектаМетаданных(НаСервере); Для Каждого Значение Из Данные Цикл diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index a04c2421d..77ddcb620 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -24,9 +24,8 @@ .ДобавитьТест("Пауза") .ДобавитьТест("ВывестиВКонсоль") .ДобавитьТест("ЗначениеСвойства") - .ДобавитьТест("ОписаниеТиповЛюбаяСсылка") .ДобавитьСерверныйТест("Менеджер") - .ДобавитьСерверныйТест("ЗначениеСвойства_Субконто") + .ДобавитьСерверныйТест("ЗначениеСвойства_Субконто").ВТранзакции() ; КонецПроцедуры @@ -91,21 +90,12 @@ КонецПроцедуры -Процедура ОписаниеТиповЛюбаяСсылка() Экспорт - - ЛюбаяСсылка = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); - - ЮТест.ОжидаетЧто(ЛюбаяСсылка) - .ИмеетТип("ОписаниеТипов") - .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Банки"))); - -КонецПроцедуры - #Если Сервер Тогда Процедура ЗначениеСвойства_Субконто() Экспорт Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты); Счет = ЮТест.Данные().КонструкторОбъекта("ПланыСчетов.Основной") + .ФикцияОбязательныхПолей() .Установить("Валютный", Истина) .Установить("Количественный", Истина) .ТабличнаяЧасть("ВидыСубконто") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 256023aa8..ec8e1358e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\270\320\277\321\213\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -58,6 +58,7 @@ .СПараметрами("HTTPСервисЗапрос") .СПараметрами("ОбъектXDTO") .СПараметрами("ОбъектМетаданных") + .ДобавитьТест("ОписаниеТиповЛюбаяСсылка") ; КонецПроцедуры @@ -111,6 +112,16 @@ КонецПроцедуры +Процедура ОписаниеТиповЛюбаяСсылка() Экспорт + + ЛюбаяСсылка = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); + + ЮТест.ОжидаетЧто(ЛюбаяСсылка) + .ИмеетТип("ОписаниеТипов") + .Что(ЛюбаяСсылка.СодержитТип(Тип("СправочникСсылка.Банки"))); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index cc2e86dab..4f0dd9baf 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -58,7 +58,7 @@ .ДобавитьТест("УказаниеПараметровПоУмолчанию") .ДобавитьТест("ИмеетМетод") .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции").ВТранзакции(Ложь) - .ДобавитьТест("ПроверкаМетодаВТранзакцииНаКлиенте", , , "КлиентУправляемоеПриложение") + .ДобавитьТест("ПроверкаМетодаВТранзакцииНаКлиенте", , , "КлиентУправляемоеПриложение").ВТранзакции(Ложь) .ДобавитьСерверныйТест("СравнениеСложныхОбъектов") .ДобавитьТест("ФормированиеСообщения") .ДобавитьТест("НачинаетсяС") @@ -1847,6 +1847,9 @@ Процедура ПроверкаМетодаВТранзакцииНаКлиенте() Экспорт +#Если НЕ ТонкийКлиент Тогда + ЮТест.Пропустить("Только для тонкого клиента"); +#КонецЕсли ОшибкаИспользованияТранзакции = "Использование транзакции доступно только на сервере (толстом клиенте)"; Попытка diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 975fc181a..fc01bd3c8 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -76,14 +76,11 @@ Процедура ПослеВсехТестов() Экспорт ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов"); -#Если Клиент Тогда - ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(24); // Количество вызванных обработчиков событий -#Иначе - ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) - .ИмеетДлину(26); // Количество вызванных обработчиков событий -#КонецЕсли - + + // Нелья точно понять сколько будет тестов для толстого клиента в файловом режиме + ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция").Количество()) + .ВСписке(ЮТКоллекции.ЗначениеВМассиве(24, 26)); + КонецПроцедуры Процедура Пропустить() Экспорт diff --git "a/tests/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 5484f2ee3..c57dc98c1 100644 --- "a/tests/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/tests/src/CommonModules/\320\237\320\276\320\274\320\276\321\211\320\275\320\270\320\272\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -110,4 +110,11 @@ КонецПроцедуры +Процедура ПервичнаяНастройка() Экспорт + + ИнициализироватьПредопределенныеДанные(); + ОбновитьНумерациюОбъектов(); + +КонецПроцедуры + #КонецОбласти From 45b32beff2dbad6ad36f0d92f98a902cdce911b3 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 6 Sep 2024 11:37:58 +0300 Subject: [PATCH 82/86] =?UTF-8?q?test:=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B0=D1=80=D1=82=D0=B8=D1=84=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- tools/docker/onec-server/Dockerfile | 90 ------- tools/local-test/{.env => default.env} | 0 tools/local-test/onec-server/build/Dockerfile | 90 +++++++ .../onec-server/build/build-server.sh | 11 + tools/local-test/onec-server/build/conf.cfg | 1 + .../onec-server/build/docker-entrypoint.sh | 67 +++++ tools/local-test/onec-server/build/logcfg.xml | 9 + .../scripts/create-symlink-to-current-1cv8.sh | 7 + .../onec-server/build/scripts/download_og.sh | 72 ++++++ .../build/scripts/download_yard.sh | 234 ++++++++++++++++++ .../onec-server/build/scripts/install.sh | 78 ++++++ .../onec-server/build/scripts/install_new.sh | 94 +++++++ .../build/scripts/remove-dst-root-ca-x3.sh | 8 + .../onec-server}/docker-compose.yml | 2 +- tools/local-test/scripts/build-artifacts.sh | 27 -- tools/local-test/scripts/convert-to-xml.sh | 13 - tools/local-test/scripts/create-ib.sh | 23 -- .../scripts/{ => lib}/DisableSafeMode.epf | Bin tools/local-test/scripts/lib/prepare-db.sh | 30 +++ tools/local-test/scripts/lib/print.sh | 16 ++ tools/local-test/scripts/lib/run-tests.sh | 38 +++ tools/local-test/scripts/make.sh | 40 --- tools/local-test/scripts/run-tests.sh | 27 -- .../scripts/steps/build-artifacts.sh | 38 +++ .../scripts/steps/clean-outdated.sh | 24 ++ .../scripts/steps/convert-to-xml.sh | 9 + .../scripts/steps/run-filedb-test.sh | 14 ++ .../scripts/steps/run-serverdb-test.sh | 12 + tools/local-test/scripts/test-by-ibcmd.sh | 61 +++++ .../scripts/test-filedb-ordinary.sh | 6 - tools/local-test/scripts/test-filedb-thick.sh | 6 - tools/local-test/scripts/test-filedb-thin.sh | 6 - tools/local-test/scripts/test-it.sh | 65 +++++ 34 files changed, 981 insertions(+), 240 deletions(-) delete mode 100644 tools/docker/onec-server/Dockerfile rename tools/local-test/{.env => default.env} (100%) create mode 100644 tools/local-test/onec-server/build/Dockerfile create mode 100755 tools/local-test/onec-server/build/build-server.sh create mode 100644 tools/local-test/onec-server/build/conf.cfg create mode 100755 tools/local-test/onec-server/build/docker-entrypoint.sh create mode 100644 tools/local-test/onec-server/build/logcfg.xml create mode 100644 tools/local-test/onec-server/build/scripts/create-symlink-to-current-1cv8.sh create mode 100755 tools/local-test/onec-server/build/scripts/download_og.sh create mode 100644 tools/local-test/onec-server/build/scripts/download_yard.sh create mode 100755 tools/local-test/onec-server/build/scripts/install.sh create mode 100644 tools/local-test/onec-server/build/scripts/install_new.sh create mode 100644 tools/local-test/onec-server/build/scripts/remove-dst-root-ca-x3.sh rename tools/{docker => local-test/onec-server}/docker-compose.yml (92%) delete mode 100755 tools/local-test/scripts/build-artifacts.sh delete mode 100755 tools/local-test/scripts/convert-to-xml.sh delete mode 100755 tools/local-test/scripts/create-ib.sh rename tools/local-test/scripts/{ => lib}/DisableSafeMode.epf (100%) create mode 100755 tools/local-test/scripts/lib/prepare-db.sh create mode 100644 tools/local-test/scripts/lib/print.sh create mode 100755 tools/local-test/scripts/lib/run-tests.sh delete mode 100755 tools/local-test/scripts/make.sh delete mode 100755 tools/local-test/scripts/run-tests.sh create mode 100755 tools/local-test/scripts/steps/build-artifacts.sh create mode 100755 tools/local-test/scripts/steps/clean-outdated.sh create mode 100755 tools/local-test/scripts/steps/convert-to-xml.sh create mode 100755 tools/local-test/scripts/steps/run-filedb-test.sh create mode 100755 tools/local-test/scripts/steps/run-serverdb-test.sh create mode 100755 tools/local-test/scripts/test-by-ibcmd.sh delete mode 100755 tools/local-test/scripts/test-filedb-ordinary.sh delete mode 100755 tools/local-test/scripts/test-filedb-thick.sh delete mode 100755 tools/local-test/scripts/test-filedb-thin.sh create mode 100755 tools/local-test/scripts/test-it.sh diff --git a/.gitignore b/.gitignore index e4cb08acb..3ee1e11df 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,5 @@ tests/.settings/* documentation/api/ *.jar /tools/**/distr/ -workpath/ \ No newline at end of file +workpath/ +.env \ No newline at end of file diff --git a/tools/docker/onec-server/Dockerfile b/tools/docker/onec-server/Dockerfile deleted file mode 100644 index efa6c58ea..000000000 --- a/tools/docker/onec-server/Dockerfile +++ /dev/null @@ -1,90 +0,0 @@ -FROM alpine:latest as downloader - -ARG ONEC_USERNAME -ARG ONEC_PASSWORD -ARG ONEC_VERSION -ENV installer_type=server -ENV downloads=downloads/platform83/${ONEC_VERSION} - -COPY ./scripts/download_og.sh /download_og.sh - -WORKDIR /tmp -COPY ./distr ./${downloads} -RUN rm ./${downloads}/.gitkeep \ - && rm -rf ${downloads}/thin.client*.tar.gz \ - && rm -rf ${downloads}/client*.tar.gz \ - && rm -rf ${downloads}/1c_edt*.tar.gz \ - && if [ -z "$(ls -A ${downloads})" ]; then \ - apk --no-cache add bash curl grep tar \ - && set -x \ - && sync; /download_og.sh; \ - fi \ - && rm -rf ${downloads}/*thin*.tar.gz \ - && ls ${downloads} \ - && for file in ${downloads}/*.tar.gz; do tar -xzf "$file"; done \ - && rm -rf ${downloads}/*.* - -FROM debian:bullseye-slim as base - -ARG ONEC_VERSION -ENV installer_type=server -ARG gosu_ver=1.11 -ARG nls_enabled=false -ENV nls=$nls_enabled - -COPY ./scripts/install.sh /install.sh -COPY --from=downloader /tmp/*.* /tmp/ -WORKDIR /tmp - -SHELL ["/bin/bash", "-c"] -RUN ls . \ - && chmod +x /install.sh \ - && sync; /install.sh - -# create symlink to current 1c:enterprise directory -COPY ./scripts/create-symlink-to-current-1cv8.sh /create-symlink-to-current-1cv8.sh -RUN chmod +x /create-symlink-to-current-1cv8.sh \ - && /create-symlink-to-current-1cv8.sh \ - && rm /create-symlink-to-current-1cv8.sh - -ADD https://github.com/tianon/gosu/releases/download/$gosu_ver/gosu-amd64 /bin/gosu - -RUN chmod +x /bin/gosu - -FROM debian:bullseye-slim -LABEL maintainer="Anton Kvashenkin (@jugatsu)" - -ARG onec_uid="999" -ARG onec_gid="999" - -COPY --from=base /opt /opt -COPY --from=base /bin/gosu /bin/gosu - -RUN set -xe \ - && apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - locales \ - imagemagick \ - fontconfig \ - && rm -rf \ - /var/lib/apt/lists/* \ - /var/cache/debconf \ - && localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8 -ENV LANG ru_RU.UTF-8 - -RUN groupadd -r grp1cv8 --gid=$onec_gid \ - && useradd -r -g grp1cv8 --uid=$onec_uid --home-dir=/home/usr1cv8 --shell=/bin/bash usr1cv8 \ - && mkdir -p /var/log/1C /home/usr1cv8/.1cv8/1C/1cv8/conf /opt/1cv8/current/conf \ - && chown -R usr1cv8:grp1cv8 /var/log/1C /home/usr1cv8 - -VOLUME /home/usr1cv8/.1cv8 /var/log/1C - -COPY ./server/logcfg.xml /home/usr1cv8/.1cv8/1C/1cv8/conf -COPY ./server/logcfg.xml /opt/1cv8/current/conf - -COPY ./server/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh -RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat -ENTRYPOINT ["docker-entrypoint.sh"] - -EXPOSE 1540 1541 1545 1560 -CMD ["ragent"] diff --git a/tools/local-test/.env b/tools/local-test/default.env similarity index 100% rename from tools/local-test/.env rename to tools/local-test/default.env diff --git a/tools/local-test/onec-server/build/Dockerfile b/tools/local-test/onec-server/build/Dockerfile new file mode 100644 index 000000000..f905b0bb4 --- /dev/null +++ b/tools/local-test/onec-server/build/Dockerfile @@ -0,0 +1,90 @@ +# Создан на основании https://github.com/firstBitMarksistskaya/onec-docker/blob/feature/first-bit/server/Dockerfile + +# Начало основной стадии сборки +FROM ubuntu:20.04 as installer + +# Копируем скрипты и файлы установки +ARG ONEC_VERSION +ARG gosu_ver=1.11 +ARG nls_enabled=false + +ENV nls=$nls_enabled +ENV installer_type=server + +# Установка зависимостей и настройка локали +RUN apt-get update \ +&& apt-get install -yq \ + procps \ + tzdata \ + debconf-utils \ + curl \ + fontconfig \ + unixodbc \ + ttf-mscorefonts-installer \ + libgsf-1-114 \ + keyboard-configuration \ +&& dpkg-reconfigure -f noninteractive tzdata \ +&& dpkg-reconfigure -f noninteractive keyboard-configuration \ +&& apt-get install -yq geoclue-2.0 gstreamer1.0-plugins-bad \ +&& export LANG=ru_RU.UTF-8 + +COPY ./scripts/install_new.sh /install.sh +COPY ./distr/current /tmp + +WORKDIR /tmp +RUN ls -ona \ + && chmod +x /install.sh \ + && sync; /install.sh + +# Создание символической ссылки на текущую директорию 1C +COPY ./scripts/create-symlink-to-current-1cv8.sh /create-symlink-to-current-1cv8.sh +RUN chmod +x /create-symlink-to-current-1cv8.sh \ + && /create-symlink-to-current-1cv8.sh \ + && rm /create-symlink-to-current-1cv8.sh + +# Установка gosu +ADD https://github.com/tianon/gosu/releases/download/$gosu_ver/gosu-amd64 /bin/gosu +RUN chmod +x /bin/gosu + +# Переход к финальному образу +FROM ubuntu:20.04 +LABEL maintainer="ivanov egor" + +# Создание пользователя и установка локали +ARG onec_uid="999" +ARG onec_gid="999" +COPY --from=installer /opt/1cv8 /opt/1cv8 +COPY --from=installer /bin/gosu /bin/gosu +RUN set -xe \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + locales \ + iproute2 \ + imagemagick \ + fontconfig \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* /var/cache/debconf \ + && localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8 +ENV LANG ru_RU.UTF-8 + +# Настройка группы и пользователя +RUN groupadd -r grp1cv8 --gid=$onec_gid \ + && useradd -r -g grp1cv8 --uid=$onec_uid --home-dir=/home/usr1cv8 --shell=/bin/bash usr1cv8 \ + && mkdir -p /var/log/1C /home/usr1cv8/.1cv8/1C/1cv8/conf /opt/1cv8/current/conf \ + && chown -R usr1cv8:grp1cv8 /var/log/1C /home/usr1cv8 + +# Копирование конфигурационных файлов +COPY ./conf.cfg /home/usr1cv8/.1cv8/1C/1cv8/conf +COPY ./conf.cfg /opt/1cv8/current/conf + +# Установка точки входа и выполнение дополнительных настроек +COPY ./docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh +RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat +RUN chmod +x /usr/local/bin/docker-entrypoint.sh +RUN apt-get update && apt-get install -yq procps +RUN chmod +x /opt/1cv8/current/ragent + +# Настройка точки входа и экспонирование портов +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] +EXPOSE 1540 1541 1545 1560 +CMD ["ragent"] diff --git a/tools/local-test/onec-server/build/build-server.sh b/tools/local-test/onec-server/build/build-server.sh new file mode 100755 index 000000000..4801fe6b7 --- /dev/null +++ b/tools/local-test/onec-server/build/build-server.sh @@ -0,0 +1,11 @@ +WORK_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +source $WORK_PATH/../../.env + +rm -rf $WORK_PATH/distr/current/* +cp -r $WORK_PATH/distr/$ONEC_VERSION/* $WORK_PATH/distr/current/ + +docker build \ + -t onec-server:$ONEC_VERSION \ + -f $WORK_PATH/Dockerfile \ + $WORK_PATH/ \ No newline at end of file diff --git a/tools/local-test/onec-server/build/conf.cfg b/tools/local-test/onec-server/build/conf.cfg new file mode 100644 index 000000000..ba68a95c6 --- /dev/null +++ b/tools/local-test/onec-server/build/conf.cfg @@ -0,0 +1 @@ +DisableUnsafeActionProtection=.* \ No newline at end of file diff --git a/tools/local-test/onec-server/build/docker-entrypoint.sh b/tools/local-test/onec-server/build/docker-entrypoint.sh new file mode 100755 index 000000000..afed3fdba --- /dev/null +++ b/tools/local-test/onec-server/build/docker-entrypoint.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Установка значений по умолчанию +setup_defaults() { + DEFAULT_PORT=1540 + DEFAULT_REGPORT=1541 + DEFAULT_RANGE=1560:1591 + DEFAULT_SECLEVEL=0 + DEFAULT_PINGPERIOD=1000 + DEFAULT_PINGTIMEOUT=5000 + DEFAULT_DEBUG=-tcp + DEFAULT_DEBUGSERVERPORT=1550 + DEFAULT_RAS_PORT=1545 +} + +# Настройка команды запуска ragent +setup_ragent_cmd() { + RAGENT_CMD="gosu usr1cv8 /opt/1cv8/current/ragent" + RAGENT_CMD+=" /port ${PORT:-$DEFAULT_PORT}" + RAGENT_CMD+=" /regport ${REGPORT:-$DEFAULT_REGPORT}" + RAGENT_CMD+=" /range ${RANGE:-$DEFAULT_RANGE}" + RAGENT_CMD+=" /seclev ${SECLEVEL:-$DEFAULT_SECLEVEL}" + RAGENT_CMD+=" /d ${D:-/home/usr1cv8/.1cv8}" + RAGENT_CMD+=" /pingPeriod ${PINGPERIOD:-$DEFAULT_PINGPERIOD}" + RAGENT_CMD+=" /pingTimeout ${PINGTIMEOUT:-$DEFAULT_PINGTIMEOUT}" + RAGENT_CMD+=" /debug ${DEBUG:-$DEFAULT_DEBUG}" + [ -n "$DEBUGSERVERADDR" ] && RAGENT_CMD+=" /debugServerAddr $DEBUGSERVERADDR" + RAGENT_CMD+=" /debugServerPort ${DEBUGSERVERPORT:-$DEFAULT_DEBUGSERVERPORT}" + [ -n "$DEBUGSERVERPWD" ] && RAGENT_CMD+=" /debugServerPwd $DEBUGSERVERPWD" +} + +# Настройка команды запуска ras +setup_ras_cmd() { + RAS_CMD="gosu usr1cv8 /opt/1cv8/current/ras cluster --daemon" + RAS_CMD+=" --port ${RAS_PORT:-$DEFAULT_RAS_PORT}" + RAS_CMD+=" localhost:${PORT:-$DEFAULT_PORT}" +} + +# Изменение прав доступа к директории пользователя +change_directory_permissions() { + chown -R usr1cv8:grp1cv8 /home/usr1cv8 +} + +# Главная функция скрипта +main() { + setup_defaults + change_directory_permissions + + if [ "$1" = "ragent" ]; then + setup_ragent_cmd + setup_ras_cmd + + echo "Запускаем ras с необходимыми параметрами" + echo "Выполняемая команда: $RAS_CMD" + $RAS_CMD 2>&1 & # Запуск ras в фоновом режиме + + echo "Запускаем ragent с необходимыми параметрами" + echo "Выполняемая команда: $RAGENT_CMD" + exec $RAGENT_CMD 2>&1 + else + # Если первый аргумент не 'ragent', выполняем команду, переданную в аргументах + "$@" + fi +} + +# Вызов главной функции +main "$@" diff --git a/tools/local-test/onec-server/build/logcfg.xml b/tools/local-test/onec-server/build/logcfg.xml new file mode 100644 index 000000000..e0a09cd9c --- /dev/null +++ b/tools/local-test/onec-server/build/logcfg.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tools/local-test/onec-server/build/scripts/create-symlink-to-current-1cv8.sh b/tools/local-test/onec-server/build/scripts/create-symlink-to-current-1cv8.sh new file mode 100644 index 000000000..6a8ac58a5 --- /dev/null +++ b/tools/local-test/onec-server/build/scripts/create-symlink-to-current-1cv8.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +platform_path=$(find / -type f -name "1cv8c" -exec dirname {} \; -or -type f -name "1cv8" -exec dirname {} \; -or -type f -name "ragent" -exec dirname {} \; -or -type f -name "crserver" -exec dirname {} \; | uniq) + +mkdir -p /opt/1cv8 \ + && ln -s $platform_path /opt/1cv8/current diff --git a/tools/local-test/onec-server/build/scripts/download_og.sh b/tools/local-test/onec-server/build/scripts/download_og.sh new file mode 100755 index 000000000..c0425a183 --- /dev/null +++ b/tools/local-test/onec-server/build/scripts/download_og.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +if [ -z "$ONEC_USERNAME" ] +then + echo "ONEC_USERNAME not set" + exit 1 +fi + +if [ -z "$ONEC_PASSWORD" ] +then + echo "ONEC_PASSWORD not set" + exit 1 +fi + +if [ -z "$ONEC_VERSION" ] +then + echo "ONEC_VERSION not set" + exit 1 +fi + +ONEC_RELEASE=`echo $ONEC_VERSION | cut -d . -f 3` +echo "Release: "$ONEC_RELEASE + +echo "Downloading Oneget tool from https://github.com/firstBitMarksistskaya/oneget" +curl -L -o oneget.tar.gz https://github.com/firstBitMarksistskaya/oneget/releases/latest/download/oneget_Linux_x86_64.tar.gz \ + && mkdir /tmp/oneget_tool \ + && tar xzf oneget.tar.gz -C /tmp/oneget_tool \ + && rm oneget.tar.gz + +if [ ! -f /tmp/oneget_tool/oneget ]; then + echo "Oneget not found!" + exit 1 +fi + +if [[ "$ONEC_RELEASE" -lt "20" ]]; then + package="deb" + package_installer_type="."$installer_type +else + package="linux" + package_installer_type="" +fi + +case "$installer_type" in + edt) + echo "EDT" + /tmp/oneget_tool/oneget get "edt:linux@"$ONEC_VERSION + ;; + server) + /tmp/oneget_tool/oneget get "platform:"$package$package_installer_type".x64@"$ONEC_VERSION + ;; + server32) + /tmp/oneget_tool/oneget get "platform:"$package${package_installer_type/32/}".x32@"$ONEC_VERSION + ;; + client) + if [[ "$ONEC_RELEASE" -lt "20" ]]; then + /tmp/oneget_tool/oneget get "platform:"$package".server.x64@"$ONEC_VERSION + fi + /tmp/oneget_tool/oneget get "platform:"$package$package_installer_type".x64@"$ONEC_VERSION + ;; + client32) + if [[ "$ONEC_RELEASE" -lt "20" ]]; then + /tmp/oneget_tool/oneget get "platform:"$package".server.x32@"$ONEC_VERSION + fi + /tmp/oneget_tool/oneget get "platform:"$package${package_installer_type/32/}".x32@"$ONEC_VERSION + ;; + thin-client) + /tmp/oneget_tool/oneget get "platform:"$package"."$installer_type".x64@"$ONEC_VERSION + ;; + thin-client32) + /tmp/oneget_tool/oneget get "platform:"$package"."${installer_type/32/}".x32@"$ONEC_VERSION +esac + diff --git a/tools/local-test/onec-server/build/scripts/download_yard.sh b/tools/local-test/onec-server/build/scripts/download_yard.sh new file mode 100644 index 000000000..123ca9339 --- /dev/null +++ b/tools/local-test/onec-server/build/scripts/download_yard.sh @@ -0,0 +1,234 @@ +#!/bin/bash + +# Аргументы скрипта +ONEC_USERNAME=$1 +ONEC_PASSWORD=$2 +ONEC_VERSION=$3 +installer_type=$4 + +if [ "$installer_type" = "edt" ]; then + FOLDER_NAME="DevelopmentTools10" +else + FOLDER_NAME="Platform83" +fi + +DOWNLOADS_PATH=/tmp/downloads/${FOLDER_NAME}/${ONEC_VERSION} + + +# Преобразование версии для различных целей +ONEC_VERSION_DOTS=$ONEC_VERSION +ONEC_VERSION_UNDERSCORES=$(echo $ONEC_VERSION_DOTS | sed 's/\./\_/g') +ESCAPED_VERSION=$(echo $ONEC_VERSION_DOTS | sed 's/\./\\./g') + +# Поищем дистрибутив в папке distr и если он есть скопируем его куда надо и распакуем +copy_distr_to_downloads_path() { + found=1 + found_run_file=1 + case "$installer_type" in + edt) + local edt_pattern="1c_edt_distr_offline_${ONEC_VERSION}_*_linux_x86_64.tar.gz" + # Ищем файлы, соответствующие шаблону + local matching_files=($(ls /distr/$edt_pattern 2> /dev/null)) + if [ ${#matching_files[@]} -gt 0 ]; then + local edt_filename=${matching_files[0]} + echo "Найден локальный дистрибутив: $edt_filename" + cp $edt_filename $DOWNLOADS_PATH/ + found=0 + else + echo "Локального дистрибутива edt не найдено в папке distr" + fi + ;; + server) + local file_name_srv="deb64_$ONEC_VERSION_UNDERSCORES.tar.gz" + local file_name_platform="server64_$ONEC_VERSION_UNDERSCORES.tar.gz" + local file_name_run="setup-full-$ONEC_VERSION_DOTS-x86_64.run" + + if [ -f "/distr/$file_name_srv" ]; then + echo "Найден локальный дистрибутив: $file_name_srv" + cp /distr/$file_name_srv $DOWNLOADS_PATH/ + found=0 + elif [ -f "/distr/$file_name_platform" ]; then + echo "Найден локальный дистрибутив: $file_name_platform" + cp /distr/$file_name_platform $DOWNLOADS_PATH/ + found=0 + elif [ -f "/distr/$file_name_run" ]; then + echo "Найден локальный дистрибутив: $file_name_run" + cp /distr/$file_name_run $DOWNLOADS_PATH/ + found=0 + found_run_file=0 + fi + ;; + server32) + local file_name_srv="deb_$ONEC_VERSION_UNDERSCORES.tar.gz" + local file_name_platform="server32_$ONEC_VERSION_UNDERSCORES.tar.gz" + + if [ -f "/distr/$file_name_srv" ]; then + echo "Найден локальный дистрибутив: $file_name_srv" + cp /distr/$file_name_srv $DOWNLOADS_PATH/ + found=0 + elif [ -f "/distr/$file_name_platform" ]; then + echo "Найден локальный дистрибутив: $file_name_platform" + cp /distr/$file_name_platform $DOWNLOADS_PATH/ + found=0 + fi + ;; + client) + local file_name_deb="client_$ONEC_VERSION_UNDERSCORES.deb64.tar.gz" + local file_name_platform="server64_$ONEC_VERSION_UNDERSCORES.tar.gz" + local file_name_run="setup-full-$ONEC_VERSION_DOTS-x86_64.run" + + if [ -f "/distr/$file_name_deb" ]; then + echo "Найден локальный дистрибутив: $file_name_deb" + cp /distr/$file_name_deb $DOWNLOADS_PATH/ + found=0 + elif [ -f "/distr/$file_name_platform" ]; then + echo "Найден локальный дистрибутив: $file_name_platform" + cp /distr/$file_name_platform $DOWNLOADS_PATH/ + found=0 + elif [ -f "/distr/$file_name_run" ]; then + echo "Найден локальный дистрибутив: $file_name_run" + cp /distr/$file_name_run $DOWNLOADS_PATH/ + found=0 + found_run_file=0 + fi + ;; + esac + + if [ $found -eq 0 ] && [ $found_run_file -eq 1 ] ; then + # Распаковка скачанных файлов (если такие есть) + for file in $DOWNLOADS_PATH/*.tar.gz; do + tar -xzf "$file" -C $DOWNLOADS_PATH + rm -f "$file" + done + fi + + return $found +} + + +check_local_distr() { + + copy_distr_to_downloads_path + found=$? + + if [ $found -ne 0 ]; then + return $found + fi + + check_file + local_distr_found=$? + return $local_distr_found +} + +# Функция для скачивания дистрибутива +download_distr() { + local distr_filter=$1 + + echo "Попытка скачать дистрибутив с фильтром: $distr_filter" + yard releases -u $ONEC_USERNAME -p $ONEC_PASSWORD get \ + --app-filter "$APP_FILTER" \ + --version-filter $ESCAPED_VERSION \ + --path /tmp/downloads \ + --distr-filter "$distr_filter" \ + --download-limit 1 +} + +# Функция проверки наличия нужных файлов после распаковки +check_file() { + found=1 + # Проверяем, появились ли файлы в каталоге + if [ "$installer_type" = "edt" ]; then + # Для edt проверяем наличие специфичного файла + if ls $DOWNLOADS_PATH/1ce-installer-cli 1> /dev/null 2>&1; then + echo "Дистрибутив найден и скачан: $filter" + found=0 + else + echo "Не найден файл 1ce-installer-cli" + echo "Содержимое каталога $DOWNLOADS_PATH:" + ls -l $DOWNLOADS_PATH + fi + elif ls $DOWNLOADS_PATH/*.deb 1> /dev/null 2>&1 || ls $DOWNLOADS_PATH/*.run 1> /dev/null 2>&1; then + echo "Дистрибутив найден и скачан: $filter" + found=0 + else + echo "Не найден дистрибутив по шаблону: $filter" + fi + return $found +} + +# Попытка скачивания дистрибутива для каждого фильтра +try_download() { + + # Определим фильтры для скачивания. Если шаблонов >1 они должны разделяться "|" Скачивается дистрибутив по первому найденному шаблону. + APP_FILTER="Технологическая платформа *8\.3" + case "$installer_type" in + edt) + echo "Скачиваем дистрибутив EDT" + APP_FILTER="1C:Enterprise Development Tools" + DISTR_FILTERS="Дистрибутив для оффлайн установки 1C:EDT для ОС Linux 64 бит|Дистрибутив 1C:EDT для ОС Linux для установки без интернета" + ;; + server) + echo "Скачиваем дистрибутив для установки 64-битного сервера" + DISTR_FILTERS="Технологическая платформа 1С:Предприятия \(64\-bit\) для Linux$|Сервер 1С:Предприятия \(64\-bit\) для DEB-based Linux-систем$" + ;; + server32) + echo "Скачиваем дистрибутив для установки 32-битного сервера" + DISTR_FILTERS="Технологическая платформа 1С:Предприятия для Linux$|Сервер 1С:Предприятия для DEB-based Linux-систем$" + ;; + client) + echo "Скачиваем дистрибутив для установки 64-битного клиента 1с" + DISTR_FILTERS="Технологическая платформа 1С:Предприятия \(64\-bit\) для Linux$|Клиент 1С:Предприятия \(64\-bit\) для DEB-based Linux-систем$" + ;; + client32) + echo "Скачиваем дистрибутив для установки 32-битного клиента 1с" + DISTR_FILTERS="Технологическая платформа 1С:Предприятия для Linux$|Клиент 1С:Предприятия для DEB-based Linux-систем$" + ;; + thin-client) + echo "Скачиваем дистрибутив для установки 32-битного тонкого клиента 1с" + DISTR_FILTERS="Тонкий клиент 1С:Предприятия \(64\-bit\) для DEB-based Linux-систем$|Тонкий клиент 1С:Предприятия \(64\-bit\) для Linux$" + ;; + thin-client32) + echo "Скачиваем дистрибутив для установки 32-битного тонкого клиента 1с" + DISTR_FILTERS="Тонкий клиент 1С:Предприятия для DEB-based Linux-систем$|Тонкий клиент 1С:Предприятия для Linux$" + ;; + esac + + echo $DISTR_FILTERS + local download_success=1 + IFS='|' + read -ra FILTERS <<< "$DISTR_FILTERS" + for filter in "${FILTERS[@]}"; do + download_distr "$filter" + check_file + download_success=$? + if [ $download_success -eq 0 ]; then + break + fi + done + return $download_success +} + +# Удаление ненужных файлов +mkdir -p $DOWNLOADS_PATH +rm -f $DOWNLOADS_PATH/.gitkeep +chmod 777 -R /tmp + +# Проверяем, есть ли дистрибутивы локально +check_local_distr +local_distr_found=$? + +if [ $local_distr_found -ne 0 ]; then + echo "Скачаных дистрибутивов не найдено. Попытаемся скачать через yard." + if [ "$ONEC_VERSION" = "8.3.24.1342" ] || [ "$ONEC_VERSION" = "8.3.24.1368" ]; then + echo "Ошибка: Скачивание версии 8.3.24.1342 и 8.3.24.1368 не поддерживается. Скачайте и распакуйте релиз самостоятельно, и поместите его в папку distr" + exit 1 + else + echo "Версия 1с: $ONEC_VERSION" + fi + try_download + download_attempted=$? + if [ $download_attempted -ne 0 ]; then + echo "Ошибка: не удалось найти дистрибутив ни локально, ни удаленно." + exit 1 + fi +fi diff --git a/tools/local-test/onec-server/build/scripts/install.sh b/tools/local-test/onec-server/build/scripts/install.sh new file mode 100755 index 000000000..6164014c2 --- /dev/null +++ b/tools/local-test/onec-server/build/scripts/install.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +ONEC_RELEASE=`echo $ONEC_VERSION | cut -d . -f 3` +echo "Release: "$ONEC_RELEASE +nls_install="ru" + +if [[ "$ONEC_RELEASE" -lt "20" ]]; then + case "$installer_type" in + edt) + echo "edt" + ;; + server) + if [ "$nls" = true ]; then \ + dpkg -i 1c-enterprise*-{common,server}*.deb; \ + else \ + dpkg -i 1c-enterprise*-{common,server}_*.deb; \ + fi + ;; + server32) + if [ "$nls" = true ]; then \ + dpkg -i 1c-enterprise*-{common,server,ws,crs}*.deb; \ + else \ + dpkg -i 1c-enterprise*-{common,server,ws,crs}_*.deb; \ + fi + ;; + client) + if [ "$nls" = true ]; then \ + dpkg -i 1c-enterprise*-{common,server}_*.deb; \ + dpkg -i 1c-enterprise*-{common,client}*.deb; \ + else \ + dpkg -i 1c-enterprise*-{common,server,client}_*.deb; \ + fi + ;; + client32) + ;; + thin-client) + if [ "$nls" = true ]; then \ + dpkg -i 1c-enterprise83-thin-client*.deb; \ + else \ + dpkg -i 1c-enterprise83-thin-client_*.deb; \ + fi + ;; + thin-client32) + curl --fail -b /tmp/cookies.txt -o thin-client32.tar.gz -L "$THINCLIENT32LINK" + esac +else + if [ "$nls" = true ]; then + nls_install="az,ar,hy,bg,hu,el,vi,ka,kk,zh,it,es,lv,lt,de,pl,ro,ru,tr,tk,fr,uk" + else + nls_install="ru" + fi + case "$installer_type" in + edt) + echo "edt" + ;; + server) + set -x + echo $nls_install + ./setup-full-${ONEC_VERSION}-x86_64.run --mode unattended --enable-components server,ws,$nls_install + ;; + server32) + ./setup-full-${ONEC_VERSION}-i386.run --mode unattended --enable-components server,ws,config_storage_server,$nls_install + ;; + client) + ./setup-full-${ONEC_VERSION}-x86_64.run --mode unattended --enable-components server,client_full,$nls_install + ;; + client32) + ./setup-full-${ONEC_VERSION}-i386.run --mode unattended --enable-components server,client_full,$nls_install + ;; + thin-client) + ./setup-thin-${ONEC_VERSION}-x86_64.run --mode unattended --enable-components ru + ;; + thin-client32) + ./setup-thin-${ONEC_VERSION}-i386.run --mode unattended --enable-components ru + ;; + + esac +fi diff --git a/tools/local-test/onec-server/build/scripts/install_new.sh b/tools/local-test/onec-server/build/scripts/install_new.sh new file mode 100644 index 000000000..85a95a830 --- /dev/null +++ b/tools/local-test/onec-server/build/scripts/install_new.sh @@ -0,0 +1,94 @@ +#!/bin/bash + +# Установка из .deb пакетов +install_from_deb() { + + case "$installer_type" in + server) + if [ "$nls" = true ]; then + dpkg -i 1c-enterprise*-{common,server}*.deb + else + dpkg -i 1c-enterprise*-{common,server}_*.deb + fi + ;; + server_crs) + if [ "$nls" = true ]; then + dpkg -i "1c-enterprise*-{common,server,ws,crs}*.deb" + else + dpkg -i "1c-enterprise*-{common,server,ws,crs}_*.deb" + fi + ;; + client) + if [ "$nls" = true ]; then + dpkg -i "1c-enterprise*-{common,server,client}*.deb" + else + dpkg -i "1c-enterprise*-{common,server,client}_*.deb" + fi + ;; + thin-client) + if [ "$nls" = true ]; then + dpkg -i "1c-enterprise83-thin-client*.deb" + else + dpkg -i "1c-enterprise83-thin-client_*.deb" + fi + ;; + esac +} +# Установка из .run файла +install_from_run() { + local run_components="" + local run_file=$(ls *.run | head -1) + + if [ -z "$run_file" ]; then + echo "Не найден файл установки .run" + exit 1 + fi + + chmod +x "$run_file" + + if [ "$nls" = true ]; then + nls_install="az,ar,hy,bg,hu,el,vi,ka,kk,zh,it,es,lv,lt,de,pl,ro,ru,tr,tk,fr,uk" + else + nls_install="ru" + fi + + case "$installer_type" in + server) + run_components="server,ws,config_storage_server,$nls_install" + ;; + server_crs) + run_components="server,ws,config_storage_server,$nls_install" + ;; + client) + run_components="server,client_full,$nls_install" + ;; + client32) + run_components="server,client_full,$nls_install" + ;; + thin-client) + run_components="ru" + ;; + thin-client32) + run_components="ru" + ;; + esac + + if [ -n "$run_components" ]; then + ./"$run_file" --mode unattended --enable-components $run_components + else + echo "Не указаны компоненты для установки" + exit 1 + fi +} + +# Определяем, есть ли .deb файлы +if ls *.deb 1> /dev/null 2>&1; then + echo "Установка из .deb пакетов" + install_from_deb +elif ls *.run 1> /dev/null 2>&1; then + echo "Установка из .run файла" + install_from_run +else + echo "Не найдены файлы установки" + exit 1 +fi \ No newline at end of file diff --git a/tools/local-test/onec-server/build/scripts/remove-dst-root-ca-x3.sh b/tools/local-test/onec-server/build/scripts/remove-dst-root-ca-x3.sh new file mode 100644 index 000000000..5c56ddcb5 --- /dev/null +++ b/tools/local-test/onec-server/build/scripts/remove-dst-root-ca-x3.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e + +FILE=/usr/share/ca-certificates/mozilla/DST_Root_CA_X3.crt +if [[ -f "$FILE" ]]; then + rm -r $FILE + update-ca-certificates +fi diff --git a/tools/docker/docker-compose.yml b/tools/local-test/onec-server/docker-compose.yml similarity index 92% rename from tools/docker/docker-compose.yml rename to tools/local-test/onec-server/docker-compose.yml index 93e1772f4..2eade4d2d 100644 --- a/tools/docker/docker-compose.yml +++ b/tools/local-test/onec-server/docker-compose.yml @@ -1,6 +1,6 @@ services: onec-server: - image: onec-server:${echo } + image: onec-server:${ONEC_VERSION} container_name: onec-server restart: always depends_on: diff --git a/tools/local-test/scripts/build-artifacts.sh b/tools/local-test/scripts/build-artifacts.sh deleted file mode 100755 index 0b9e51e94..000000000 --- a/tools/local-test/scripts/build-artifacts.sh +++ /dev/null @@ -1,27 +0,0 @@ -TEMP_DB_PATH=$TMP_PATH/file-db -rm -rf $TEMP_DB_PATH/* -rm -rf $$BINARY_PATH/* - -echo "=========== Создание информационной базы" -$ONEC_PATH/ibcmd infobase create --db-path=$TEMP_DB_PATH --import=$EXPORT_PATH/configuration --apply --force - -echo "=========== Импорт расширения Smoke" -$ONEC_PATH/ibcmd infobase config import --db-path=$TEMP_DB_PATH --extension=Smoke $EXPORT_PATH/smoke - -echo "=========== Импорт расширения tests" -$ONEC_PATH/ibcmd infobase config import --db-path=$TEMP_DB_PATH --extension=tests $EXPORT_PATH/tests - -echo "=========== Импорт расширения YAXUNIT" -$ONEC_PATH/ibcmd infobase config import --db-path=$TEMP_DB_PATH --extension=YAXUNIT $EXPORT_PATH/yaxunit - -echo "=========== Сохрание тестовой конфигурации" -$ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH $BINARY_PATH/configuration.cf - -echo "=========== Сохрание расширения YAxUnit" -$ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH --extension=YAXUNIT $BINARY_PATH/yaxunit.cfe - -echo "=========== Сохрание расширения с тестами" -$ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH --extension=tests $BINARY_PATH/tests.cfe - -echo "=========== Сохрание расширения с дымовыми тестами" -$ONEC_PATH/ibcmd infobase config save --db-path=$TEMP_DB_PATH --extension=Smoke $BINARY_PATH/smoke.cfe diff --git a/tools/local-test/scripts/convert-to-xml.sh b/tools/local-test/scripts/convert-to-xml.sh deleted file mode 100755 index 13906c056..000000000 --- a/tools/local-test/scripts/convert-to-xml.sh +++ /dev/null @@ -1,13 +0,0 @@ -rm -rf $EXPORT_PATH/* - -echo "Конвертация configuration" -$EDT_PATH/1cedtcli -data $TMP_PATH/ws -timeout 300 -command export --configuration-files $EXPORT_PATH/configuration --project $ROOT_PATH/fixtures/demo-configuration - -echo "Конвертация yaxunit" -$EDT_PATH/1cedtcli -data $TMP_PATH/ws -timeout 300 -command export --configuration-files $EXPORT_PATH/yaxunit --project $ROOT_PATH/exts/yaxunit - -echo "Конвертация smoke" -$EDT_PATH/1cedtcli -data $TMP_PATH/ws -timeout 300 -command export --configuration-files $EXPORT_PATH/smoke --project $ROOT_PATH/exts/smoke - -echo "Конвертация тесты" -$EDT_PATH/1cedtcli -data $TMP_PATH/ws -timeout 300 -command export --configuration-files $EXPORT_PATH/tests --project $ROOT_PATH/tests diff --git a/tools/local-test/scripts/create-ib.sh b/tools/local-test/scripts/create-ib.sh deleted file mode 100755 index 146a7d279..000000000 --- a/tools/local-test/scripts/create-ib.sh +++ /dev/null @@ -1,23 +0,0 @@ -CONNECTION_STRING=$1 -JOB_NAME=$2 - -BASE_ARGUMENTS="$CONNECTION_STRING /DisableStartupDialogs /DisableStartupMessages" -DESIGNER_COMMAND="$ONEC_PATH/1cv8 DESIGNER $BASE_ARGUMENTS" - -echo "=========== Создание информационной базы ($JOB_NAME)" -$ONEC_PATH/1cv8 CREATEINFOBASE File=$TEMP_DB_PATH - -echo "=========== Загрузка конфигурации ($JOB_NAME)" -$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/configuration.cf /UpdateDBCfg - -echo "=========== Загрузка расширения YAXUNIT ($JOB_NAME)" -$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/yaxunit.cfe -Extension YAXUNIT /UpdateDBCfg - -echo "=========== Загрузка расширения tests ($JOB_NAME)" -$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/tests.cfe -Extension tests /UpdateDBCfg - -echo "=========== Загрузка расширения Smoke ($JOB_NAME)" -$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/smoke.cfe -Extension Smoke /UpdateDBCfg - -echo "=========== Снятие безопасного режима ($JOB_NAME)" -$ONEC_PATH/1cv8 ENTERPRISE $BASE_ARGUMENTS /Execute $SCRIPTPATH/DisableSafeMode.epf diff --git a/tools/local-test/scripts/DisableSafeMode.epf b/tools/local-test/scripts/lib/DisableSafeMode.epf similarity index 100% rename from tools/local-test/scripts/DisableSafeMode.epf rename to tools/local-test/scripts/lib/DisableSafeMode.epf diff --git a/tools/local-test/scripts/lib/prepare-db.sh b/tools/local-test/scripts/lib/prepare-db.sh new file mode 100755 index 000000000..e850f87df --- /dev/null +++ b/tools/local-test/scripts/lib/prepare-db.sh @@ -0,0 +1,30 @@ +CONNECTION_STRING=$1 +JOB_NAME=$2 + +BASE_ARGUMENTS="$CONNECTION_STRING /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log" +DESIGNER_COMMAND="$ONEC_PATH/1cv8 DESIGNER $BASE_ARGUMENTS" + +echo "=========== Загрузка конфигурации ($JOB_NAME)" +$DESIGNER_COMMAND /LoadCfg $BINARY_PATH/configuration.cf /UpdateDBCfg +SUCCESS=$? +cat $TMP_PATH/$JOB_NAME.log + +EXTENSIONS_SET=("smoke" "tests" "yaxunit") + +for key in "${EXTENSIONS_SET[@]}";do + if [[ $SUCCESS -eq 0 ]]; then + echo "=========== Загрузка расширения $key ($JOB_NAME)" + $DESIGNER_COMMAND /LoadCfg $BINARY_PATH/$key.cfe -Extension $key /UpdateDBCfg + SUCCESS=$? + cat $TMP_PATH/$JOB_NAME.log + fi +done + +if [[ $SUCCESS -eq 0 ]]; then + echo "=========== Снятие безопасного режима ($JOB_NAME)" + $ONEC_PATH/1cv8 ENTERPRISE $BASE_ARGUMENTS /Execute $LIB_PATH/DisableSafeMode.epf + SUCCESS=$? + cat $TMP_PATH/$JOB_NAME.log +fi + +exit $SUCCESS \ No newline at end of file diff --git a/tools/local-test/scripts/lib/print.sh b/tools/local-test/scripts/lib/print.sh new file mode 100644 index 000000000..77568ee32 --- /dev/null +++ b/tools/local-test/scripts/lib/print.sh @@ -0,0 +1,16 @@ +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +function print_success { + echo -e "${GREEN}#${NC} $1" +} + +function print_error { + echo -e "${RED}#${NC} $1" +} + +function print_warn { + echo -e "${YELLOW}#${NC} $1" +} \ No newline at end of file diff --git a/tools/local-test/scripts/lib/run-tests.sh b/tools/local-test/scripts/lib/run-tests.sh new file mode 100755 index 000000000..3455ba143 --- /dev/null +++ b/tools/local-test/scripts/lib/run-tests.sh @@ -0,0 +1,38 @@ +. $LIB_PATH/print.sh + +MODE=$1 +CONNECTION_STRING=$2 +JOB_NAME=$3 + +CONFIG=$TMP_PATH/yaxunit-config-$JOB_NAME.json + +case "$MODE" in + "Ordinary" ) APP=1cv8; RUN_MODE="/RunModeOrdinaryApplication";; + "Thick" ) APP=1cv8; RUN_MODE="/RunModeManagedApplication";; + "Thin" ) APP=1cv8c;; +esac + +cat >$CONFIG </dev/null 2>&1 ; pwd -P )" - -source $SCRIPTPATH/../.env - -export EDT_PATH=/opt/1C/1CE/components/1c-edt-$EDT_VERSION-x86_64 -export ONEC_PATH=/opt/1cv8/x86_64/$ONEC_VERSION - -export WORK_PATH=$(realpath $SCRIPTPATH/../workpath) -export ROOT_PATH=$(realpath $SCRIPTPATH/../../../) - -export TMP_PATH=$WORK_PATH/tmp -export DB_PATH=$WORK_PATH/file-db -export EXPORT_PATH=$WORK_PATH/export -export BINARY_PATH=$WORK_PATH/binary -export RESULT_PATH=$WORK_PATH/result - - -mkdir -p $DB_PATH -mkdir -p $EXPORT_PATH -mkdir -p $BINARY_PATH - -mkdir -p $TMP_PATH -mkdir -p $RESULT_PATH - -rm -rf $TMP_PATH/* -rm -rf $RESULT_PATH/* - -cat >~/.1cv8/1C/1cv8/conf/conf.cfg <$CONFIG <$hash_file_name +else + print_success "$PROJECT_NAME, исходники не изменены. Будут использованы существующие артефакты" +fi diff --git a/tools/local-test/scripts/steps/convert-to-xml.sh b/tools/local-test/scripts/steps/convert-to-xml.sh new file mode 100755 index 000000000..2fbaa323f --- /dev/null +++ b/tools/local-test/scripts/steps/convert-to-xml.sh @@ -0,0 +1,9 @@ +PROJECT_NAME=$1 +PROJECT_PATH=$2 + +if [[ -d $EXPORT_PATH/$PROJECT_NAME ]]; then + echo " Конвертация $PROJECT_NAME не требуется" +else + echo " Конвертация $PROJECT_NAME" + $EDT_PATH/1cedtcli -data $TMP_PATH/ws -timeout 300 -command export --configuration-files $EXPORT_PATH/$PROJECT_NAME --project $ROOT_PATH/$PROJECT_PATH +fi diff --git a/tools/local-test/scripts/steps/run-filedb-test.sh b/tools/local-test/scripts/steps/run-filedb-test.sh new file mode 100755 index 000000000..121945315 --- /dev/null +++ b/tools/local-test/scripts/steps/run-filedb-test.sh @@ -0,0 +1,14 @@ +MODE=$1 +JOB_NAME=${MODE}Application-File +TEST_DB_PATH=$DB_PATH/$MODE +CONNECTION_STRING=/F$TEST_DB_PATH + +rm -rf $TEST_DB_PATH + +echo "=========== Создание информационной базы ($JOB_NAME)" +$ONEC_PATH/1cv8 CREATEINFOBASE File=$TEST_DB_PATH /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log +cat $TMP_PATH/$JOB_NAME.log + +if $LIB_PATH/prepare-db.sh $CONNECTION_STRING $JOB_NAME; then + $LIB_PATH/run-tests.sh $MODE $CONNECTION_STRING $JOB_NAME +fi \ No newline at end of file diff --git a/tools/local-test/scripts/steps/run-serverdb-test.sh b/tools/local-test/scripts/steps/run-serverdb-test.sh new file mode 100755 index 000000000..629275e97 --- /dev/null +++ b/tools/local-test/scripts/steps/run-serverdb-test.sh @@ -0,0 +1,12 @@ +MODE=$1 +JOB_NAME=${MODE}Application-Server +DB_NAME=DB_${MODE}Application +CONNECTION_STRING=/S\"localhost\\$DB_NAME\" + +echo "=========== Создание информационной базы ($JOB_NAME)" +$ONEC_PATH/1cv8 CREATEINFOBASE Srvr=localhost\;Ref=$DB_NAME\;DBMS=PostgreSQL\;DBSrvr=localhost\;DB=$DB_NAME\;DBUID=postgres\;CrSQLDB=Y\;SchJobDn=Y /DisableStartupDialogs /DisableStartupMessages /Out $TMP_PATH/$JOB_NAME.log +cat $TMP_PATH/$JOB_NAME.log + +if $LIB_PATH/prepare-db.sh $CONNECTION_STRING $JOB_NAME; then + $LIB_PATH/run-tests.sh $MODE $CONNECTION_STRING $JOB_NAME +fi \ No newline at end of file diff --git a/tools/local-test/scripts/test-by-ibcmd.sh b/tools/local-test/scripts/test-by-ibcmd.sh new file mode 100755 index 000000000..9377afcdf --- /dev/null +++ b/tools/local-test/scripts/test-by-ibcmd.sh @@ -0,0 +1,61 @@ +source .env + +SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +WORK_PATH=/tmp/yaxunit-test +EDT_PATH=/opt/1C/1CE/components/1c-edt-$EDT_VERSION-x86_64 +ONEC_PATH=/opt/1cv8/x86_64/$ONEC_VERSION +PROJECT_PATH=$SCRIPTPATH/../.. +DB_PATH=$WORK_PATH/file-db +mkdir -p $WORK_PATH + +# echo "Конвертация configuration" +# $EDT_PATH/1cedtcli -data $WORK_PATH/ws -timeout 300 -command export --configuration-files $WORK_PATH/configuration --project $PROJECT_PATH/fixtures/demo-configuration + +# echo "Конвертация yaxunit" +# $EDT_PATH/1cedtcli -data $WORK_PATH/ws -timeout 300 -command export --configuration-files $WORK_PATH/yaxunit --project $PROJECT_PATH/exts/yaxunit + +# echo "Конвертация smoke" +# $EDT_PATH/1cedtcli -data $WORK_PATH/ws -timeout 300 -command export --configuration-files $WORK_PATH/smoke --project $PROJECT_PATH/exts/smoke + +# echo "Конвертация тесты" +# $EDT_PATH/1cedtcli -data $WORK_PATH/ws -timeout 300 -command export --configuration-files $WORK_PATH/tests --project $PROJECT_PATH/tests + +rm -rf $DB_PATH +echo "=========== Создание информационной базы" +$ONEC_PATH/ibcmd infobase create --db-path=$DB_PATH --import=$WORK_PATH/configuration --apply --force + +echo "=========== Импорт расширения Smoke" +$ONEC_PATH/ibcmd infobase config import --db-path=$DB_PATH --extension=Smoke $WORK_PATH/smoke +$ONEC_PATH/ibcmd infobase config apply --db-path=$DB_PATH --extension=Smoke --force + +echo "=========== Импорт расширения tests" +$ONEC_PATH/ibcmd infobase config import --db-path=$DB_PATH --extension=tests $WORK_PATH/tests +$ONEC_PATH/ibcmd infobase config apply --db-path=$DB_PATH --extension=tests --force + +echo "=========== Импорт расширения YAXUNIT" +$ONEC_PATH/ibcmd infobase config import --db-path=$DB_PATH --extension=YAXUNIT $WORK_PATH/yaxunit +$ONEC_PATH/ibcmd infobase config apply --db-path=$DB_PATH --extension=YAXUNIT --force + +$ONEC_PATH/ibcmd infobase config extension update --db-path=$DB_PATH --name=Smoke --safe-mode=no --unsafe-action-protection=no +$ONEC_PATH/ibcmd infobase config extension update --db-path=$DB_PATH --name=tests --safe-mode=no --unsafe-action-protection=no +$ONEC_PATH/ibcmd infobase config extension update --db-path=$DB_PATH --name=YAXUNIT --safe-mode=no --unsafe-action-protection=no + +cat >$WORK_PATH/yaxunit-config.json </dev/null 2>&1 ; pwd -P )" + +source $SCRIPTPATH/../.env + +export EDT_PATH=/opt/1C/1CE/components/1c-edt-$EDT_VERSION-x86_64 +export ONEC_PATH=/opt/1cv8/x86_64/$ONEC_VERSION + +export WORK_PATH=$(realpath $SCRIPTPATH/../workpath) +export ROOT_PATH=$(realpath $SCRIPTPATH/../../../) +export STEPS_PATH=$(realpath $SCRIPTPATH/steps) +export LIB_PATH=$(realpath $SCRIPTPATH/lib) + +export TMP_PATH=$WORK_PATH/tmp +export DB_PATH=$WORK_PATH/file-db +export EXPORT_PATH=$WORK_PATH/export +export BINARY_PATH=$WORK_PATH/binary +export RESULT_PATH=$WORK_PATH/result + +mkdir -p $DB_PATH +mkdir -p $EXPORT_PATH +mkdir -p $BINARY_PATH + +mkdir -p $TMP_PATH +mkdir -p $RESULT_PATH + +rm -rf $TMP_PATH/* +rm -rf $RESULT_PATH/* + +cat >~/.1cv8/1C/1cv8/conf/conf.cfg < Date: Sun, 8 Sep 2024 00:02:38 +0300 Subject: [PATCH 83/86] =?UTF-8?q?test:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=83=D0=BF=D0=B0=D0=B2=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 12 +++--------- ...\265\321\200\320\262\320\265\321\200\320\260.mdo" | 3 ++- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index fbbbefdfd..1e481b90f 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -28,16 +28,10 @@ КонецПроцедуры -Процедура ПередКаждымТестом() Экспорт - - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("__ПараметрыЗапуска", ЮТКонтекстСлужебный.ПараметрыЗапуска()); - -КонецПроцедуры - Процедура ПослеКаждогоТеста() Экспорт - СохраненныеПараметрыЗапуска = ЮТКонтекстСлужебный.ЗначениеКонтекста("__ПараметрыЗапуска"); - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстПараметрыЗапуска", СохраненныеПараметрыЗапуска); + КлиентскиеПараметрыЗапуска = ЮТКонтекстСлужебный.ПараметрыЗапуска(); + ЮТКонтекстСлужебныйВызовСервера.УстановитьЗначениеКонтекста("КонтекстПараметрыЗапуска", КлиентскиеПараметрыЗапуска); КонецПроцедуры @@ -293,7 +287,7 @@ Процедура УстановитьПараметрыДымовыхТестов(ПараметрыЗапуска) - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстПараметрыЗапуска", ПараметрыЗапуска); + ЮТКонтекстСлужебныйВызовСервера.УстановитьЗначениеКонтекста("КонтекстПараметрыЗапуска", ПараметрыЗапуска); КонецПроцедуры #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" index 595bc2689..312c36df1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\224\320\242\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -1,5 +1,6 @@ ОМ_ДТОткрытиеФормСлужебныйВызовСервера - true + true + true From ac517f51bf5eb98f853e7e3e5944e1eebda19b63 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 8 Sep 2024 01:42:11 +0300 Subject: [PATCH 84/86] =?UTF-8?q?fix(sonar):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B7=D0=B0=D0=BC=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Module.bsl" | 2 +- .../Module.bsl" | 2 +- .../Module.bsl" | 11 +- .../Module.bsl" | 65 +++--- .../Module.bsl" | 11 +- .../Module.bsl" | 17 -- .../Module.bsl" | 2 +- .../Module.bsl" | 39 +++- .../Template.mxlx" | 208 ++++++++++++++++++ ...0\265\320\275\321\202\320\276\320\262.mdo" | 8 + tests/src/Configuration/Configuration.mdo | 1 + 11 files changed, 303 insertions(+), 63 deletions(-) create mode 100644 "tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Template.mxlx" create mode 100644 "tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.mdo" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index f0bbd00b4..0fc92afcc 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -273,7 +273,7 @@ КонецФункции -Функция ШаблонУсловия(ВыражениеПредиката, ВыраженияПредикатов, ТипРеквизита) +Функция ШаблонУсловия(ВыражениеПредиката, ВыраженияПредикатов, ТипРеквизита) // BSLLS:CognitiveComplexity-off Выражение = ВыражениеПредиката.ВидСравнения; Отрицание = ЮТПредикатыСлужебныйКлиентСервер.ЭтоВыраженияОтрицания(Выражение); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 5b567dd6d..ea0a1435d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -132,7 +132,7 @@ КонецФункции -Функция ШаблонВыражения(Знач Выражение) Экспорт +Функция ШаблонВыражения(Знач Выражение) Экспорт // BSLLS:CognitiveComplexity-off Отрицание = СтрНачинаетсяС(Выражение, "Не"); Если Отрицание Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 6f97c454f..c1f6e0ba0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,6 +18,15 @@ #Область СлужебныйПрограммныйИнтерфейс +// Проверить тип параметра. +// +// Параметры: +// Значение - Произвольный +// ОжидаемыйТип - Тип, ОписаниеТипов - Ожидаемый тип или описание типа +// - Строка - Имена типов разделенные запятой +// ИмяМетода - Строка +// ИмяПараметра - Строка +// ЕслиУстановлен - Булево - Выполнять проверку только если значение не неопределено Процедура ПроверитьТипПараметра(Значение, ОжидаемыйТип, ИмяМетода, ИмяПараметра, ЕслиУстановлен = Ложь) Экспорт Если ЕслиУстановлен И Значение = Неопределено Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 70d48090e..8f7ea391f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -63,57 +63,64 @@ // https://github.com/vanessa-opensource/add // перенесен из Functest - ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); - Если ТипТабличногоДокумента <> Тип("ТабличныйДокумент") И ТипТабличногоДокумента <> Тип("ПолеТабличногоДокумента") Тогда - ВызватьИсключение "ПолучитьТаблицуЗначенийИзТабличногоДокумента: Требуется тип ТабличныйДокумент или ПолеТабличногоДокумента"; - КонецЕсли; + ЮТПроверкиСлужебный.ПроверитьТипПараметра(ТабличныйДокумент, + Тип("ТабличныйДокумент"), + "ЮТСравнениеСлужебныйСервер.ПолучитьТаблицуЗначенийИзТабличногоДокумента", + "ТабличныйДокумент"); Если УчитыватьТолькоВидимыеКолонки И УчитыватьТолькоВидимыеСтроки Тогда - ЮТТестовыеДанныеСлужебныйСервер.ТаблицаИзТабличногоДокумента(ТипТабличногоДокумента); + ЮТТестовыеДанныеСлужебныйСервер.ТаблицаИзТабличногоДокумента(ТабличныйДокумент); КонецЕсли; - НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; - НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; - НоваяТаблицаЗначений = Новый ТаблицаЗначений; - Колонки = НоваяТаблицаЗначений.Колонки; - ТипСтрока = Новый ОписаниеТипов("Строка"); - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимость колонки определяется по формату первой строки - УчитываемыеКолонки = Новый Массив; - Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл - ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); - - УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; - Если УчитыватьКолонку Тогда - УчитываемыеКолонки.Добавить(НомерКолонки); - ШиринаКолонки = ОбластьКолонки.ШиринаКолонки; - Если ШиринаКолонки <= 1 Тогда - ШиринаКолонки = 1; - КонецЕсли; - ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); - Колонки.Добавить(ИмяКолонки, ТипСтрока, ИмяКолонки, ШиринаКолонки); - КонецЕсли; - КонецЦикла; + УчитываемыеКолонки = УчитываемыеКолонки(ТабличныйДокумент, НоваяТаблицаЗначений, УчитыватьТолькоВидимыеКолонки); ГраницаКолонок = УчитываемыеКолонки.ВГраница(); + НомерПоследнейСтроки = ТабличныйДокумент.ВысотаТаблицы; + Для НомерСтроки = 1 По НомерПоследнейСтроки Цикл - Если УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки, , НомерСтроки).Видимость Тогда + УчитыватьСтроку = УчитыватьТолькоВидимыеСтроки И Не ТабличныйДокумент.Область(НомерСтроки, , НомерСтроки).Видимость; + Если УчитыватьСтроку Тогда Продолжить; КонецЕсли; НоваяСтрока = НоваяТаблицаЗначений.Добавить(); Для Индекс = 0 По ГраницаКолонок Цикл - НомерКолонки = УчитываемыеКолонки[Индекс]; - Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки); + Область = ТабличныйДокумент.Область(НомерСтроки, УчитываемыеКолонки[Индекс]); НоваяСтрока[Индекс] = Область.Текст; КонецЦикла; + КонецЦикла; Возврат НоваяТаблицаЗначений; КонецФункции +Функция УчитываемыеКолонки(ТабличныйДокумент, ТаблицаЗначений, УчитыватьТолькоВидимыеКолонки) + + ТипСтрока = Новый ОписаниеТипов("Строка"); + НомерПоследнейКолонки = ТабличныйДокумент.ШиринаТаблицы; + Колонки = ТаблицаЗначений.Колонки; + + // При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимость колонки определяется по формату первой строки + УчитываемыеКолонки = Новый Массив; + Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл + + ОбластьКолонки = ТабличныйДокумент.Область(1, НомерКолонки); + УчитыватьКолонку = Не УчитыватьТолькоВидимыеКолонки Или ОбластьКолонки.Видимость; + + Если УчитыватьКолонку Тогда + УчитываемыеКолонки.Добавить(НомерКолонки); + ИмяКолонки = "К" + Формат(Колонки.Количество() + 1, "ЧН=; ЧГ=0"); + Колонки.Добавить(ИмяКолонки, ТипСтрока); + КонецЕсли; + КонецЦикла; + + Возврат УчитываемыеКолонки; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index f0bafed13..ac60a1ea0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -573,12 +573,15 @@ // Результат = СлучайныйНомерТелефона(); // Результат будет содержать случайный номер телефона в формате "+7(XXX)XXX-XX-XX". // Результат = СлучайныйНомерТелефона("666"); // Результат будет содержать случайный номер телефона в формате "+666(XXX)XXX-XX-XX". Функция СлучайныйНомерТелефона(КодСтраны = "7") Экспорт + ТриЗнака = 999; + ДваЗнака = 99; + Результат = СтрШаблон("+%1(%2)%3-%4-%5", ?(ПустаяСтрока(КодСтраны), "7", КодСтраны), - Формат(СлучайноеЧисло(0, 999), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), - Формат(СлучайноеЧисло(0, 999), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), - Формат(СлучайноеЧисло(0, 99), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;"), - Формат(СлучайноеЧисло(0, 99), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;")); + Формат(СлучайноеЧисло(0, ТриЗнака), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), + Формат(СлучайноеЧисло(0, ТриЗнака), "ЧЦ=3; ЧН=000; ЧВН=; ЧГ=0;"), + Формат(СлучайноеЧисло(0, ДваЗнака), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;"), + Формат(СлучайноеЧисло(0, ДваЗнака), "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0;")); Возврат Результат; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 872478059..2011de772 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -828,15 +828,6 @@ КонецФункции -// Создать объект. -// -// Параметры: ОписаниеМенеджера - -// См. ОписаниеМенеджера -// Менеджер - Произвольный - Менеджер -// ОписаниеТипа - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных -// Данные - Структура -// Возвращаемое значение: -// Произвольный - Создать объект Функция СоздатьОбъект(Менеджер, ОписаниеТипа, Данные) Если ОписаниеТипа.Конструктор = "СоздатьЭлемент" Тогда @@ -872,14 +863,6 @@ КонецФункции -// Записать объект. -// -// Параметры: -// Объект - Произвольный - Объект -// ПараметрыЗаписи - см. ЮТОбщий.ПараметрыЗаписи -// -// Возвращаемое значение: -// ЛюбаяСсылка Функция ЗаписатьОбъект(Объект, ПараметрыЗаписи) Если ПараметрыЗаписи.ОбменДаннымиЗагрузка Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index a7eafb753..ee8f76c5d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -1850,7 +1850,7 @@ ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); ПараметрыСообщенийОбОшибке = ЮТПредикатыСлужебныйКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, - , + "проверяемое значение", Контекст.ОбъектПроверки.Представление); Результат = ЮТПредикатыСлужебныйКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 3b781bb09..de9c3088a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -164,17 +164,38 @@ Процедура ЗначенияРавны_ТабличныйДокумент() Экспорт - Макет1 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_МакетТестовыхДанных"); - Макет2 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_МакетТестовыхДанных"); - - Макет3 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C10"); - Макет4 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C2:R5C11"); + Равные = ЮТест.Варианты("Область1, Область2") + .Добавить("R2C1:R3C2", "R2C3:R3C4") + .Добавить("R2C1:R2C2", "R2C3:R2C4") + .Добавить("R4C2", "R4C6"); + + Для Каждого Вариант Из Равные.СписокВариантов() Цикл + Макет1 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_СравнениеТабличныхДокументов." + Вариант.Область1); + Макет2 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_СравнениеТабличныхДокументов." + Вариант.Область2); + + Описание = СтрШаблон("Равные области: `%1` и `%2`", Вариант.Область1, Вариант.Область2); + ЮТест.ОжидаетЧто(Макет1, Описание) + .Равно(Макет2); + КонецЦикла; - ЮТест.ОжидаетЧто(Макет1, "Равные макеты") - .Равно(Макет2); + НеРавные = ЮТест.Варианты("Область1, Область2") + .Добавить("R1C1:R4C2", "R1C3:R4C4") + .Добавить("R1C1:R3C2", "R1C3:R3C4") + .Добавить("R2C1:R4C2", "R2C3:R4C4") + .Добавить("R1C2:R2C2", "R1C4:R2C4") + .Добавить("R1C2:R2C2", "R1C4:R2C4") + .Добавить("R1C2:R1C3", "R1C4:R1C5") + .Добавить("R4C2", "R4C4") + ; - ЮТест.ОжидаетЧто(Макет3, "Разные макеты") - .НеРавно(Макет4); + Для Каждого Вариант Из НеРавные.СписокВариантов() Цикл + Макет1 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_СравнениеТабличныхДокументов." + Вариант.Область1); + Макет2 = ЮТОбщий.Макет("ОбщийМакет.ЮТ_СравнениеТабличныхДокументов." + Вариант.Область2); + + Описание = СтрШаблон("Разные области: `%1` и `%2`", Вариант.Область1, Вариант.Область2); + ЮТест.ОжидаетЧто(Макет1, Описание) + .НеРавно(Макет2); + КонецЦикла; КонецПроцедуры diff --git "a/tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Template.mxlx" "b/tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Template.mxlx" new file mode 100644 index 000000000..fd9a7f2ce --- /dev/null +++ "b/tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/Template.mxlx" @@ -0,0 +1,208 @@ + + + + ru + # + + ru + Русский + + + + + 6 + + + 0 + + + 1 + + 0 + + + ru + 1 + + + + + + 3 + + 0 + + + ru + 11 + + + + + + + 1 + + + + + 1 + + + ru + 1 + + + + + + + + 1 + + + 1 + + 0 + + + ru + 2 + + + + + + 3 + + 0 + + + ru + 2 + + + + + + + 1 + + + + + 1 + + + ru + 2 + + + + + + + + 2 + + + 1 + + 0 + + + ru + 3 + + + + + + 3 + + 0 + + + ru + 3 + + + + + + + 1 + + + ru + 1 + + + + + + + 1 + + + ru + 3 + + + + + + + + 3 + + + 1 + + 0 + + + ru + 4 + + + + + + 3 + + 0 + + + ru + 44 + + + + + + + 1 + + + + + 1 + + + ru + 4 + + + + + + + true + 1 + 4 + 4 + + 72 + + \ No newline at end of file diff --git "a/tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.mdo" "b/tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..df2be7afb --- /dev/null +++ "b/tests/src/CommonTemplates/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262/\320\256\320\242_\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\242\320\260\320\261\320\273\320\270\321\207\320\275\321\213\321\205\320\224\320\276\320\272\321\203\320\274\320\265\320\275\321\202\320\276\320\262.mdo" @@ -0,0 +1,8 @@ + + + ЮТ_СравнениеТабличныхДокументов + + ru + Ю т сравнение табличных документов + + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 687fd8036..e6bad0eaa 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -24,6 +24,7 @@ Subsystem.Тесты_ЮТПодключаемыеМодули CommonTemplate.ЮТ_МакетТестовыхДанных + CommonTemplate.ЮТ_СравнениеТабличныхДокументов CommonTemplate.ЮТ_ТестовыеДанныеMarkdown CommonModule.Интеграция CommonModule.НастройкаYAxUnit From 3272ce62c4b49c26777213d57f97d73a1c3dc0c0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 8 Sep 2024 20:55:01 +0300 Subject: [PATCH 85/86] bump version --- exts/yaxunit/src/Configuration/Configuration.mdo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 6293d43c1..caf913f97 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -20,7 +20,7 @@ 8.3.10 AddOn Russian - 24.05 + 24.08 Русский Adopted From 7fe2299b90b2d83c5473e82b845d4f339c80036d Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sun, 8 Sep 2024 20:55:29 +0300 Subject: [PATCH 86/86] =?UTF-8?q?=D0=A1=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/docs/features/smoke/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/documentation/docs/features/smoke/index.md b/documentation/docs/features/smoke/index.md index 423fcd806..c103a2057 100644 --- a/documentation/docs/features/smoke/index.md +++ b/documentation/docs/features/smoke/index.md @@ -2,6 +2,11 @@ В YAxUnit реализована поддержка дымовых тестов. +:::info Разработка использует идеи и наработки следующих проектов +* [yaxunit-smoke](https://github.com/alexandr-yang/yaxunit-smoke) by [@alexandr-yang](https://github.com/alexandr-yang) +* [add](https://github.com/vanessa-opensource/add/tree) +::: + :::warning Черновая реализация Реализация дымовых тестов может быть изменена. :::