From 0e8e15c9c2afb4a56121bfaeb373a76b3251c74f Mon Sep 17 00:00:00 2001 From: David Date: Tue, 27 Oct 2026 11:39:53 +0100 Subject: [PATCH] feat: Implement account deletion functionality with UI and API integration - Added `removeAccessAccount` function to handle account deletion in the database, ensuring no external references exist. - Created `deleteAccount` API function to facilitate account deletion requests from the client. - Developed `AccountDeleteDialog` component for user confirmation before account deletion, integrating with the delete API. - Introduced resource image handling with validation for PNG uploads, including UI components for image selection and preview. - Implemented resource icon template evolution logic to maintain icon bindings without overwriting existing fields. - Added scripts for auditing account deletion and usage checks, ensuring robust testing of the new features. --- .../account-deletion/access-web-tests.log | 10 + .../account-deletion/account-integration.log | 9 + .artifacts/account-deletion/build.log | 49 + .artifacts/account-deletion/changed-check.log | 16 + .artifacts/account-deletion/check.log | 1394 +++++++++++++++++ .artifacts/account-deletion/cleanup-test.mts | 18 + .../account-deletion/companies-typecheck.log | 1 + .../account-deletion/identity-integration.log | 29 + .artifacts/account-deletion/lint.log | 471 ++++++ .../account-deletion/server-typecheck.log | 1 + .artifacts/account-deletion/test.log | 850 ++++++++++ .artifacts/account-deletion/typecheck.log | 29 + .artifacts/account-deletion/usage-tests.log | 10 + .artifacts/account-deletion/validacion.md | 54 + .artifacts/account-deletion/visual.log | 3 + .artifacts/account-usage/build.log | 49 + .artifacts/account-usage/changed-check.log | 1 + .artifacts/account-usage/check.log | 1004 ++++++++++++ .../account-usage/companies-typecheck.log | 1 + .artifacts/account-usage/lint.log | 441 ++++++ .artifacts/account-usage/persistence.log | 9 + .artifacts/account-usage/server-typecheck.log | 1 + .artifacts/account-usage/spacing.log | 7 + .artifacts/account-usage/test.log | 858 ++++++++++ .artifacts/account-usage/tests.log | 10 + .artifacts/account-usage/typecheck.log | 29 + .artifacts/account-usage/validacion.md | 53 + .artifacts/account-usage/visual.log | 4 + apps/server/data/resource-icons/7zip.png | Bin 0 -> 13036 bytes .../LICENSE.dashboard-icons.txt | 201 +++ .../data/resource-icons/LICENSE.powertoys.txt | 21 + .../resource-icons/LICENSE.simple-icons.md | 30 + .../data/resource-icons/adobe-indesign.png | Bin 0 -> 16245 bytes .../resource-icons/adobeacrobatreader.png | Bin 0 -> 16497 bytes .../data/resource-icons/adobeaftereffects.png | Bin 0 -> 11580 bytes .../resource-icons/adobecreativecloud.png | Bin 0 -> 18742 bytes .../data/resource-icons/adobeillustrator.png | Bin 0 -> 9778 bytes .../data/resource-icons/adobephotoshop.png | Bin 0 -> 11011 bytes .../data/resource-icons/adobepremierepro.png | Bin 0 -> 8511 bytes apps/server/data/resource-icons/anydesk.png | Bin 0 -> 4061 bytes apps/server/data/resource-icons/autocad.png | Bin 0 -> 7605 bytes .../data/resource-icons/autodeskrevit.png | Bin 0 -> 10432 bytes apps/server/data/resource-icons/blender.png | Bin 0 -> 31415 bytes apps/server/data/resource-icons/enscape.png | Bin 0 -> 15683 bytes .../server/data/resource-icons/everything.png | Bin 0 -> 930 bytes apps/server/data/resource-icons/filezilla.png | Bin 0 -> 18872 bytes apps/server/data/resource-icons/firefox.png | Bin 0 -> 138935 bytes .../data/resource-icons/google-chrome.png | Bin 0 -> 27894 bytes .../data/resource-icons/libreoffice.png | Bin 0 -> 3796 bytes apps/server/data/resource-icons/macos.png | Bin 0 -> 10329 bytes apps/server/data/resource-icons/manifest.json | 278 ++++ .../data/resource-icons/microsoft-edge.png | Bin 0 -> 100208 bytes .../data/resource-icons/microsoft-office.png | Bin 0 -> 18660 bytes .../resource-icons/microsoft-onedrive.png | Bin 0 -> 24074 bytes .../resource-icons/microsoft-powertoys.png | Bin 0 -> 2720 bytes .../data/resource-icons/microsoft-project.png | Bin 0 -> 20818 bytes .../data/resource-icons/microsoft-teams.png | Bin 0 -> 30728 bytes .../data/resource-icons/microsoft-visio.png | Bin 0 -> 32522 bytes .../data/resource-icons/nitro-pdf-pro.png | Bin 0 -> 1839 bytes .../data/resource-icons/notepadplusplus.png | Bin 0 -> 31402 bytes apps/server/data/resource-icons/powerbi.png | Bin 0 -> 20396 bytes apps/server/data/resource-icons/rustdesk.png | Bin 0 -> 13739 bytes .../data/resource-icons/sketchup-make.png | Bin 0 -> 11299 bytes apps/server/data/resource-icons/slack.png | Bin 0 -> 15964 bytes .../server/data/resource-icons/teamviewer.png | Bin 0 -> 2459 bytes .../data/resource-icons/thunderbird.png | Bin 0 -> 65587 bytes .../resource-icons/visual-studio-code.png | Bin 0 -> 20978 bytes .../data/resource-icons/vlcmediaplayer.png | Bin 0 -> 9346 bytes apps/server/data/resource-icons/whatsapp.png | Bin 0 -> 24795 bytes .../server/data/resource-icons/windows-10.png | Bin 0 -> 5509 bytes .../server/data/resource-icons/windows-11.png | Bin 0 -> 103777 bytes apps/server/data/resource-icons/windows-7.png | Bin 0 -> 245507 bytes apps/server/data/resource-icons/winrar.png | Bin 0 -> 13391 bytes apps/server/data/resource-icons/winscp.png | Bin 0 -> 32812 bytes apps/server/data/resource-icons/zoom.png | Bin 0 -> 11975 bytes apps/server/package.json | 4 +- apps/server/src/access.integration.ts | 59 + .../src/account-deletion.integration.test.ts | 168 ++ apps/server/src/app.ts | 9 + ...obal-operating-systems.integration.test.ts | 43 +- .../src/global-software.integration.test.ts | 50 +- apps/server/src/import-resource-icons.ts | 250 +++ .../http/resource-image-validation.ts | 62 + apps/server/src/rename-workstations.ts | 29 + apps/server/src/resource-images.test.ts | 189 +++ .../src/workstation-names.integration.test.ts | 112 ++ docs/componentes-de-interfaz.md | 55 + docs/cuentas-grupos-y-recursos.md | 9 +- docs/eliminacion-de-registros.md | 17 + docs/iconos-de-recursos.md | 133 ++ docs/plan-de-desarrollo.md | 2 +- docs/puestos-de-trabajo.md | 16 +- docs/recursos-campos-y-plantillas.md | 5 + ...rename-workstations-from-primary-assets.ts | 72 + modules/assets/src/common/locales/en.json | 2 - modules/assets/src/common/locales/es.json | 2 - .../assets/list/asset-workstation.test.tsx | 9 +- .../use-workstation-form-controller.ts | 18 +- .../shared/workstation-name.test.ts | 21 +- .../workstations/shared/workstation-name.ts | 12 +- .../src/api/application/access.repository.ts | 4 + .../src/api/application/access.use-cases.ts | 11 + .../src/api/domain/access/access-error.ts | 2 + .../api/domain/access/access-item.entity.ts | 2 +- .../src/api/domain/access/access-policy.ts | 35 + .../access/access-workspace.aggregate.ts | 6 + .../src/api/domain/access/access.test.ts | 112 +- .../api/infrastructure/http/access.routes.ts | 21 + .../persistence/access-persistence.ts | 20 + .../persistence/remove-access-account.ts | 76 + .../common/dto/request/access.request.dto.ts | 2 + modules/companies/src/common/locales/en.json | 13 +- modules/companies/src/common/locales/es.json | 13 +- .../access/delete/api/delete-account.api.ts | 23 + .../delete/ui/account-delete-dialog.tsx | 47 + .../src/web/access/list/ui/access-row.tsx | 7 + .../web/access/list/ui/access-workspace.tsx | 84 +- .../src/web/access/shared/access.test.tsx | 2 +- .../access/shared/helpers/access-fields.ts | 1 - .../history/ui/application-history-dialog.tsx | 8 +- ...lication-configurations-page-controller.ts | 15 +- .../ui/application-configurations-page.tsx | 9 +- .../application-configuration-form-values.ts | 7 +- .../src/web/shared/client-contracts.test.ts | 28 + .../detail/ui/current-operating-systems.tsx | 3 +- .../history/ui/software-history-dialog.tsx | 8 +- .../list/ui/software-installations-panel.tsx | 21 +- .../helpers/current-operating-systems.ts | 1 + .../helpers/software-installation-options.ts | 8 +- .../detail/ui/environment-content.tsx | 7 +- .../detail/ui/environment-section.tsx | 9 +- .../shared/helpers/work-environment.model.ts | 4 + .../controllers/use-workplace-map-model.ts | 1 + .../detail/helpers/workplace-map-model.ts | 7 +- .../ui/workplace-software-action-dialog.tsx | 1 + .../detail/ui/workplace-software-card.tsx | 6 +- .../ui/workstation-configuration-item.tsx | 9 +- ...kstation-profile-configuration-details.tsx | 7 +- .../detail/ui/workstation-software.tsx | 25 +- .../domain/evolve-resource-icon-templates.ts | 45 + .../src/api/domain/resource-catalog-seed.ts | 18 +- .../src/api/domain/resource-catalog.test.ts | 86 +- .../src/api/domain/resource-definition.ts | 2 +- .../src/api/domain/resource-values.ts | 3 + .../value-objects/resource-values.vo.ts | 5 +- .../persistence/resource-image-migration.ts | 18 + .../resource-inventory-relational.ts | 3 +- .../resource-reference-metadata.ts | 13 +- .../persistence/resource-reference-reader.ts | 5 +- .../resource-revision-specifications.ts | 3 +- modules/resources/src/api/module.ts | 2 + .../dto/shared/application-reference.dto.ts | 2 + modules/resources/src/common/locales/en.json | 9 + modules/resources/src/common/locales/es.json | 9 + .../resources/src/common/resource-image.ts | 101 ++ .../ui/application-coincidences-dialog.tsx | 11 +- .../select/ui/resource-application-picker.tsx | 11 + .../select/ui/resource-application-select.tsx | 30 +- .../detail/ui/global-application-detail.tsx | 9 +- .../list/ui/global-applications-list.tsx | 3 +- .../ui/global-application-coincidences.tsx | 4 +- .../shared/ui/global-application-values.tsx | 7 +- .../ui/operating-system-identity-review.tsx | 3 +- modules/resources/src/web/index.ts | 3 + .../resources/detail/ui/resource-detail.tsx | 10 +- .../detail/ui/resource-revision-history.tsx | 10 +- .../resource-characteristic-columns.ts | 9 +- .../list/helpers/resource-columns.test.tsx | 51 + .../list/ui/company-applications-list.tsx | 7 +- .../list/ui/resource-inventory-table.tsx | 19 +- .../resources/shared/helpers/resource-icon.ts | 13 + .../resource-characteristic-control.test.tsx | 18 + .../ui/resource-characteristic-control.tsx | 69 +- .../shared/ui/resource-image-field.tsx | 141 ++ .../resources/shared/ui/resource-image.tsx | 26 + .../shared/ui/software-product-name.tsx | 19 + package.json | 2 + .../src/components/remote-option-list.tsx | 7 +- .../src/components/select-with-action.tsx | 20 +- .../rdx-ui/src/lib/characteristics-summary.ts | 2 +- .../rdx-ui/src/remote-option-list.test.tsx | 29 + scripts/account-deletion-ui-audit.py | 114 ++ scripts/account-usage-ui-checks.py | 31 + scripts/company-applications-ui-audit.py | 24 +- scripts/global-applications-ui-audit.py | 3 + scripts/global-operating-systems-ui-audit.py | 8 + scripts/global-software-ui-audit.py | 15 +- scripts/resource-image-ui-checks.py | 19 + scripts/resource-scope-test.py | 5 + scripts/visual-audit.py | 6 + 190 files changed, 8839 insertions(+), 197 deletions(-) create mode 100644 .artifacts/account-deletion/access-web-tests.log create mode 100644 .artifacts/account-deletion/account-integration.log create mode 100644 .artifacts/account-deletion/build.log create mode 100644 .artifacts/account-deletion/changed-check.log create mode 100644 .artifacts/account-deletion/check.log create mode 100644 .artifacts/account-deletion/cleanup-test.mts create mode 100644 .artifacts/account-deletion/companies-typecheck.log create mode 100644 .artifacts/account-deletion/identity-integration.log create mode 100644 .artifacts/account-deletion/lint.log create mode 100644 .artifacts/account-deletion/server-typecheck.log create mode 100644 .artifacts/account-deletion/test.log create mode 100644 .artifacts/account-deletion/typecheck.log create mode 100644 .artifacts/account-deletion/usage-tests.log create mode 100644 .artifacts/account-deletion/validacion.md create mode 100644 .artifacts/account-deletion/visual.log create mode 100644 .artifacts/account-usage/build.log create mode 100644 .artifacts/account-usage/changed-check.log create mode 100644 .artifacts/account-usage/check.log create mode 100644 .artifacts/account-usage/companies-typecheck.log create mode 100644 .artifacts/account-usage/lint.log create mode 100644 .artifacts/account-usage/persistence.log create mode 100644 .artifacts/account-usage/server-typecheck.log create mode 100644 .artifacts/account-usage/spacing.log create mode 100644 .artifacts/account-usage/test.log create mode 100644 .artifacts/account-usage/tests.log create mode 100644 .artifacts/account-usage/typecheck.log create mode 100644 .artifacts/account-usage/validacion.md create mode 100644 .artifacts/account-usage/visual.log create mode 100644 apps/server/data/resource-icons/7zip.png create mode 100644 apps/server/data/resource-icons/LICENSE.dashboard-icons.txt create mode 100644 apps/server/data/resource-icons/LICENSE.powertoys.txt create mode 100644 apps/server/data/resource-icons/LICENSE.simple-icons.md create mode 100644 apps/server/data/resource-icons/adobe-indesign.png create mode 100644 apps/server/data/resource-icons/adobeacrobatreader.png create mode 100644 apps/server/data/resource-icons/adobeaftereffects.png create mode 100644 apps/server/data/resource-icons/adobecreativecloud.png create mode 100644 apps/server/data/resource-icons/adobeillustrator.png create mode 100644 apps/server/data/resource-icons/adobephotoshop.png create mode 100644 apps/server/data/resource-icons/adobepremierepro.png create mode 100644 apps/server/data/resource-icons/anydesk.png create mode 100644 apps/server/data/resource-icons/autocad.png create mode 100644 apps/server/data/resource-icons/autodeskrevit.png create mode 100644 apps/server/data/resource-icons/blender.png create mode 100644 apps/server/data/resource-icons/enscape.png create mode 100644 apps/server/data/resource-icons/everything.png create mode 100644 apps/server/data/resource-icons/filezilla.png create mode 100644 apps/server/data/resource-icons/firefox.png create mode 100644 apps/server/data/resource-icons/google-chrome.png create mode 100644 apps/server/data/resource-icons/libreoffice.png create mode 100644 apps/server/data/resource-icons/macos.png create mode 100644 apps/server/data/resource-icons/manifest.json create mode 100644 apps/server/data/resource-icons/microsoft-edge.png create mode 100644 apps/server/data/resource-icons/microsoft-office.png create mode 100644 apps/server/data/resource-icons/microsoft-onedrive.png create mode 100644 apps/server/data/resource-icons/microsoft-powertoys.png create mode 100644 apps/server/data/resource-icons/microsoft-project.png create mode 100644 apps/server/data/resource-icons/microsoft-teams.png create mode 100644 apps/server/data/resource-icons/microsoft-visio.png create mode 100644 apps/server/data/resource-icons/nitro-pdf-pro.png create mode 100644 apps/server/data/resource-icons/notepadplusplus.png create mode 100644 apps/server/data/resource-icons/powerbi.png create mode 100644 apps/server/data/resource-icons/rustdesk.png create mode 100644 apps/server/data/resource-icons/sketchup-make.png create mode 100644 apps/server/data/resource-icons/slack.png create mode 100644 apps/server/data/resource-icons/teamviewer.png create mode 100644 apps/server/data/resource-icons/thunderbird.png create mode 100644 apps/server/data/resource-icons/visual-studio-code.png create mode 100644 apps/server/data/resource-icons/vlcmediaplayer.png create mode 100644 apps/server/data/resource-icons/whatsapp.png create mode 100644 apps/server/data/resource-icons/windows-10.png create mode 100644 apps/server/data/resource-icons/windows-11.png create mode 100644 apps/server/data/resource-icons/windows-7.png create mode 100644 apps/server/data/resource-icons/winrar.png create mode 100644 apps/server/data/resource-icons/winscp.png create mode 100644 apps/server/data/resource-icons/zoom.png create mode 100644 apps/server/src/account-deletion.integration.test.ts create mode 100644 apps/server/src/import-resource-icons.ts create mode 100644 apps/server/src/infrastructure/http/resource-image-validation.ts create mode 100644 apps/server/src/rename-workstations.ts create mode 100644 apps/server/src/resource-images.test.ts create mode 100644 apps/server/src/workstation-names.integration.test.ts create mode 100644 docs/iconos-de-recursos.md create mode 100644 modules/assets/src/api/infrastructure/persistence/rename-workstations-from-primary-assets.ts create mode 100644 modules/companies/src/api/infrastructure/persistence/remove-access-account.ts create mode 100644 modules/companies/src/web/access/delete/api/delete-account.api.ts create mode 100644 modules/companies/src/web/access/delete/ui/account-delete-dialog.tsx create mode 100644 modules/resources/src/api/domain/evolve-resource-icon-templates.ts create mode 100644 modules/resources/src/api/infrastructure/persistence/resource-image-migration.ts create mode 100644 modules/resources/src/common/resource-image.ts create mode 100644 modules/resources/src/web/resources/shared/helpers/resource-icon.ts create mode 100644 modules/resources/src/web/resources/shared/ui/resource-image-field.tsx create mode 100644 modules/resources/src/web/resources/shared/ui/resource-image.tsx create mode 100644 modules/resources/src/web/resources/shared/ui/software-product-name.tsx create mode 100644 scripts/account-deletion-ui-audit.py create mode 100644 scripts/account-usage-ui-checks.py create mode 100644 scripts/resource-image-ui-checks.py diff --git a/.artifacts/account-deletion/access-web-tests.log b/.artifacts/account-deletion/access-web-tests.log new file mode 100644 index 00000000..3a1a0028 --- /dev/null +++ b/.artifacts/account-deletion/access-web-tests.log @@ -0,0 +1,10 @@ +✔ modules/companies/src/web/access/shared/access.test.tsx (4558.908724ms) +✔ modules/companies/src/web/shared/client-contracts.test.ts (1590.633921ms) +ℹ tests 2 +ℹ suites 0 +ℹ pass 2 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 4570.096105 diff --git a/.artifacts/account-deletion/account-integration.log b/.artifacts/account-deletion/account-integration.log new file mode 100644 index 00000000..6bacd8d4 --- /dev/null +++ b/.artifacts/account-deletion/account-integration.log @@ -0,0 +1,9 @@ +✔ MariaDB: borrado de cuentas aislado, histórico propio y referencias externas protegidas (1624.360873ms) +ℹ tests 1 +ℹ suites 0 +ℹ pass 1 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 3315.595432 diff --git a/.artifacts/account-deletion/build.log b/.artifacts/account-deletion/build.log new file mode 100644 index 00000000..3a9ca002 --- /dev/null +++ b/.artifacts/account-deletion/build.log @@ -0,0 +1,49 @@ +$ turbo run build +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/server:build: cache hit, replaying logs c70d0f44e89d3a41 +@metis/server:build: $ tsup --config tsup.config.ts && pnpm check:build +@metis/web:build: cache hit, replaying logs c1a994aa56bdbedb +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/web:build: $ vite build +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/web:build: transforming... +@metis/web:build: ✓ 10092 modules transformed. +@metis/web:build: rendering chunks... +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/server:build: ESM dist/index.js 1.46 MB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/server:build: ESM dist/index.js.map 2.72 MB +@metis/server:build: ESM ⚡️ Build success in 549ms +@metis/server:build: $ node --check dist/index.js +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-D8sQAPMw.css 256.35 kB │ gzip: 39.28 kB +@metis/web:build: dist/assets/workplace-map-canvas-C96elfY2.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-DBWr2ZvO.js 1,858.63 kB │ gzip: 521.01 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 1.23s + + Tasks: 2 successful, 2 total +Cached: 2 cached, 2 total + Time: 88ms >>> FULL TURBO + diff --git a/.artifacts/account-deletion/changed-check.log b/.artifacts/account-deletion/changed-check.log new file mode 100644 index 00000000..17833c56 --- /dev/null +++ b/.artifacts/account-deletion/changed-check.log @@ -0,0 +1,16 @@ +modules/companies/src/web/access/list/ui/access-workspace.tsx:22:17 lint/complexity/noExcessiveCognitiveComplexity ━━━━━━━━━━ + + ! Excessive complexity of 16 detected (max: 15). + + 20 │ import { AccessCell } from "./access-row"; + 21 │ + > 22 │ export function AccessWorkspacePage(props: AccessWorkspacePageProps) { + │ ^^^^^^^^^^^^^^^^^^^ + 23 │ const { scope, people = [] } = props; + 24 │ const [localOperation, setLocalOperation] = useState(); + + i Please refactor this function to reduce its complexity score from 16 to the max allowed complexity 15. + + +Checked 17 files in 28ms. No fixes applied. +Found 1 warning. diff --git a/.artifacts/account-deletion/check.log b/.artifacts/account-deletion/check.log new file mode 100644 index 00000000..467c00e8 --- /dev/null +++ b/.artifacts/account-deletion/check.log @@ -0,0 +1,1394 @@ +$ biome check . +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 96 │ )} + 97 │ > + > 98 │
99 │ ref={ref} + ... + > 104 │ className="flex h-24 items-end justify-between p-4" + > 105 │ > + │ ^ + 106 │ Aa + 107 │ {info && ( + + i Safe fix: Sort the JSX props. + + 97 97 │ > + 98 98 │
+ 106 106 │ Aa + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel. + 6 6 │ // Translucent colors are composited over the backdrop, as the browser would. + 7 7 │ function toRgb(color: string, backdrop = "#fff") { + 8 │ - ··const·canvas·=·document.createElement("canvas") + 9 │ - ··canvas.width·=·canvas.height·=·1 + 10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}) + 8 │ + ··const·canvas·=·document.createElement("canvas"); + 9 │ + ··canvas.width·=·canvas.height·=·1; + 10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}); + 11 11 │ if (!context) { + 12 │ - ····return·null + 12 │ + ····return·null; + 13 13 │ } + 14 │ - ··context.fillStyle·=·backdrop + 15 │ - ··context.fillRect(0,·0,·1,·1) + 16 │ - ··context.fillStyle·=·color + 17 │ - ··context.fillRect(0,·0,·1,·1) + 18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data + 19 │ - ··return·[r,·g,·b] + 14 │ + ··context.fillStyle·=·backdrop; + 15 │ + ··context.fillRect(0,·0,·1,·1); + 16 │ + ··context.fillStyle·=·color; + 17 │ + ··context.fillRect(0,·0,·1,·1); + 18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data; + 19 │ + ··return·[r,·g,·b]; + 20 20 │ } + 21 21 │ + 22 22 │ function toHex(rgb: number[]) { + 23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}` + 23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`; + 24 24 │ } + 25 25 │ + 26 26 │ function luminance([r, g, b]: number[]) { + 27 27 │ const [R, G, B] = [r, g, b].map((value) => { + 28 │ - ····const·channel·=·value·/·255 + 29 │ - ····return·channel·<=·0.03928 + 30 │ - ······?·channel·/·12.92 + 31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4 + 32 │ - ··}) + 33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B + 28 │ + ····const·channel·=·value·/·255; + 29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4; + 30 │ + ··}); + 31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B; + 34 32 │ } + 35 33 │ + 36 34 │ function contrast(a: number[], b: number[]) { + 37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x) + 38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05) + 35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x); + 36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05); + 39 37 │ } + 40 38 │ + ······· │ + 45 43 │ className, + 46 44 │ }: { + 47 │ - ··name:·string + 48 │ - ··background:·string + 49 │ - ··foreground:·string + 50 │ - ··className?:·string + 45 │ + ··name:·string; + 46 │ + ··background:·string; + 47 │ + ··foreground:·string; + 48 │ + ··className?:·string; + 51 49 │ }) { + 52 │ - ··const·ref·=·React.useRef(null) + 53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>( + 54 │ - ····null + 55 │ - ··) + 50 │ + ··const·ref·=·React.useRef(null); + 51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null); + 56 52 │ + 57 53 │ React.useEffect(() => { + 58 │ - ····const·element·=·ref.current + 54 │ + ····const·element·=·ref.current; + 59 55 │ if (!element) { + 60 │ - ······return + 56 │ + ······return; + 61 57 │ } + 62 58 │ // Re-measure when the theme class on changes. + 63 59 │ const measure = () => { + 64 │ - ······const·style·=·getComputedStyle(element) + 65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor + 66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page) + 60 │ + ······const·style·=·getComputedStyle(element); + 61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor; + 62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page); + 67 63 │ if (!bg) { + 68 │ - ········return + 64 │ + ········return; + 69 65 │ } + 70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg)) + 66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg)); + 71 67 │ if (fg) { + 72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}) + 68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}); + 73 69 │ } + 74 │ - ····} + 75 │ - ····measure() + 76 │ - ····const·observer·=·new·MutationObserver(measure) + 77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·}) + 78 │ - ····return·()·=>·observer.disconnect() + 79 │ - ··},·[]) + 70 │ + ····}; + 71 │ + ····measure(); + 72 │ + ····const·observer·=·new·MutationObserver(measure); + 73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·}); + 74 │ + ····return·()·=>·observer.disconnect(); + 75 │ + ··},·[]); + 80 76 │ + 81 77 │ const level = !info + ······· │ + 87 83 │ : info.ratio >= 3 + 88 84 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 85 │ + ··········:·"Fail"; + 90 86 │ + 91 87 │ return ( + 92 │ - ····
+ 88 │ + ···· + 98 89 │
+ 118 │ - ········{info·&&·( + 119 │ - ·········· + 120 │ - ············{info.bg} + 121 │ - ·········· + 122 │ - ········)} + 109 │ + ········{info·&&·{info.bg}} + 123 110 │
+ 124 111 │
+ 125 │ - ··) + 112 │ + ··); + 126 113 │ } + 127 114 │ + + +.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ } + 12 12 │ } + 13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]); + 14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]); + 13 │ + @custom-variant·focus-visible·(&:focus-visible, + 14 │ + &[data-preview~="focus"]); + 15 │ + @custom-variant·active·(&:active, + 16 │ + &[data-preview~="active"]); + 15 17 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 29 │ + 30 │ {states.map((state) => ( + > 31 │ 32 │ key={state} + > 33 │ scope="col" + > 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground" + > 35 │ > + │ ^ + 36 │ {state} + 37 │ + + i Safe fix: Sort the JSX props. + + 30 30 │ {states.map((state) => ( + 31 31 │ + 36 36 │ {state} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 42 │ {rows.map((row) => ( + 43 │ + > 44 │ 45 │ scope="row" + > 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground" + > 47 │ > + │ ^ + 48 │ {row} + 49 │ + + i Safe fix: Sort the JSX props. + + 43 43 │ + 44 44 │ + 48 48 │ {row} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 │ - const·defaultStates·=·[ + 6 │ - ··"default", + 7 │ - ··"hover", + 8 │ - ··"focus", + 9 │ - ··"active", + 10 │ - ··"disabled", + 11 │ - ]·as·const + 5 │ + const·defaultStates·=·["default",·"hover",·"focus",·"active",·"disabled"]·as·const; + 12 6 │ + 13 7 │ export function StateMatrix({ + ····· │ + 17 11 │ className, + 18 12 │ }: { + 19 │ - ··rows:·readonly·Row[] + 20 │ - ··states?:·readonly·string[] + 21 │ - ··render:·(row:·Row,·state:·string)·=>·React.ReactNode + 22 │ - ··className?:·string + 13 │ + ··rows:·readonly·Row[]; + 14 │ + ··states?:·readonly·string[]; + 15 │ + ··render:·(row:·Row,·state:·string)·=>·React.ReactNode; + 16 │ + ··className?:·string; + 23 17 │ }) { + 24 18 │ return ( + ····· │ + 56 50 │ + 57 51 │
+ 58 │ - ··) + 52 │ + ··); + 59 53 │ } + 60 54 │ + ····· │ + 62 56 │ export function previewState(state: string) { + 63 57 │ if (state === "disabled") { + 64 │ - ····return·{·disabled:·true·} + 58 │ + ····return·{·disabled:·true·}; + 65 59 │ } + 66 60 │ + 67 61 │ if (["hover", "focus", "active"].includes(state)) { + 68 │ - ····return·{·"data-preview":·state·} + 62 │ + ····return·{·"data-preview":·state·}; + 69 63 │ } + 70 64 │ + 71 │ - ··return·{} + 65 │ + ··return·{}; + 72 66 │ } + 73 67 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + 2 │ // Lists installed UI components that no file in the showcase imports. + 3 │ // Usage: node showcase-coverage.mjs + > 4 │ import { readdirSync, readFileSync, statSync } from "node:fs" + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 5 │ import { basename, extname, join, resolve } from "node:path" + 6 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ #!/usr/bin/env node + 2 │ + + 2 3 │ // Lists installed UI components that no file in the showcase imports. + 3 4 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs" + 5 6 │ import { basename, extname, join, resolve } from "node:path" + 6 7 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 2 2 │ // Lists installed UI components that no file in the showcase imports. + 3 3 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path" + 4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"; + 5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path"; + 6 6 │ + 7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2) + 7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2); + 8 8 │ + 9 9 │ if (!uiArg || roots.length === 0) { + 10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··") + 11 │ - ··process.exit(1) + 10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··"); + 11 │ + ··process.exit(1); + 12 12 │ } + 13 13 │ + 14 │ - const·uiDir·=·resolve(uiArg) + 14 │ + const·uiDir·=·resolve(uiArg); + 15 15 │ + 16 16 │ const components = readdirSync(uiDir) + 17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file))) + 18 │ - ··.map((file)·=>·basename(file,·extname(file))) + 18 │ + ··.map((file)·=>·basename(file,·extname(file))); + 19 19 │ + 20 20 │ function walk(path) { + 21 21 │ if (statSync(path).isFile()) { + 22 │ - ····return·[path] + 22 │ + ····return·[path]; + 23 23 │ } + 24 24 │ + 25 25 │ return readdirSync(path).flatMap((entry) => { + 26 │ - ····const·child·=·join(path,·entry) + 26 │ + ····const·child·=·join(path,·entry); + 27 27 │ // Skip the ui directory so components don't count as using each other. + 28 28 │ if (entry === "node_modules" || child === uiDir) { + 29 │ - ······return·[] + 29 │ + ······return·[]; + 30 30 │ } + 31 │ - ····return·walk(child) + 32 │ - ··}) + 31 │ + ····return·walk(child); + 32 │ + ··}); + 33 33 │ } + 34 34 │ + ····· │ + 38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file)) + 39 39 │ .map((file) => readFileSync(file, "utf8")) + 40 │ - ··.join("\n") + 40 │ + ··.join("\n"); + 41 41 │ + 42 │ - const·missing·=·components.filter( + 43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source) + 44 │ - ) + 42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)); + 45 43 │ + 46 │ - console.log( + 47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.` + 48 │ - ) + 44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`); + 49 45 │ + 50 46 │ if (missing.length > 0) { + 51 │ - ··console.log(`Missing:·${missing.join(",·")}`) + 52 │ - ··process.exit(1) + 47 │ + ··console.log(`Missing:·${missing.join(",·")}`); + 48 │ + ··process.exit(1); + 53 49 │ } + 54 50 │ + + +.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 17 17 │ "verifiedAt": "2026-08-12", + 18 18 │ "sla": "needs-review", + 19 │ - ······"appliesTo":·[ + 20 │ - ········"design-system" + 21 │ - ······], + 19 │ + ······"appliesTo":·["design-system"], + 22 20 │ "confidence": 0.88, + 23 21 │ "sources": [ + ········· │ + 42 40 │ "verifiedAt": "2026-08-12", + 43 41 │ "sla": "needs-review", + 44 │ - ······"appliesTo":·[ + 45 │ - ········"design-system" + 46 │ - ······], + 42 │ + ······"appliesTo":·["design-system"], + 47 43 │ "confidence": 0.92, + 48 44 │ "sources": [ + ········· │ + 67 63 │ "verifiedAt": "2026-08-12", + 68 64 │ "sla": "needs-review", + 69 │ - ······"appliesTo":·[ + 70 │ - ········"design-system" + 71 │ - ······], + 65 │ + ······"appliesTo":·["design-system"], + 72 66 │ "confidence": 0.93, + 73 67 │ "sources": [ + ········· │ + 92 86 │ "verifiedAt": "2026-08-12", + 93 87 │ "sla": "needs-review", + 94 │ - ······"appliesTo":·[ + 95 │ - ········"design-system" + 96 │ - ······], + 88 │ + ······"appliesTo":·["design-system"], + 97 89 │ "confidence": 0.93, + 98 90 │ "sources": [ + ········· │ + 117 109 │ "verifiedAt": "2026-08-12", + 118 110 │ "sla": "needs-review", + 119 │ - ······"appliesTo":·[ + 120 │ - ········"design-system" + 121 │ - ······], + 111 │ + ······"appliesTo":·["design-system"], + 122 112 │ "confidence": 0.94, + 123 113 │ "sources": [ + ········· │ + 142 132 │ "verifiedAt": "2026-08-12", + 143 133 │ "sla": "needs-review", + 144 │ - ······"appliesTo":·[ + 145 │ - ········"design-system" + 146 │ - ······], + 134 │ + ······"appliesTo":·["design-system"], + 147 135 │ "confidence": 0.91, + 148 136 │ "sources": [ + ········· │ + 167 155 │ "verifiedAt": "2026-08-12", + 168 156 │ "sla": "needs-review", + 169 │ - ······"appliesTo":·[ + 170 │ - ········"design-system" + 171 │ - ······], + 157 │ + ······"appliesTo":·["design-system"], + 172 158 │ "confidence": 0.93, + 173 159 │ "sources": [ + ········· │ + 192 178 │ "verifiedAt": "2026-08-12", + 193 179 │ "sla": "needs-review", + 194 │ - ······"appliesTo":·[ + 195 │ - ········"design-system" + 196 │ - ······], + 180 │ + ······"appliesTo":·["design-system"], + 197 181 │ "confidence": 0.9, + 198 182 │ "sources": [ + ········· │ + 217 201 │ "verifiedAt": "2026-08-12", + 218 202 │ "sla": "needs-review", + 219 │ - ······"appliesTo":·[ + 220 │ - ········"design-system" + 221 │ - ······], + 203 │ + ······"appliesTo":·["design-system"], + 222 204 │ "confidence": 0.89, + 223 205 │ "sources": [ + ········· │ + 242 224 │ "verifiedAt": "2026-08-12", + 243 225 │ "sla": "needs-review", + 244 │ - ······"appliesTo":·[ + 245 │ - ········"design-system" + 246 │ - ······], + 226 │ + ······"appliesTo":·["design-system"], + 247 227 │ "confidence": 0.93, + 248 228 │ "sources": [ + ········· │ + 267 247 │ "verifiedAt": "2026-08-12", + 268 248 │ "sla": "needs-review", + 269 │ - ······"appliesTo":·[ + 270 │ - ········"design-system" + 271 │ - ······], + 249 │ + ······"appliesTo":·["design-system"], + 272 250 │ "confidence": 0.9, + 273 251 │ "sources": [ + ········· │ + 292 270 │ "verifiedAt": "2026-08-12", + 293 271 │ "sla": "needs-review", + 294 │ - ······"appliesTo":·[ + 295 │ - ········"design-system" + 296 │ - ······], + 272 │ + ······"appliesTo":·["design-system"], + 297 273 │ "confidence": 0.92, + 298 274 │ "sources": [ + ········· │ + 317 293 │ "verifiedAt": "2026-08-12", + 318 294 │ "sla": "needs-review", + 319 │ - ······"appliesTo":·[ + 320 │ - ········"design-system" + 321 │ - ······], + 295 │ + ······"appliesTo":·["design-system"], + 322 296 │ "confidence": 0.88, + 323 297 │ "sources": [ + ········· │ + 342 316 │ "verifiedAt": "2026-08-12", + 343 317 │ "sla": "needs-review", + 344 │ - ······"appliesTo":·[ + 345 │ - ········"design-system" + 346 │ - ······], + 318 │ + ······"appliesTo":·["design-system"], + 347 319 │ "confidence": 0.93, + 348 320 │ "sources": [ + ········· │ + 367 339 │ "verifiedAt": "2026-08-12", + 368 340 │ "sla": "needs-review", + 369 │ - ······"appliesTo":·[ + 370 │ - ········"design-system" + 371 │ - ······], + 341 │ + ······"appliesTo":·["design-system"], + 372 342 │ "confidence": 0.91, + 373 343 │ "sources": [ + ········· │ + 392 362 │ "verifiedAt": "2026-08-12", + 393 363 │ "sla": "needs-review", + 394 │ - ······"appliesTo":·[ + 395 │ - ········"design-system" + 396 │ - ······], + 364 │ + ······"appliesTo":·["design-system"], + 397 365 │ "confidence": 0.95, + 398 366 │ "sources": [ + ········· │ + 417 385 │ "verifiedAt": "2026-08-12", + 418 386 │ "sla": "needs-review", + 419 │ - ······"appliesTo":·[ + 420 │ - ········"design-system" + 421 │ - ······], + 387 │ + ······"appliesTo":·["design-system"], + 422 388 │ "confidence": 0.92, + 423 389 │ "sources": [ + ········· │ + 442 408 │ "verifiedAt": "2026-08-12", + 443 409 │ "sla": "needs-review", + 444 │ - ······"appliesTo":·[ + 445 │ - ········"design-system" + 446 │ - ······], + 410 │ + ······"appliesTo":·["design-system"], + 447 411 │ "confidence": 0.93, + 448 412 │ "sources": [ + ········· │ + 467 431 │ "verifiedAt": "2026-08-12", + 468 432 │ "sla": "needs-review", + 469 │ - ······"appliesTo":·[ + 470 │ - ········"design-system" + 471 │ - ······], + 433 │ + ······"appliesTo":·["design-system"], + 278 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 29 29 │ "category": "sans-serif", + 30 30 │ "kind": "webfonts#webfont", + 31 │ - ······"axes":·[ + 32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900} + 33 │ - ······] + 31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}] + 34 32 │ } + 35 33 │ ] + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 3 3 │ "familyMetadataList": [ + 4 4 │ { + 5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif", + 6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"], + 5 │ + ······"family":·"Zeta·Serif", + 6 │ + ······"displayName":·null, + 7 │ + ······"category":·"Serif", + 8 │ + ······"stroke":·"Serif", + 9 │ + ······"classifications":·["Display"], + 10 │ + ······"size":·1000, + 11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"], + 7 12 │ "fonts": { + 8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2} + 11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"], + 12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90, + 13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false, + 14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true, + 15 │ - ······"isBrandFont":·false,·"languages":·[] + 13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·} + 16 │ + ······}, + 17 │ + ······"axes":·[], + 18 │ + ······"designers":·["Zeta·Studio"], + 19 │ + ······"lastModified":·"2025-06-02", + 20 │ + ······"dateAdded":·"2018-04-09", + 21 │ + ······"popularity":·90, + 22 │ + ······"trending":·11, + 23 │ + ······"defaultSort":·9, + 24 │ + ······"androidFragment":·null, + 25 │ + ······"isNoto":·false, + 26 │ + ······"colorCapabilities":·[], + 27 │ + ······"primaryScript":·"", + 28 │ + ······"primaryLanguage":·"", + 29 │ + ······"isOpenSource":·true, + 30 │ + ······"isBrandFont":·false, + 31 │ + ······"languages":·[] + 16 32 │ }, + 17 33 │ { + 18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif", + 19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"], + 34 │ + ······"family":·"Alpha·Sans", + 35 │ + ······"displayName":·null, + 36 │ + ······"category":·"Sans·Serif", + 37 │ + ······"stroke":·"Sans·Serif", + 38 │ + ······"classifications":·["Geometric"], + 39 │ + ······"size":·2000, + 40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"], + 20 41 │ "fonts": { + 21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2}, + 23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2} + 42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}, + 44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·} + 24 45 │ }, + 25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}], + 26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03", + 27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4, + 28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"", + 29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[] + 46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}], + 47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"], + 48 │ + ······"lastModified":·"2025-01-03", + 49 │ + ······"dateAdded":·"2020-02-20", + 50 │ + ······"popularity":·42, + 51 │ + ······"trending":·7, + 52 │ + ······"defaultSort":·4, + 53 │ + ······"androidFragment":·null, + 54 │ + ······"isNoto":·false, + 55 │ + ······"colorCapabilities":·[], + 56 │ + ······"primaryScript":·"", + 57 │ + ······"primaryLanguage":·"", + 58 │ + ······"isOpenSource":·true, + 59 │ + ······"isBrandFont":·false, + 60 │ + ······"languages":·[] + 30 61 │ } + 31 62 │ ], + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·}, + │ + + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-baseline.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 26 26 │ }, + 27 27 │ "expectedRoute": null, + 28 │ - ······"grades":·[ + 29 │ - ········2, + 30 │ - ········0, + 31 │ - ········0 + 32 │ - ······], + 28 │ + ······"grades":·[2,·0,·0], + 33 29 │ "id": "domain-style-glassmorphism", + 34 30 │ "route": "style", + ········· │ + 65 61 │ }, + 66 62 │ "expectedRoute": null, + 67 │ - ······"grades":·[ + 68 │ - ········2, + 69 │ - ········1, + 70 │ - ········0 + 71 │ - ······], + 63 │ + ······"grades":·[2,·1,·0], + 72 64 │ "id": "domain-style-accessible-paraphrase", + 73 65 │ "route": "style", + ········· │ + 104 96 │ }, + 105 97 │ "expectedRoute": null, + 106 │ - ······"grades":·[ + 107 │ - ········2, + 108 │ - ········0, + 109 │ - ········0 + 110 │ - ······], + 98 │ + ······"grades":·[2,·0,·0], + 111 99 │ "id": "domain-color-spa", + 112 100 │ "route": "color", + ········· │ + 143 131 │ }, + 144 132 │ "expectedRoute": null, + 145 │ - ······"grades":·[ + 146 │ - ········0, + 147 │ - ········2, + 148 │ - ········0 + 149 │ - ······], + 133 │ + ······"grades":·[0,·2,·0], + 150 134 │ "id": "domain-color-cyber-typo", + 151 135 │ "route": "color", + ········· │ + 182 166 │ }, + 183 167 │ "expectedRoute": null, + 184 │ - ······"grades":·[ + 185 │ - ········2, + 186 │ - ········0, + 187 │ - ········0 + 188 │ - ······], + 168 │ + ······"grades":·[2,·0,·0], + 189 169 │ "id": "domain-chart-time-series", + 190 170 │ "route": "chart", + ········· │ + 218 198 │ }, + 219 199 │ "expectedRoute": null, + 220 │ - ······"grades":·[ + 221 │ - ········2, + 222 │ - ········0 + 223 │ - ······], + 200 │ + ······"grades":·[2,·0], + 224 201 │ "id": "domain-chart-correlation-paraphrase", + 225 202 │ "route": "chart", + ········· │ + 256 233 │ }, + 257 234 │ "expectedRoute": null, + 258 │ - ······"grades":·[ + 259 │ - ········2, + 260 │ - ········2, + 261 │ - ········1 + 262 │ - ······], + 235 │ + ······"grades":·[2,·2,·1], + 263 236 │ "id": "domain-landing-pricing", + 264 237 │ "route": "landing", + ········· │ + 295 268 │ }, + 296 269 │ "expectedRoute": null, + 297 │ - ······"grades":·[ + 298 │ - ········2, + 299 │ - ········1, + 300 │ - ········0 + 301 │ - ······], + 270 │ + ······"grades":·[2,·1,·0], + 302 271 │ "id": "domain-landing-enterprise-typo", + 303 272 │ "route": "landing", + ········· │ + 334 303 │ }, + 335 304 │ "expectedRoute": null, + 336 │ - ······"grades":·[ + 337 │ - ········2, + 338 │ - ········1, + 339 │ - ········0 + 340 │ - ······], + 305 │ + ······"grades":·[2,·1,·0], + 341 306 │ "id": "domain-product-spa", + 342 307 │ "route": "product", + ········· │ + 401 366 │ }, + 402 367 │ "expectedRoute": null, + 403 │ - ······"grades":·[ + 404 │ - ········2, + 405 │ - ········0, + 406 │ - ········0 + 407 │ - ······], + 368 │ + ······"grades":·[2,·0,·0], + 408 369 │ "id": "domain-ux-keyboard-focus", + 409 370 │ "route": "ux", + ········· │ + 443 404 │ }, + 444 405 │ "expectedRoute": null, + 445 │ - ······"grades":·[ + 446 │ - ········1, + 447 │ - ········2, + 448 │ - ········0 + 449 │ - ······], + 406 │ + ······"grades":·[1,·2,·0], + 450 407 │ "id": "domain-ux-motion-paraphrase", + 451 408 │ "route": "ux", + ········· │ + 485 442 │ }, + 486 443 │ "expectedRoute": null, + 487 │ - ······"grades":·[ + 488 │ - ········2, + 489 │ - ········2, + 490 │ - ········0 + 491 │ - ······], + 444 │ + ······"grades":·[2,·2,·0], + 492 445 │ "id": "domain-typography-luxury", + 493 446 │ "route": "typography", + ········· │ + 527 480 │ }, + 528 481 │ "expectedRoute": null, + 529 │ - ······"grades":·[ + 530 │ - ········2, + 531 │ - ········1, + 532 │ - ········0 + 533 │ - ······], + 482 │ + ······"grades":·[2,·1,·0], + 534 483 │ "id": "domain-typography-accessible-typo", + 535 484 │ "route": "typography", + ········· │ + 569 518 │ }, + 570 519 │ "expectedRoute": null, + 571 │ - ······"grades":·[ + 572 │ - ········2, + 573 │ - ········0, + 574 │ - ········0 + 575 │ - ······], + 520 │ + ······"grades":·[2,·0,·0], + 576 521 │ "id": "domain-icons-search", + 577 522 │ "route": "icons", + ········· │ + 611 556 │ }, + 612 557 │ "expectedRoute": null, + 613 │ - ······"grades":·[ + 614 │ - ········2, + 615 │ - ········0, + 616 │ - ········0 + 617 │ - ······], + 558 │ + ······"grades":·[2,·0,·0], + 618 559 │ "id": "domain-icons-warning-typo", + 619 560 │ "route": "icons", + ········· │ + 648 589 │ "margin": 0.47825840830284605, + 702 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-thresholds.json format ━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 14 14 │ "tolerancePolicy": "A 1e-12 numeric tolerance permits floating-point representation only. Current known failures remain visible in relevance-baseline.json; the gate prevents regressions and does not claim final quality targets are met.", + 15 15 │ "metrics": { + 16 │ - ····"routingAccuracy":·{"floor":·0.875,·"tolerance":·1e-12}, + 17 │ - ····"precisionAt1":·{"floor":·0.7631578947368421,·"tolerance":·1e-12}, + 18 │ - ····"precisionAt3":·{"floor":·0.3815789473684211,·"tolerance":·1e-12}, + 19 │ - ····"mrrAt3":·{"floor":·0.8355263157894737,·"tolerance":·1e-12}, + 20 │ - ····"ndcgAt3":·{"floor":·0.8366350964266653,·"tolerance":·1e-12}, + 21 │ - ····"negativeAbstention":·{"floor":·0.9117647058823529,·"tolerance":·1e-12}, + 22 │ - ····"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 23 │ - ····"designSystemCoherence":·{"floor":·0.71875,·"tolerance":·1e-12} + 16 │ + ····"routingAccuracy":·{·"floor":·0.875,·"tolerance":·1e-12·}, + 17 │ + ····"precisionAt1":·{·"floor":·0.7631578947368421,·"tolerance":·1e-12·}, + 18 │ + ····"precisionAt3":·{·"floor":·0.3815789473684211,·"tolerance":·1e-12·}, + 19 │ + ····"mrrAt3":·{·"floor":·0.8355263157894737,·"tolerance":·1e-12·}, + 20 │ + ····"ndcgAt3":·{·"floor":·0.8366350964266653,·"tolerance":·1e-12·}, + 21 │ + ····"negativeAbstention":·{·"floor":·0.9117647058823529,·"tolerance":·1e-12·}, + 22 │ + ····"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 23 │ + ····"designSystemCoherence":·{·"floor":·0.71875,·"tolerance":·1e-12·} + 24 24 │ }, + 25 25 │ "sampleMinimums": { + ······· │ + 46 46 │ "calibration": { + 47 47 │ "metrics": { + 48 │ - ········"routingAccuracy":·{"floor":·0.8,·"tolerance":·1e-12}, + 49 │ - ········"precisionAt1":·{"floor":·0.8974358974358975,·"tolerance":·1e-12}, + 50 │ - ········"precisionAt3":·{"floor":·0.40170940170940167,·"tolerance":·1e-12}, + 51 │ - ········"mrrAt3":·{"floor":·0.9230769230769231,·"tolerance":·1e-12}, + 52 │ - ········"ndcgAt3":·{"floor":·0.9103072109232644,·"tolerance":·1e-12}, + 53 │ - ········"negativeAbstention":·{"floor":·0.9411764705882353,·"tolerance":·1e-12}, + 54 │ - ········"typoRecoveryAt3":·{"floor":·0.0,·"tolerance":·1e-12}, + 55 │ - ········"designSystemCoherence":·{"floor":·0.6875,·"tolerance":·1e-12} + 48 │ + ········"routingAccuracy":·{·"floor":·0.8,·"tolerance":·1e-12·}, + 49 │ + ········"precisionAt1":·{·"floor":·0.8974358974358975,·"tolerance":·1e-12·}, + 50 │ + ········"precisionAt3":·{·"floor":·0.40170940170940167,·"tolerance":·1e-12·}, + 51 │ + ········"mrrAt3":·{·"floor":·0.9230769230769231,·"tolerance":·1e-12·}, + 52 │ + ········"ndcgAt3":·{·"floor":·0.9103072109232644,·"tolerance":·1e-12·}, + 53 │ + ········"negativeAbstention":·{·"floor":·0.9411764705882353,·"tolerance":·1e-12·}, + 54 │ + ········"typoRecoveryAt3":·{·"floor":·0.0,·"tolerance":·1e-12·}, + 55 │ + ········"designSystemCoherence":·{·"floor":·0.6875,·"tolerance":·1e-12·} + 56 56 │ }, + 57 │ - ······"sampleMinimums":·{"cases":·46,·"retrieval":·39,·"routing":·5,·"negativeChecks":·102,·"typo":·0,·"designSystem":·4} + 57 │ + ······"sampleMinimums":·{ + 58 │ + ········"cases":·46, + 59 │ + ········"retrieval":·39, + 60 │ + ········"routing":·5, + 61 │ + ········"negativeChecks":·102, + 62 │ + ········"typo":·0, + 63 │ + ········"designSystem":·4 + 64 │ + ······} + 58 65 │ }, + 59 66 │ "held_out": { + 60 67 │ "metrics": { + 61 │ - ········"routingAccuracy":·{"floor":·1.0,·"tolerance":·1e-12}, + 62 │ - ········"precisionAt1":·{"floor":·0.6216216216216216,·"tolerance":·1e-12}, + 63 │ - ········"precisionAt3":·{"floor":·0.36036036036036034,·"tolerance":·1e-12}, + 64 │ - ········"mrrAt3":·{"floor":·0.7432432432432432,·"tolerance":·1e-12}, + 65 │ - ········"ndcgAt3":·{"floor":·0.7589807054707906,·"tolerance":·1e-12}, + 66 │ - ········"negativeAbstention":·{"floor":·0.8823529411764706,·"tolerance":·1e-12}, + 67 │ - ········"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 68 │ - ········"designSystemCoherence":·{"floor":·0.75,·"tolerance":·1e-12} + 68 │ + ········"routingAccuracy":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 69 │ + ········"precisionAt1":·{·"floor":·0.6216216216216216,·"tolerance":·1e-12·}, + 70 │ + ········"precisionAt3":·{·"floor":·0.36036036036036034,·"tolerance":·1e-12·}, + 71 │ + ········"mrrAt3":·{·"floor":·0.7432432432432432,·"tolerance":·1e-12·}, + 72 │ + ········"ndcgAt3":·{·"floor":·0.7589807054707906,·"tolerance":·1e-12·}, + 73 │ + ········"negativeAbstention":·{·"floor":·0.8823529411764706,·"tolerance":·1e-12·}, + 74 │ + ········"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 75 │ + ········"designSystemCoherence":·{·"floor":·0.75,·"tolerance":·1e-12·} + 69 76 │ }, + 70 │ - ······"sampleMinimums":·{"cases":·44,·"retrieval":·37,·"routing":·3,·"negativeChecks":·102,·"typo":·5,·"designSystem":·4} + 77 │ + ······"sampleMinimums":·{ + 78 │ + ········"cases":·44, + 79 │ + ········"retrieval":·37, + 80 │ + ········"routing":·3, + 81 │ + ········"negativeChecks":·102, + 82 │ + ········"typo":·5, + 83 │ + ········"designSystem":·4 + 84 │ + ······} + 71 85 │ } + 72 86 │ }, + 73 87 │ "lockedCases": { + 74 │ - ····"domain-style-glassmorphism":·{"withinTop":·1,·"minimumGrade":·2}, + 75 │ - ····"domain-color-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 76 │ - ····"domain-chart-time-series":·{"withinTop":·1,·"minimumGrade":·2}, + 77 │ - ····"domain-landing-pricing":·{"withinTop":·1,·"minimumGrade":·2}, + 78 │ - ····"domain-product-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 79 │ - ····"domain-ux-keyboard-focus":·{"withinTop":·1,·"minimumGrade":·2}, + 80 │ - ····"domain-typography-luxury":·{"withinTop":·1,·"minimumGrade":·2}, + 81 │ - ····"domain-icons-search":·{"withinTop":·1,·"minimumGrade":·2}, + 82 │ - ····"domain-gsap-scroll-reveal":·{"withinTop":·1,·"minimumGrade":·2}, + 83 │ - ····"domain-react-parallel-promises":·{"withinTop":·1,·"minimumGrade":·2}, + 84 │ - ····"domain-web-icon-label":·{"withinTop":·1,·"minimumGrade":·2}, + 85 │ - ····"domain-google-fonts-inter":·{"withinTop":·1,·"minimumGrade":·2}, + 86 │ - ····"stack-swiftui-navigation":·{"withinTop":·1,·"minimumGrade":·2}, + 87 │ - ····"stack-threejs-orbitcontrols":·{"withinTop":·1,·"minimumGrade":·2}, + 88 │ - ····"stack-uwp-migration":·{"withinTop":·1,·"minimumGrade":·2}, + 89 │ - ····"stack-winui-dispatcherqueue":·{"withinTop":·1,·"minimumGrade":·2} + 88 │ + ····"domain-style-glassmorphism":·{·"withinTop":·1,·"minimumGrade":·2·}, + 89 │ + ····"domain-color-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 90 │ + ····"domain-chart-time-series":·{·"withinTop":·1,·"minimumGrade":·2·}, + 91 │ + ····"domain-landing-pricing":·{·"withinTop":·1,·"minimumGrade":·2·}, + 92 │ + ····"domain-product-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 93 │ + ····"domain-ux-keyboard-focus":·{·"withinTop":·1,·"minimumGrade":·2·}, + 94 │ + ····"domain-typography-luxury":·{·"withinTop":·1,·"minimumGrade":·2·}, + 95 │ + ····"domain-icons-search":·{·"withinTop":·1,·"minimumGrade":·2·}, + 96 │ + ····"domain-gsap-scroll-reveal":·{·"withinTop":·1,·"minimumGrade":·2·}, + 97 │ + ····"domain-react-parallel-promises":·{·"withinTop":·1,·"minimumGrade":·2·}, + 98 │ + ····"domain-web-icon-label":·{·"withinTop":·1,·"minimumGrade":·2·}, + 99 │ + ····"domain-google-fonts-inter":·{·"withinTop":·1,·"minimumGrade":·2·}, + 100 │ + ····"stack-swiftui-navigation":·{·"withinTop":·1,·"minimumGrade":·2·}, + 101 │ + ····"stack-threejs-orbitcontrols":·{·"withinTop":·1,·"minimumGrade":·2·}, + 102 │ + ····"stack-uwp-migration":·{·"withinTop":·1,·"minimumGrade":·2·}, + 103 │ + ····"stack-winui-dispatcherqueue":·{·"withinTop":·1,·"minimumGrade":·2·} + 90 104 │ }, + 91 105 │ "proposedFinalTargets": { + + +.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems-closure/legacy-evolution.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +.artifacts/resources-global-operating-systems-unblock/mariadb/closure-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems/global-operating-systems-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 10 10 │ "contract": 3, + 11 11 │ "gatesEnabledOnlyInDisposableTest": true + 12 │ - } + 12 │ + } + 13 │ + + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 160. +Checked 2279 files in 2s. No fixes applied. +Found 173 errors. +Found 2 warnings. +Found 5 infos. +check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/account-deletion/cleanup-test.mts b/.artifacts/account-deletion/cleanup-test.mts new file mode 100644 index 00000000..6bcff29b --- /dev/null +++ b/.artifacts/account-deletion/cleanup-test.mts @@ -0,0 +1,18 @@ +import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database'; +const env=readDatabaseEnvironment(process.env); +if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas'); +const db=createDatabase(env); +const company='01a17cae-4bba-7070-a394-13f9009c5cfb'; +try { + await db.transaction(async transaction=>{ + const replacements={company}; + const rows=await db.query('SELECT i.kind,i.id FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction,type:'SELECT'}); + console.info({fixtureCompany:company,items:rows}); + for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + await db.query('DELETE i FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + await db.query('DELETE FROM access_workspaces WHERE companyId=:company',{replacements,transaction}); + await db.query('DELETE FROM companies WHERE id=:company',{replacements,transaction}); + }); +}finally {await db.close();} diff --git a/.artifacts/account-deletion/companies-typecheck.log b/.artifacts/account-deletion/companies-typecheck.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/account-deletion/companies-typecheck.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/account-deletion/identity-integration.log b/.artifacts/account-deletion/identity-integration.log new file mode 100644 index 00000000..c89bff58 --- /dev/null +++ b/.artifacts/account-deletion/identity-integration.log @@ -0,0 +1,29 @@ +✖ HTTP y MariaDB: configuración única, usuarios, sesiones y protección del administrador (2444.795646ms) +ℹ tests 1 +ℹ suites 0 +ℹ pass 0 +ℹ fail 1 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 4073.656643 + +✖ failing tests: + +test at src/identity.test.ts:1:2626 +✖ HTTP y MariaDB: configuración única, usuarios, sesiones y protección del administrador (2444.795646ms) + AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + + 401 !== 404 + + at TestContext. (/home/david/dev/metis-desk/apps/server/src/identity.test.ts:82:14) + at process.processTicksAndRejections (node:internal/process/task_queues:104:5) + at async Test.run (node:internal/test_runner/test:1404:7) + at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: 401, + expected: 404, + operator: 'strictEqual', + diff: 'simple' + } diff --git a/.artifacts/account-deletion/lint.log b/.artifacts/account-deletion/lint.log new file mode 100644 index 00000000..1ecd710e --- /dev/null +++ b/.artifacts/account-deletion/lint.log @@ -0,0 +1,471 @@ +$ biome lint . +docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json lint ━━━━━━━━━━━━━━━━━━━━━━━━ + + i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project. + Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file. + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + i Safe fix: Reduce the complexity of the logical expression. + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + +modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 │ + + i Safe fix: Reduce the complexity of the logical expression. + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 51 │ + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:18:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 17 │ if ( + > 18 │ !metadata.width || + │ ^^^^^^^^^^^^^^^^^^ + > 19 │ !metadata.height || + │ ^^^^^^^^^^^^^^^^ + 20 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + i Safe fix: Reduce the complexity of the logical expression. + + 16 16 │ + 17 17 │ if ( + 18 │ - ········!metadata.width·|| + 19 │ - ········!metadata.height·|| + 18 │ + ········!(metadata.width·&&metadata.height·)·|| + 20 19 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 20 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 24 │ async get(personId: string) { + > 25 │ if (!z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 27 │ const photo = await this.repository.get(personId); + 28 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 23 23 │ + 24 24 │ async get(personId: string) { + 25 │ - ····if·(!z.uuid().safeParse(personId).success) + 26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 25 │ + ····if·(!z.uuid().safeParse(personId).success)·{ + 26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 27 │ + ····} + 27 28 │ const photo = await this.repository.get(personId); + 28 29 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 35 │ + ····} + 35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + > 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 37 │ if (!(await this.repository.exists(companyId, personId))) + 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes) + 36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{ + 36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ + ····} + 37 38 │ if (!(await this.repository.exists(companyId, personId))) + 38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + > 37 │ if (!(await this.repository.exists(companyId, personId))) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 39 │ const processed = await this.processor.optimize(data); + 40 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ - ····if·(!(await·this.repository.exists(companyId,·personId))) + 38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{ + 38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 39 │ + ····} + 39 40 │ const processed = await this.processor.optimize(data); + 40 41 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 39 │ const processed = await this.processor.optimize(data); + 40 │ + > 41 │ if (!processed.isSuccess) return Result.fail(processed.error); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 42 │ + 43 │ return (await this.repository.replace(companyId, personId, processed.data)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 51 │ + 52 │ return (await this.repository.replace(companyId, personId, null)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 51 │ + ····} + 51 52 │ + 52 53 │ return (await this.repository.replace(companyId, personId, null)) + + +modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 125 │ const process = UniqueID.create(id); + 126 │ + > 127 │ if (!(company.isSuccess && process.isSuccess)) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST"))); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 129 │ + 130 │ return this.repository.remove(company.data, process.data); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 125 125 │ const process = UniqueID.create(id); + 126 126 │ + 127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess)) + 128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{ + 128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 129 │ + ····} + 129 130 │ + 130 131 │ return this.repository.remove(company.data, process.data); + + +modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const columns = await query.describeTable("company_contacts"); + 10 │ + > 11 │ if (!columns.photoVersion) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 12 │ await query.addColumn("company_contacts", "photoVersion", { + > 13 │ type: DataTypes.STRING(64), + > 14 │ allowNull: true, + > 15 │ }); + │ ^^^ + 16 │ for (const [name, length] of [ + 17 │ ["position", 100], + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 9 9 │ const columns = await query.describeTable("company_contacts"); + 10 10 │ + 11 │ - ··if·(!columns.photoVersion) + 11 │ + ··if·(!columns.photoVersion)·{ + 12 12 │ await query.addColumn("company_contacts", "photoVersion", { + 13 13 │ type: DataTypes.STRING(64), + 14 14 │ allowNull: true, + 15 │ - ····}); + 15 │ + ····}); + 16 │ + ··} + 16 17 │ for (const [name, length] of [ + 17 18 │ ["position", 100], + + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 8 │ ); + 9 │ + > 10 │ if (rows.some((row) => row.name === "person_photos")) return; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 11 │ await database + 12 │ .getQueryInterface() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 47 │ }); + 48 │ + > 49 │ if (!person) return false; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ if (photo) + 51 │ await PersonPhotoModel.upsert( + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 49 │ ······if·(!person)·{·return·false;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 49 │ if (!person) return false; + > 50 │ if (photo) + │ ^^^^^^^^^^ + > 51 │ await PersonPhotoModel.upsert( + > 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + > 53 │ { transaction } + > 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 48 48 │ + 49 49 │ if (!person) return false; + 50 │ - ······if·(photo) + 50 │ + ······if·(photo)·{ + 51 51 │ await PersonPhotoModel.upsert( + 52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + 53 53 │ { transaction } + 54 │ - ········); + 54 │ + ········); + 55 │ + ······} + 55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + 56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 53 │ { transaction } + 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·} + │ ++ ++ + +modules/companies/src/api/infrastructure/person-photo-processor.ts:17:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 15 │ }).metadata(); + 16 │ + > 17 │ if ( + │ ^^^^ + > 18 │ !metadata.width || + ... + > 23 │ ) + > 24 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 25 │ const output = await sharp(input) + 26 │ .rotate() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 21 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + 22 22 │ !["jpeg", "png", "webp"].includes(metadata.format ?? "") + 23 │ - ······) + 24 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 23 │ + ······)·{ + 24 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 25 │ + ······} + 25 26 │ const output = await sharp(input) + 26 27 │ .rotate() + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:34:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ .toBuffer(); + 33 │ + > 34 │ if (output.length > PERSON_PHOTO_LIMITS.outputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 35 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 36 │ + 37 │ return Result.ok({ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 32 32 │ .toBuffer(); + 33 33 │ + 34 │ - ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes) + 35 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 34 │ + ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)·{ + 35 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 36 │ + ······} + 36 37 │ + 37 38 │ return Result.ok({ + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 2. +Checked 2279 files in 2s. No fixes applied. +Found 15 errors. +Found 2 warnings. +Found 5 infos. +lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/account-deletion/server-typecheck.log b/.artifacts/account-deletion/server-typecheck.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/account-deletion/server-typecheck.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/account-deletion/test.log b/.artifacts/account-deletion/test.log new file mode 100644 index 00000000..e03698f3 --- /dev/null +++ b/.artifacts/account-deletion/test.log @@ -0,0 +1,850 @@ +$ turbo run test +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running test in 13 packages + • Remote caching disabled + +@metis/core:test: cache bypass, force executing 2283a7af50b4c3f8 +@repo/rdx-ddd:test: cache bypass, force executing b722cdfdd985a9bd +@repo/rdx-ui:test: cache bypass, force executing 08ae8a00e21c47c8 +@metis/relationship-contracts:test: cache bypass, force executing 97138537b462262f +@metis/core:test: $ node --import tsx --test src/common/dto/response/get-health.response.dto.test.ts src/web/navigation/shared/browser-navigation.test.ts src/web/http/shared/api/csrf-fetch.test.ts +@metis/relationship-contracts:test: $ node --import tsx --test --test-isolation=none src/*.test.ts +@repo/rdx-ui:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/select-with-action.test.tsx src/selection-components.test.tsx src/entity-list.test.tsx src/compact-collections.test.tsx src/entity-column-visibility.test.tsx src/time-line.test.tsx src/count-badge.test.tsx src/scrollable-tabs.test.tsx src/field-sections.test.tsx src/phone-link.test.tsx src/lib/reorder-items.test.ts src/lib/text-search.test.ts src/remote-option-list.test.tsx src/dialog-help.test.tsx +@repo/rdx-ddd:test: $ node --import tsx --test src/domain-model.test.ts +@metis/relationship-contracts:test: ✔ referencias UUID estables, normalizadas, inmutables y con proveedor coherente (10.751076ms) +@metis/relationship-contracts:test: ✔ namespaces canónicos, sin identificadores de tabla, espacios ni segmentos vacíos (0.940807ms) +@metis/relationship-contracts:test: ✔ el catálogo valida propietarios, namespaces, duplicados y definiciones (7.275051ms) +@metis/relationship-contracts:test: ✔ el catálogo crea una copia profundamente inmutable sin congelar la entrada (0.695705ms) +@metis/relationship-contracts:test: ✔ relaciones dirigidas, simétricas y derivadas respetan su semántica declarativa (3.016322ms) +@metis/relationship-contracts:test: ✔ consulta estricta: límites, cursores y ausencia de privilegios del navegador (4.563332ms) +@metis/relationship-contracts:test: ✔ validación de ámbito, tipo y sentido de consulta sin conceder autorización (1.278109ms) +@metis/relationship-contracts:test: ✔ orígenes y páginas conservan referencias sin mezclar compañías (2.342216ms) +@metis/relationship-contracts:test: ✔ servicios de prueba por lotes y errores compatibles con Result de Metis (1.34711ms) +@metis/relationship-contracts:test: ✔ el grafo de dependencias del paquete es acíclico y ajeno a módulos funcionales (54.991288ms) +@metis/relationship-contracts:test: ✔ las importaciones internas de producción no contienen ciclos ni imports privados (5.841041ms) +@metis/relationship-contracts:test: ✔ capacidades semánticas explícitas sin registrar proveedores ficticios (2.374917ms) +@metis/relationship-contracts:test: ✔ rol semántico opcional conserva la compatibilidad de vistas comunes sin metadatos libres (2.252516ms) +@metis/relationship-contracts:test: ℹ tests 13 +@metis/relationship-contracts:test: ℹ suites 0 +@metis/relationship-contracts:test: ℹ pass 13 +@metis/relationship-contracts:test: ℹ fail 0 +@metis/relationship-contracts:test: ℹ cancelled 0 +@metis/relationship-contracts:test: ℹ skipped 0 +@metis/relationship-contracts:test: ℹ todo 0 +@metis/relationship-contracts:test: ℹ duration_ms 774.233357 +@repo/rdx-ddd:test: ✔ UniqueID genera UUID v7 distintos, conserva UUID existentes y rechaza identificadores inválidos (25.243278ms) +@repo/rdx-ddd:test: ✔ los Value Objects validan y comparan valores semánticos por tipo (4.19853ms) +@repo/rdx-ddd:test: ✔ entidades y agregados comparan identidad y tipo, independientemente de sus atributos (0.795806ms) +@metis/core:test: ✔ el contrato de estado exige un timestamp UTC y un estado conocido (4.047928ms) +@metis/core:test: ✔ el endpoint de estado no acepta parámetros de consulta (0.586604ms) +@repo/rdx-ddd:test: ℹ tests 3 +@repo/rdx-ddd:test: ℹ suites 0 +@repo/rdx-ddd:test: ℹ pass 3 +@repo/rdx-ddd:test: ℹ fail 0 +@repo/rdx-ddd:test: ℹ cancelled 0 +@repo/rdx-ddd:test: ℹ skipped 0 +@repo/rdx-ddd:test: ℹ todo 0 +@repo/rdx-ddd:test: ℹ duration_ms 874.151861 +@metis/core:test: ✔ las escrituras leen la sesión actual de Query y siguen su rotación y eliminación (48.513742ms) +@metis/core:test: ✔ GET, HEAD y OPTIONS funcionan sin sesión y no envían tokens suministrados por el llamador (1.636811ms) +@metis/core:test: ✔ mantiene cuerpos JSON, binarios, headers, cancelación y respuestas de error sin reintentar (3.105622ms) +@metis/core:test: ✔ rechaza tokens ausentes o inválidos y destinos externos antes de enviar una petición (1.008307ms) +@metis/core:test: ✔ estado de ficha: tablas independientes, aislamiento entre quince propietarios y metadatos ajenos conservados (18.025727ms) +@metis/core:test: ✔ estado de ficha: metadatos malformados, ámbitos externos y valores incompatibles no se restauran (5.315637ms) +@metis/core:test: ✔ History mantiene URL, filtros, Atrás/Adelante, cierre y suscripciones sin entradas duplicadas (2.050114ms) +@metis/core:test: ✔ las redirecciones internas rechazan destinos externos, barras invertidas y caracteres de control (0.363502ms) +@metis/core:test: ✔ el retorno reutiliza la entrada exacta del listado y conserva el estado ajeno (1.107208ms) +@metis/core:test: ✔ el contexto de retorno valida versión, coordenadas, ámbito y filtros sin guardar registros (3.539625ms) +@metis/core:test: ✔ las consultas Unicode válidas no pierden contexto al superar 2000 caracteres codificados (10.01097ms) +@metis/core:test: ✔ retorno de detalle y listado conviven sin aceptar el ámbito de otro propietario (0.635704ms) +@metis/core:test: ℹ tests 14 +@metis/core:test: ℹ suites 0 +@metis/core:test: ℹ pass 14 +@metis/core:test: ℹ fail 0 +@metis/core:test: ℹ cancelled 0 +@metis/core:test: ℹ skipped 0 +@metis/core:test: ℹ todo 0 +@metis/core:test: ℹ duration_ms 1175.637486 +@repo/rdx-ui:test: ✔ la tabla compacta conserva semántica y enlaces sin herramientas de exploración (31.342922ms) +@repo/rdx-ui:test: ✔ los valores ausentes comparten criterio con EntityTable y cero permanece visible (1.842213ms) +@repo/rdx-ui:test: ✔ carga y error sin datos no afirman vacío; caché obsoleta conserva registros (10.859977ms) +@repo/rdx-ui:test: ✔ la ampliación identifica el contenido controlado sin añadir controles a colecciones pequeñas (5.066836ms) +@repo/rdx-ui:test: ✔ EntityTable mantiene búsqueda, columnas y paginación con su contrato anterior (40.96499ms) +@repo/rdx-ui:test: ✔ preview controlado: recuperar la ampliación muestra el origen con identidad estable sin perder el modo local (10.919677ms) +@repo/rdx-ui:test: ✔ contador: conserva cero y formatea el total por idioma (66.789871ms) +@repo/rdx-ui:test: ✔ contador: carga y error muestran ausencia de total, conservando una cifra anterior si existe (1.592911ms) +@repo/rdx-ui:test: ✔ la ayuda breve respeta la capacidad efectiva, también con fuentes ampliadas (3.259123ms) +@repo/rdx-ui:test: ✔ auto y expanded reservan 40rem al formulario y 20rem al panel (0.848706ms) +@repo/rdx-ui:test: ✔ el contenido inline conserva descripción, ámbito, ejemplos, orientación e icono (24.857276ms) +@repo/rdx-ui:test: ✔ las columnas elegidas se restauran al volver a crear la tabla, incluidas las que llegan después (57.124704ms) +@repo/rdx-ui:test: ✔ las preferencias quedan aisladas por lista y no se aplican cuando no se solicita persistencia (9.065164ms) +@repo/rdx-ui:test: ✔ datos locales inválidos no rompen el listado y solo se aceptan valores booleanos (0.516003ms) +@repo/rdx-ui:test: ✔ almacenamiento bloqueado o sin cuota permite seguir utilizando la selección local (0.393902ms) +@repo/rdx-ui:test: ✔ buscar columnas ignora tildes y mayúsculas, conserva ñ y no modifica visibilidad (1.021207ms) +@repo/rdx-ui:test: ✔ los grupos conservan orden, omiten vacíos y deduplican IDs sin perder columnas sin grupo (0.385002ms) +@repo/rdx-ui:test: ✔ restaurar preferencias vacías recupera defaults actuales sin tocar otras tablas (7.459052ms) +@repo/rdx-ui:test: ✔ los contadores distinguen visibilidad, total y coincidencias en es/en (0.314202ms) +@repo/rdx-ui:test: ✔ listado remoto: recupera columnas por ámbito y protege nombre y acciones (16.431016ms) +@repo/rdx-ui:test: ✔ los rangos vacíos y la última página nunca muestran índices fuera del conjunto (2.441518ms) +@repo/rdx-ui:test: ✔ el listado pagina el conjunto y repite su rango conservando controles accesibles (65.227861ms) +@repo/rdx-ui:test: ✔ la búsqueda local reduce el conjunto completo antes de paginar y permite limpiarla (12.292687ms) +@repo/rdx-ui:test: ✔ el texto formado solo por espacios se puede borrar sin confundir vacío con ausencia de coincidencias (8.826163ms) +@repo/rdx-ui:test: ✔ la búsqueda genérica ignora acentos y Unicode equivalente, manteniendo ñ y el texto escrito (29.184507ms) +@repo/rdx-ui:test: ✔ el orden inicial ascendente se indica en la cabecera y se aplica antes de paginar (9.389667ms) +@repo/rdx-ui:test: ✔ una columna explícita puede establecer un orden inicial descendente (10.027871ms) +@repo/rdx-ui:test: ✔ el orden inicial ignora acciones y columnas sin valor comparable (8.131458ms) +@repo/rdx-ui:test: ✔ las tablas sin columnas ordenables conservan el orden recibido (7.082351ms) +@repo/rdx-ui:test: ✔ el orden inicial mantiene la estabilidad en empates y se indica con el listado vacío (13.236694ms) +@repo/rdx-ui:test: ✔ una búsqueda controlada conserva los resultados filtrados por la pantalla (6.829548ms) +@repo/rdx-ui:test: ✔ carga, error y búsqueda vacía se distinguen de un listado sin registros (33.999241ms) +@repo/rdx-ui:test: ✔ el rango y la configuración también se traducen en inglés (6.692848ms) +@repo/rdx-ui:test: ✔ acciones: disparador de solo icono con etiqueta accesible y menú contextual (6.555947ms) +@repo/rdx-ui:test: ✔ acciones: operación principal visible con nombre accesible y secundarias en el menú (5.095736ms) +@repo/rdx-ui:test: ✔ acciones: conserva la restricción de la principal y evita menús sin secundarias (2.884521ms) +@repo/rdx-ui:test: ✔ el estado activo se distingue en verde del inactivo (0.456903ms) +@repo/rdx-ui:test: ✔ acciones: siempre última, compacta y anclada a la derecha, aunque se declare primero (9.383666ms) +@repo/rdx-ui:test: ✔ los textos comunes mantienen claves, idiomas y parámetros del rango (0.265402ms) +@repo/rdx-ui:test: ✔ las celdas vacías muestran un guion largo en es/en y conservan cero, textos y controles (155.730602ms) +@repo/rdx-ui:test: ✔ las columnas opcionales empiezan ocultas sin ocultar identificación ni acciones obligatorias (6.316945ms) +@repo/rdx-ui:test: ✔ Nombre ordena sin tildes ni mayúsculas antes de paginar, en español e inglés (10.141872ms) +@repo/rdx-ui:test: ✔ Nombre tiene prioridad inicial aunque otra columna comparable aparezca antes (4.16733ms) +@repo/rdx-ui:test: ✔ Nombre conserva empates entre acentos, mayúsculas y Unicode compuesto al ordenar descendente (4.501932ms) +@repo/rdx-ui:test: ✔ paginación por cursor: navegación accesible y límites sin inventar totales (0.724705ms) +@repo/rdx-ui:test: ✔ estados presentacionales: carga, datos anteriores y recuperación son mutuamente distinguibles (0.307703ms) +@repo/rdx-ui:test: ✔ carga inicial conserva estructura, no anuncia cero registros y no fabrica acciones (6.377345ms) +@repo/rdx-ui:test: ✔ refetch y error posterior muestran los datos disponibles sin skeletons (10.363074ms) +@repo/rdx-ui:test: ✔ error inicial, vacío válido y filtros sin coincidencias tienen contenidos distintos en es/en (11.490481ms) +@repo/rdx-ui:test: ✔ el contrato de navegación rechaza páginas mal formadas y ordenaciones desconocidas (0.536604ms) +@repo/rdx-ui:test: ✔ navegación controlada ordena y pagina realmente sin alterar el consumidor no controlado (5.126536ms) +@repo/rdx-ui:test: ✔ quitar sección conserva todos los campos y su obligatoriedad sin mutar el origen (1.768212ms) +@repo/rdx-ui:test: ✔ copiar remapea secciones conservando campos y reglas con identidades independientes (0.454203ms) +@repo/rdx-ui:test: ✔ secciones visuales ordenadas, abiertas inicialmente y campos sin sección (10.123371ms) +@repo/rdx-ui:test: ✔ consulta compacta conserva grupos, campos sin sección y avisos sin tarjetas anidadas (3.841827ms) +@repo/rdx-ui:test: ✔ pestañas de grupos conservan controles ocultos, orden y campos sin grupo, omitiendo grupos vacíos (15.306308ms) +@repo/rdx-ui:test: ✔ el editor ofrece asas etiquetadas para secciones y campos, deshabilitadas al guardar (89.334932ms) +@repo/rdx-ui:test: ✔ soltar antes o después del destino conserva el orden de los demás elementos (5.62464ms) +@repo/rdx-ui:test: ✔ destinos inválidos y posiciones sin cambio no producen una nueva ordenación (0.316602ms) +@repo/rdx-ui:test: ✔ reordenar mantiene identidades, secciones y obligatoriedad sin modificar los objetos (0.216101ms) +@repo/rdx-ui:test: ✔ la comparación parcial pliega vocales, caja y representaciones Unicode equivalentes (9.986371ms) +@repo/rdx-ui:test: ✔ ñ conserva identidad compuesta y descompuesta y otras escrituras no se transliteran (0.401703ms) +@repo/rdx-ui:test: ✔ puntuación técnica, números y espacios interiores siguen siendo significativos (0.418203ms) +@repo/rdx-ui:test: ✔ vacíos y valores sin texto no serializan objetos arbitrarios (0.271802ms) +@repo/rdx-ui:test: ✔ formatea números españoles y conserva extensiones para visualización y llamada (1.712412ms) +@repo/rdx-ui:test: ✔ preserva números internacionales no españoles sin inventar agrupaciones (3.454924ms) +@repo/rdx-ui:test: ✔ el enlace telefónico usa el número formateado y mantiene un nombre accesible (10.479774ms) +@repo/rdx-ui:test: ✔ selector remoto: selección compacta al principio, radios etiquetados y orden recibido sin paginación local (45.15262ms) +@repo/rdx-ui:test: ✔ selector remoto: vacío, carga y error no se confunden y errores ocultan filas obsoletas (12.074485ms) +@repo/rdx-ui:test: ✔ pestañas desplazables: conserva identidad, selección y etiquetas largas sin añadir focos al SSR (38.432372ms) +@repo/rdx-ui:test: ✔ el selector agrupa la acción etiquetada sin convertirla en envío de formulario (23.383066ms) +@repo/rdx-ui:test: ✔ el selector deshabilitado protege ambas acciones y admite selección sin botón (7.740854ms) +@repo/rdx-ui:test: ✔ La capacidad contextual admite presupuestos propios sin acoplarlos al viewport (1.081008ms) +@repo/rdx-ui:test: ✔ La pérdida de capacidad cierra sin abrir modal y los eventos repetidos no publican estado (0.753806ms) +@repo/rdx-ui:test: ✔ selección visual: vacío con acciones separadas y ficha elegida sin controles de envío (13.348695ms) +@repo/rdx-ui:test: ✔ selección visual: pendiente, deshabilitado y bloqueo protegen las acciones correspondientes (4.989135ms) +@repo/rdx-ui:test: ✔ PickerList: búsqueda etiquetada, selección única y opciones indisponibles visibles (39.113777ms) +@repo/rdx-ui:test: ✔ PickerList: estados de carga y vacío no presentan opciones falsas (21.10215ms) +@repo/rdx-ui:test: ✔ el rango del selector usa la entidad y su plural, nunca el título de la acción (45.15522ms) +@repo/rdx-ui:test: ✔ acciones multipaso: requisitos bloquean avance y guardado en cada paso (5.58954ms) +@repo/rdx-ui:test: ✔ acciones multipaso: guardar pendiente impide avanzar y retroceder (1.851714ms) +@repo/rdx-ui:test: ✔ línea temporal: conserva el orden aportado, fechas semánticas, autor y contenido (13.248293ms) +@repo/rdx-ui:test: ✔ línea temporal vacía: muestra el mensaje del consumidor como estado (0.573804ms) +@repo/rdx-ui:test: ℹ tests 83 +@repo/rdx-ui:test: ℹ suites 0 +@repo/rdx-ui:test: ℹ pass 83 +@repo/rdx-ui:test: ℹ fail 0 +@repo/rdx-ui:test: ℹ cancelled 0 +@repo/rdx-ui:test: ℹ skipped 0 +@repo/rdx-ui:test: ℹ todo 0 +@repo/rdx-ui:test: ℹ duration_ms 3207.299766 +@metis/resources:test: cache bypass, force executing eecbca772cc1d2a1 +@metis/identity:test: cache bypass, force executing 420e86a3143935a0 +@metis/identity:test: $ node --import tsx --test src/api/domain/user.aggregate.test.ts src/api/application/global-resource-authorization.test.ts src/api/infrastructure/persistence/user-persistence.mapper.test.ts src/api/infrastructure/security/scrypt-password-hasher.test.ts src/web/shared/api/identity-api.test.ts +@metis/resources:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/list/helpers/resource-columns.test.tsx src/web/resources/list/helpers/resource-list-preferences.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx +@metis/resources:test: ✔ R2.6: nombre y proveedor son señales, nunca equivalencia confirmada (5.613539ms) +@metis/resources:test: ✔ R2.6: preserva tildes, puntuación, abreviaturas, ediciones, versiones y números (0.477203ms) +@metis/resources:test: ✔ R2.6: homónimos genéricos se mantienen débiles y los UUID nunca se sustituyen (39.72538ms) +@metis/identity:test: ✔ resources.global.manage exige sesión vigente, flag persistido e identidad bootstrap (7.795755ms) +@metis/identity:test: ✔ el administrador inicial no se puede crear ni actualizar inactivo (21.745954ms) +@metis/identity:test: ✔ actualizar es idempotente, conserva identidad y cambiar contraseña invalida sesiones (5.978942ms) +@metis/identity:test: ✔ crear genera UUID v7 y rehidratar conserva el UUID original (2.870121ms) +@metis/resources:test: ✔ F2: SO global público tipado, sin contaminación de aplicaciones ni perfiles (12.458988ms) +@metis/resources:test: ✔ F2: elegibilidad de SO exige stock real y campos globales (0.341602ms) +@metis/resources:test: ✔ F2: contrato 3 y gates de SO independientes; aplicaciones no abren SO (0.368002ms) +@metis/identity:test: ✔ el mapper reconstruye Value Objects y conserva la identidad y valores persistidos (8.594461ms) +@metis/identity:test: ✔ una inconsistencia persistida falla sin generar un identificador sustituto ni filtrar datos (3.964828ms) +@metis/resources:test: ✔ F3: cualquier escritor valida identidad publicada, corrección documental e historial (41.603894ms) +@metis/resources:test: ✔ recurso: activar/desactivar conserva datos e historial y repetir estado no añade revisiones (14.472202ms) +@metis/resources:test: ✔ recurso: valida identidades y rechaza actuar sobre recursos ajenos (8.49726ms) +@metis/resources:test: ✔ recurso: propaga el bloqueo por asociaciones y permite desactivar (2.019114ms) +@metis/resources:test: ✔ recurso: elimina y la repetición devuelve ausencia sin efectos adicionales (1.597711ms) +@metis/resources:test: ✔ elegibilidad global exige serie exacta y campos globales; las copias no elevan ámbito (1.583411ms) +@metis/resources:test: ✔ schemas discriminan owner, propósito, OS local y proyecciones privadas (15.344708ms) +@metis/resources:test: ✔ requests acotan lotes, consulta, paginación y rechazan privilegios o integración (4.551232ms) +@metis/resources:test: ✔ búsqueda literal conserva ñ, puntuación y espacios; pagina tras filtrar con desempate UUID (6.691347ms) +@metis/resources:test: ✔ R2.5 admite gates configurables; los valores predeterminados siguen cerrados (0.518004ms) +@metis/resources:test: ✔ R2.5: software y perfil se habilitan por separado y requieren catálogo (0.420303ms) +@metis/resources:test: ✔ R2.5: perfil no depende de software ni abre asociaciones con catálogo cerrado (0.209901ms) +@metis/resources:test: ✔ lectores locales: excluyen global y otra compañía incluso si el repositorio los entrega; stockKey no depende del nombre (54.672986ms) +@metis/resources:test: ✔ HTTP actual sin MariaDB: aislamiento con 15 compañías, 50 recursos locales, alta, edición, estado e historial (301.30263ms) +@metis/resources:test: ✔ DNS: normalización explícita, etiqueta única heredada, punto raíz y política ASCII IDN (2.71452ms) +@metis/resources:test: ✔ capacidad estable: la plantilla renombrada sigue siendo dominio y una copia arbitraria no (7.983956ms) +@metis/resources:test: ✔ alta, edición, DNS y archivo usan Resource y conservan su identidad e historial (17.516424ms) +@metis/resources:test: ✔ catálogo: DNS obligatorio protegido, NetBIOS opcional e inicialización idempotente (17.467324ms) +@metis/resources:test: ✔ identificadores de campo: mayúsculas no cambian identidad ni permiten duplicados (0.886107ms) +@metis/resources:test: ✔ global: crear exige UUID v7 y conserva identidad y propietario en edición e idempotencia (17.236722ms) +@metis/resources:test: ✔ global: captura por stockKey, sin depender del nombre traducido de la plantilla (1.812913ms) +@metis/resources:test: ✔ SMB acepta \\NAS-01\Finanzas (2.489418ms) +@metis/resources:test: ✔ SMB acepta \\files.example.local\Docs (0.339402ms) +@metis/resources:test: ✔ SMB acepta \\192.168.5.10\C$ (0.123501ms) +@metis/resources:test: ✔ SMB acepta \\samba\Diseño\Año 2026 (0.554904ms) +@metis/resources:test: ✔ SMB acepta \\NAS\Docs\ (0.363303ms) +@metis/resources:test: ✔ SMB rechaza "" (0.214102ms) +@metis/resources:test: ✔ SMB rechaza "\\\\" (0.213302ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host" (0.106001ms) +@metis/resources:test: ✔ SMB rechaza "\\\\\\share" (1.606612ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\\\" (0.611404ms) +@metis/resources:test: ✔ SMB rechaza "C:\\Datos" (0.196401ms) +@metis/resources:test: ✔ SMB rechaza "https://host/share" (0.105801ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share\\.." (0.385203ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share\\." (0.179701ms) +@metis/resources:test: ✔ SMB rechaza "\\\\?\\UNC\\host\\share" (0.190101ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share\\\\child" (0.258802ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share." (0.255902ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\ share" (0.077801ms) +@metis/resources:test: ✔ SMB rechaza "\\\\ho st\\share" (0.0603ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\bad\u0000" (0.103601ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\bad\ud800" (0.115301ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (0.072801ms) +@metis/resources:test: ✔ SMB: comparación conservadora, alias y Unicode sin transformaciones destructivas (0.557504ms) +@metis/resources:test: ✔ SMB: semántica por stockKey y protección del catálogo sin bloquear etiquetas u obligatoriedad (21.862955ms) +@metis/resources:test: ✔ SMB: alta validada y diagnóstico histórico sin conversión ni revisión (20.522645ms) +@metis/resources:test: ✔ SMB: nuevas altas fijan integración access y rechazan contexto incompatible (14.162601ms) +@metis/resources:test: ✔ F1: identidad completa, edición conocida/no aplicable/desconocida e inactivos (4.562432ms) +@metis/resources:test: ✔ F1: normalización conservadora no equipara ediciones, releases ni ausencia desconocida (0.403502ms) +@metis/resources:test: ✔ F1: evolución de stock personalizada e idempotente; no elimina campos ni cambia obligatoriedad (38.832674ms) +@metis/resources:test: ✔ F1: un catálogo anterior evoluciona sin sobrescribir bindings ni recursos particulares (14.833305ms) +@metis/resources:test: ✔ campo PNG Icono: evoluciona tres plantillas sin reemplazar personalizaciones ni reponer bindings retirados (69.245589ms) +@metis/resources:test: ✔ catálogo de recursos: serie idempotente, UUID v7, características opcionales y protección (31.759324ms) +@metis/resources:test: ✔ ámbitos, tipos, listas, campos externos y disponibilidad por compañía (8.007156ms) +@metis/resources:test: ✔ licencias: ampliar un catálogo previo conserva identidades y disponibilidad (30.580916ms) +@metis/resources:test: ✔ plantillas globales de serie editables: conserva identidad, asociaciones, disponibilidad y cambios al reiniciar (20.274644ms) +@metis/resources:test: ✔ campos globales de serie editables: listas ampliables, tipo fijo y opciones existentes conservadas (39.002076ms) +@metis/resources:test: ✔ sistema operativo: plantilla con uso explícito, copia y ampliación sin sobrescribir definiciones (8.46226ms) +@metis/resources:test: ✔ iconos de recursos: todas las plantillas de serie tienen su icono y el arranque no repone los retirados (20.187243ms) +@metis/resources:test: ✔ iconos de recursos: cambiar y retirar el icono conserva identidad y asociaciones, con guardado idempotente (19.602839ms) +@metis/resources:test: ✔ iconos de recursos: claves desconocidas, cadenas vacías e iconos de campos se rechazan (5.74254ms) +@metis/resources:test: ✔ ámbito: pares válidos y rechazo runtime de propietarios contradictorios o ausentes (30.841918ms) +@metis/resources:test: ✔ ámbito: proyección preparada separada; HTTP local conserva exactamente su contrato (7.874355ms) +@metis/resources:test: ✔ ámbito: edición y propagación locales conservan propietario, UUID e historia; globales son solo lectura (2.624519ms) +@metis/resources:test: ✔ Resource: propaga altas, orden y retiradas conservando cero/falso, valores e historial; repetir no genera revisiones (30.450016ms) +@metis/resources:test: ✔ Resource: los campos retirados no impiden añadir una plantilla completa y no se fusionan por nombre (4.065029ms) +@metis/resources:test: ✔ Resource: retirar secciones conserva solo las necesarias y mover o reincorporar campos aplica el destino (0.737806ms) +@metis/resources:test: ✔ recursos: tipos, valores opcionales y obligatorios, cero/falso y campos desconocidos (14.505603ms) +@metis/resources:test: ✔ recurso: identidad estable, historial, desactivación e idempotencia (2.470618ms) +@metis/resources:test: ✔ buzón como recurso: correo válido, cuenta opcional, cambios auditados y tipo fijo (3.393724ms) +@metis/resources:test: ✔ secciones: nombres, identidades, referencias y un solo nivel (16.051813ms) +@metis/resources:test: ✔ secciones: igualdad, orden, identidad y persistencia JSON (4.986835ms) +@metis/resources:test: ✔ secciones: plantillas globales y locales conservan separación y UUID al editar (9.112064ms) +@metis/resources:test: ✔ secciones de serie: el arranque conserva una plantilla sin grupos y su disponibilidad (28.640302ms) +@metis/resources:test: ✔ especificación: secciones capturadas, edición posterior y obligatoriedad independiente (25.307379ms) +@metis/resources:test: ✔ lector legacy: roundtrip conserva UUID, revisiones, valores, actor, fecha y DTO sin columna scope (23.473765ms) +@metis/resources:test: ✔ lector: solo el adaptador legacy conocido interpreta ausencia; ningún ámbito inválido usa fallback (5.139937ms) +@metis/resources:test: ✔ proyecciones operativas: global sintético se rechaza antes de SQL, el recurso local sin integración no crea proyección (118.019734ms) +@metis/resources:test: ✔ escritor scoped: envía company explícito, preserva la salida legacy y rechaza global (4.865534ms) +@metis/identity:test: ✔ scrypt usa sales distintas y rechaza contraseñas y hashes incorrectos (2205.191982ms) +@metis/identity:test: ✔ la sesión valida la respuesta y conserva el contrato público utilizado por la aplicación (35.595351ms) +@metis/identity:test: ✔ login, configuración inicial, usuarios y contraseñas conservan rutas, body y CSRF (7.216251ms) +@metis/identity:test: ✔ cerrar sesión espera la respuesta de la operación sin perder el token (2.311416ms) +@metis/identity:test: ✔ los errores HTTP no filtran detalles internos y los datos de sesión inválidos se rechazan (9.692469ms) +@metis/identity:test: ℹ tests 11 +@metis/identity:test: ℹ suites 0 +@metis/identity:test: ℹ pass 11 +@metis/identity:test: ℹ fail 0 +@metis/identity:test: ℹ cancelled 0 +@metis/identity:test: ℹ skipped 0 +@metis/identity:test: ℹ todo 0 +@metis/identity:test: ℹ duration_ms 2535.969422 +@metis/resources:test: ✔ selección múltiple añade un lote sin duplicados y conserva las reglas y el orden existentes (4.462732ms) +@metis/resources:test: ✔ añadir desde una sección asigna solo los campos nuevos a su destino y conserva los existentes (1.37921ms) +@metis/resources:test: ✔ la selección respeta el límite del schema, valida identificadores y rechaza el conjunto vacío (1.904614ms) +@metis/resources:test: ✔ el listado reutiliza tabla, búsqueda y casillas traducidas y conserva las selecciones bloqueadas (90.175237ms) +@metis/resources:test: ✔ L04.2: campos de recursos recuperan orden y página sin heredar otra pestaña (106.537252ms) +@metis/resources:test: ✔ el catálogo muestra plantillas de serie y acción de alta sin formularios junto al listado (82.186679ms) +@metis/resources:test: ✔ los formularios tienen ayuda inferior y selección de campos en diálogo con alta rápida (24.310772ms) +@metis/resources:test: ✔ iconos de recursos: catálogo y selector traducido conservan la selección al editar y copiar (213.782908ms) +@metis/resources:test: ✔ catálogo global: lectura mínima y navegación traducidas, sin administración para ordinarios (34.304842ms) +@metis/resources:test: ✔ R2.4: mutación global invalida solo instalaciones cacheadas que usan su UUID (3.315423ms) +@metis/resources:test: ✔ R2.5: cambio global invalida configuraciones afectadas y preserva otras compañías (1.377609ms) +@metis/resources:test: ✔ SO global: lectura pública es/en conserva identidad estructurada y navegación propia (10.999077ms) +@metis/resources:test: ✔ SO global: invalida software y su catálogo sin refrescar aplicaciones ni perfiles (1.41171ms) +@metis/resources:test: ✔ columnas de características de recursos: identidad, campos nuevos de catálogo, instantáneas y nombres repetidos (19.452737ms) +@metis/resources:test: ✔ columnas elegidas es/en: cero, falso, fecha localizada, unidades y guion para campos ajenos (64.294553ms) +@metis/resources:test: ✔ los campos compartidos conservan un único ID y todos sus contextos de catálogo e instantánea (2.248916ms) +@metis/resources:test: ✔ columnas generales e integración es/en: notas, fechas, autores y referencias semánticas (28.149099ms) +@metis/resources:test: ✔ orden de recursos: aislamiento por compañía y pestaña, incluida Todo (14.629903ms) +@metis/resources:test: ✔ orden de recursos: una URL explícita prevalece sobre la preferencia sin sobrescribirla (0.956207ms) +@metis/resources:test: ✔ preferencias opcionales: datos inválidos y almacenamiento bloqueado no impiden listar (1.158408ms) +@metis/resources:test: ✔ cambiar pestaña limpia el orden y la paginación anteriores conservando la búsqueda (0.334003ms) +@metis/resources:test: ✔ la integración de buzón conserva su configuración explícita y no inventa referencias (1.264309ms) +@metis/resources:test: ✔ los valores iniciales toleran catálogo pendiente y limitan el nombre sin cambiar la entrada (1.066008ms) +@metis/resources:test: ✔ nombre propuesto: prioriza los identificadores de cada plantilla y limita su longitud (31.647324ms) +@metis/resources:test: ✔ nombre propuesto: contempla campos personalizados y descarta valores no identificativos (0.433603ms) +@metis/resources:test: ✔ paso de campos: exige valores obligatorios y acepta cero y respuestas negativas (4.652333ms) +@metis/resources:test: ✔ paso de campos: requiere la dirección de buzón aunque la plantilla la marque opcional (4.551232ms) +@metis/resources:test: ✔ recursos: listado con alta modal y sin formulario visible, en español e inglés (100.487508ms) +@metis/resources:test: ✔ Recursos: las pestañas incluyen plantillas vacías e inactivas y combinan identidad y búsqueda (326.281401ms) +@metis/resources:test: ✔ recurso: ayuda inferior, plantilla con alta rápida y sin asignaciones de recursos (15.018306ms) +@metis/resources:test: ✔ licencia: formulario reutilizable con campos opcionales y ayuda antes de guardar (18.241428ms) +@metis/resources:test: ✔ asistencia: alta de recurso con plantilla específica y características opcionales (7.586953ms) +@metis/resources:test: ✔ alta por pasos: solo muestra la plantilla inicialmente y traduce su navegación (16.068113ms) +@metis/resources:test: ✔ indicador de alta: conserva la plantilla elegida y explica el paso actual en ambos idiomas (8.051457ms) +@metis/resources:test: ✔ recursos: resumen de plantilla con unidades, booleanos traducidos, cero y límite de cuatro (15.409708ms) +@metis/resources:test: ✔ recursos: ficha lateral compacta traducida con cierre, acciones y contenido relacionado (11.871583ms) +@metis/resources:test: ✔ recursos: inventario y panel usan el icono vigente de la plantilla sin cambiar la especificación (15.327108ms) +@metis/resources:test: ✔ dominio: el formulario traduce el contexto pendiente y solo presenta un entorno confirmado (10.916177ms) +@metis/resources:test: ✔ SMB: formulario explica acceso automático o histórico sin selectores incompatibles, es/en (7.868855ms) +@metis/resources:test: ✔ UNC: presentación por segmentos conserva exactamente separadores, Unicode y valores repetidos (4.800234ms) +@metis/resources:test: ✔ campo declarativo: traduce opciones propias y conserva valores que coinciden con el prototipo (41.06259ms) +@metis/resources:test: ℹ tests 126 +@metis/resources:test: ℹ suites 0 +@metis/resources:test: ℹ pass 126 +@metis/resources:test: ℹ fail 0 +@metis/resources:test: ℹ cancelled 0 +@metis/resources:test: ℹ skipped 0 +@metis/resources:test: ℹ todo 0 +@metis/resources:test: ℹ duration_ms 5139.287091 +@metis/assets:test: cache bypass, force executing 86c4d0036baaca5b +@metis/assets:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/asset-catalog.test.ts src/api/domain/asset.test.ts src/api/domain/asset-template-propagation.test.ts src/api/domain/infrastructure.test.ts src/api/domain/workstation.test.ts src/api/domain/asset-relationship.test.ts src/web/catalog/shared/catalog.test.tsx src/web/assets/shared/inventory.test.tsx src/web/assets/shared/helpers/asset-columns.test.tsx src/web/assets/detail/ui/asset-detail.test.tsx src/web/infrastructure/shared/infrastructure.test.tsx src/api/domain/support.test.ts src/web/support-connections/shared/support.test.tsx src/api/domain/brand.test.ts src/web/brands/shared/brands.test.tsx src/api/domain/template-sections.test.ts src/web/workstations/shared/helpers/workstation-creation.test.ts src/web/workstations/shared/workstation-name.test.ts src/web/workstations/rename/api/rename-workstation.test.ts src/web/assets/list/asset-workstation.test.tsx src/web/assets/select/asset-selection.test.tsx src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-membership.test.ts src/api/infrastructure/persistence/directory-membership-provider.test.ts src/web/directory-memberships/shared/directory-memberships.test.tsx src/api/domain/network-share-publication.test.ts src/web/network-share-publications/shared/network-share-ui.test.tsx src/api/application/workstation-concurrency.test.ts src/web/workstations/shared/helpers/workstation-asset-availability.test.ts +@metis/assets:test: ✔ WD04.4: revisión obsoleta rechazada antes de reemplazar composición; revisión actual conserva historial (8.002661ms) +@metis/assets:test: ✔ el catálogo inicial es idempotente, con UUID propios y características opcionales (67.169313ms) +@metis/assets:test: ✔ la disponibilidad por compañía conserva el global y los campos desactivados (51.12489ms) +@metis/assets:test: ✔ las plantillas validan ámbito, campos activos e identidad estable al editar (14.512411ms) +@metis/assets:test: ✔ los campos validan listas, igualdad semántica, duplicados y tipo fijo (0.849306ms) +@metis/assets:test: ✔ solo elimina definiciones globales personalizadas que no usan otras plantillas (1.594312ms) +@metis/assets:test: ✔ iconos opcionales: cambio y retirada conservan identidad y asociaciones (26.877305ms) +@metis/assets:test: ✔ el arranque conserva un icono de serie retirado sin cambiar UUID, campos o disponibilidad (39.984005ms) +@metis/assets:test: ✔ los iconos desconocidos o asociados a campos se rechazan (3.710729ms) +@metis/assets:test: ✔ revisión explícita conserva identidades, copias y otras plantillas (40.239807ms) +@metis/assets:test: ✔ plantillas globales de serie editables: conserva identidad, asociaciones, disponibilidad y cambios al reiniciar (39.765303ms) +@metis/assets:test: ✔ campos globales de serie editables: listas ampliables, tipo fijo y opciones existentes conservadas (15.621219ms) +@metis/assets:test: ✔ Las relaciones validan sus extremos, normalizan nombres y distinguen dirección (6.353948ms) +@metis/assets:test: ✔ Retirar conserva UUID, extremos y auditoría; repetir la retirada no modifica el historial (2.048216ms) +@metis/assets:test: ✔ Tipos de relación de serie protegidos, ámbito de compañía y dirección fija (51.688295ms) +@metis/assets:test: ✔ Asset: propaga altas, orden y retiradas conservando cero/falso, valores e historial; repetir no genera revisiones (49.171475ms) +@metis/assets:test: ✔ Asset: los campos retirados no impiden añadir una plantilla completa y no se fusionan por nombre (2.330818ms) +@metis/assets:test: ✔ Asset: retirar secciones conserva solo las necesarias y mover o reincorporar campos aplica el destino (1.077908ms) +@metis/assets:test: ✔ las secciones conservadas desambiguan el nombre respetando el límite de 100 caracteres (0.715805ms) +@metis/assets:test: ✔ Características opcionales, tipos y límites; cero y falso son valores presentes (10.766982ms) +@metis/assets:test: ✔ Activo conserva UUID y revisiones; los cambios iguales son idempotentes (1.228409ms) +@metis/assets:test: ✔ texto largo conserva saltos de línea y rechaza tipos no textuales (0.580004ms) +@metis/assets:test: ✔ estado técnico y uso: asignaciones calculadas, elegibilidad exclusiva/compartida e historial conservado (0.814307ms) +@metis/assets:test: ✔ Fecha de alta opcional: calendario real, independencia de compra, revisiones e idempotencia (2.933523ms) +@metis/assets:test: ✔ sedes archivadas: nuevas referencias rechazadas y referencias anteriores conservadas (3.745429ms) +@metis/assets:test: ✔ Marcas: nombre normalizado, UUID v7, protección de serie, estado e idempotencia (8.680066ms) +@metis/assets:test: ✔ Marcas: SVG estáticos con transparencia, límites y contenido activo rechazado (30.101729ms) +@metis/assets:test: ✔ Marcas: los 23 fabricantes tienen SVG local validado; Clónico no representa una marca (11.416287ms) +@metis/assets:test: ✔ Marcas: añadir, sustituir y quitar SVG conserva identidad, origen y actualización idempotente (2.962022ms) +@metis/assets:test: ✔ Marcas: mapper bidireccional conserva identidad y rechaza persistencia inválida (4.020431ms) +@metis/assets:test: ✔ Marcas: unicidad, edición y eliminación de personalizadas, con protección de serie (12.729197ms) +@metis/assets:test: ✔ pertenencia explícita: un rol, identidad UUID v7 e idempotencia sin nuevas revisiones (3.804829ms) +@metis/assets:test: ✔ promoción y retirada del rol conservan asociación e historial; finalización repetida es inocua (2.986822ms) +@metis/assets:test: ✔ cambio de dominio crea sucesor único y cierre atómico planificado; admite reintentos y rechaza conflictos (3.285525ms) +@metis/assets:test: ✔ capacidad, estado y compañía: rechaza extremos incompatibles sin inferencias de nombre (0.457403ms) +@metis/assets:test: ✔ activos o dominios inactivos conservan vínculos y permiten cerrar o retirar el rol (3.085423ms) +@metis/assets:test: ✔ mapper: rehidratación consistente, UUID conservados y rechazo de revisiones corruptas (2.145716ms) +@metis/assets:test: ✔ contratos estrictos: roles, paginación, UUID, acciones y privilegios arbitrarios (9.368472ms) +@metis/assets:test: ✔ infraestructura: interfaces independientes, varias IP, normalización y UUID v7 (8.167262ms) +@metis/assets:test: ✔ infraestructura: mismo contenido no cambia identidades ni añade revisiones (5.20574ms) +@metis/assets:test: ✔ infraestructura: rechaza nombres/IP duplicados, valores inválidos e identidades ajenas (4.758636ms) +@metis/assets:test: ✔ infraestructura: límites y direcciones repetidas entre interfaces o compañías permitidas (7.962561ms) +@metis/assets:test: ✔ publicación: alta, periodo, cierre idempotente e identidad persistida (11.049284ms) +@metis/assets:test: ✔ publicación: cardinalidad y reintento idéntico no crean periodos (0.693706ms) +@metis/assets:test: ✔ publicación: traslado explícito y replay estable incluso tras finalizar sucesor (1.183409ms) +@metis/assets:test: ✔ publicación: estados, recurso no SMB, identidad y fechas inválidas (1.125308ms) +@metis/assets:test: ✔ publicación: definición compatible con contratos comunes sin rol ni proveedor network (6.583251ms) +@metis/assets:test: ✔ asistencia: UUID v7, historial, cambios semánticos y fechas (4.755736ms) +@metis/assets:test: ✔ asistencia: preferido disponible y entrada estricta (1.32861ms) +@metis/assets:test: ✔ asistencia: varios métodos, duplicados, preferido único y activo retirado (2.255318ms) +@metis/assets:test: ✔ herramientas: protección de serie y desactivación sin perder referencias (0.701405ms) +@metis/assets:test: ✔ asistencia: mapper bidireccional y rechazo de historial inconsistente (10.077877ms) +@metis/assets:test: ✔ secciones: nombres, identidades, referencias y un solo nivel (6.233647ms) +@metis/assets:test: ✔ secciones: igualdad, orden, identidad y persistencia JSON (5.30674ms) +@metis/assets:test: ✔ secciones: plantillas globales y locales conservan separación y UUID al editar (6.121847ms) +@metis/assets:test: ✔ secciones de serie: el arranque conserva una plantilla sin grupos y su disponibilidad (60.35106ms) +@metis/assets:test: ✔ especificación: secciones capturadas, edición posterior y obligatoriedad independiente (27.326808ms) +@metis/assets:test: ✔ Puestos: composición opcional, referencias válidas y límites sin duplicados (9.422172ms) +@metis/assets:test: ✔ Puestos: UUID estable e historial de composición, persona y estado; guardado idéntico idempotente (8.228263ms) +@metis/assets:test: ✔ Puestos: ordenador principal exclusivo, único e independiente del responsable (1.25431ms) +@metis/assets:test: ✔ baja del puesto: libera composición y responsable, conserva historial e identidad y es idempotente (1.427311ms) +@metis/assets:test: ✔ definición real: proveedor, cardinalidad vigente, roles e inmutabilidad (5.803745ms) +@metis/assets:test: ✔ cursor firmado: vinculación a consulta y operador, sin aceptar UUID libres ni alteraciones (4.807337ms) +@metis/assets:test: ✔ extensión de Assets validada: roles y estados cerrados, UUID original y ámbito (4.855737ms) +@metis/assets:test: ✔ ficha de activo es/en: página con dos pestañas, información actual, relaciones y contenido de compañía (168.517881ms) +@metis/assets:test: ✔ historial del activo conserva instantáneas antiguas, interfaces retiradas y conexiones en ambos sentidos, ordenadas por fecha (28.004513ms) +@metis/assets:test: ✔ ficha de activo distingue carga, error y activo inexistente (10.48098ms) +@metis/assets:test: ✔ acciones: crear solo para portátiles, sobremesa y servidores disponibles (4.178831ms) +@metis/assets:test: ✔ acciones: abrir el puesto asociado aunque el activo sea periférico, no operativo o el puesto esté inactivo (1.977015ms) +@metis/assets:test: ✔ acciones: compañía y plantilla correctas; asociaciones solo históricas no bloquean el alta (0.656705ms) +@metis/assets:test: ✔ alta desde activo es/en: composición y ordenador preseleccionados, sede activa y nombre propuesto; edición y compañía se respetan (35.655471ms) +@metis/assets:test: ✔ inventario es/en: crear y ver puesto son acciones visibles fuera del menú (237.044303ms) +@metis/assets:test: ✔ la acción de selección conserva su texto visible como nombre accesible en es/en (37.739787ms) +@metis/assets:test: ✔ selector: comparte búsqueda, pestañas por identidad y columnas del inventario en es/en (194.068778ms) +@metis/assets:test: ✔ selector: filtra conjuntamente por plantilla, nombre, sede y estado; distingue vacío (127.220468ms) +@metis/assets:test: ✔ selector único: controles radio y disparador de diálogo; conserva el alta rápida y el bloqueo (36.039074ms) +@metis/assets:test: ✔ picker: búsqueda rápida disponible durante carga y error, sin anunciar un falso vacío (73.55016ms) +@metis/assets:test: ✔ inventario es/en: icono compacto antes del nombre, plantilla solo textual y ordenación por nombre (51.113489ms) +@metis/assets:test: ✔ columnas de características: identidad, campos nuevos de catálogo, instantáneas y nombres repetidos (31.417139ms) +@metis/assets:test: ✔ columnas elegidas es/en: cero, falso, fecha localizada, unidades y guion para campos ajenos (205.640566ms) +@metis/assets:test: ✔ columnas generales y de red es/en: fechas y autores propios, IP/MAC por interfaz y ausencia real (65.6848ms) +@metis/assets:test: ✔ los campos compartidos conservan un único ID y todos sus contextos de catálogo e instantánea (5.363441ms) +@metis/assets:test: ✔ La capacidad del inventario protege el presupuesto de tabla en el límite real (2.051716ms) +@metis/assets:test: ✔ El resize conserva el contexto abierto al ganar capacidad y nunca abre un modal (1.34351ms) +@metis/assets:test: ✔ Inventario traducido con alta de cabecera y sin formulario junto al listado (173.983123ms) +@metis/assets:test: ✔ Las pestañas incluyen plantillas vacías e inactivas y combinan identidad y búsqueda (263.986295ms) +@metis/assets:test: ✔ El activo ofrece altas relacionadas, ayuda inferior y no encadena una tercera alta (29.178304ms) +@metis/assets:test: ✔ Las fichas leen ambos sentidos y conservan la auditoría de relaciones retiradas (19.080733ms) +@metis/assets:test: ✔ El formulario de tipo de relación presenta ayuda justo antes de sus operaciones (12.92439ms) +@metis/assets:test: ✔ Puestos de trabajo: listado traducido, alta en cabecera y formulario modal (18.320229ms) +@metis/assets:test: ✔ Puestos de trabajo: altas rápidas y ayuda inferior; un activo anidado no ofrece terceras altas (18.658931ms) +@metis/assets:test: ✔ alta de puesto: sede única automática, responsable opcional y cuatro pasos traducidos (17.599823ms) +@metis/assets:test: ✔ la ficha lateral agrupa información y ofrece acciones superiores y enlaces reales (76.189233ms) +@metis/assets:test: ✔ texto largo: área editable con ayuda accesible (9.717768ms) +@metis/assets:test: ✔ las características marcan solo los campos obligatorios y conservan unidad y ayuda (11.128278ms) +@metis/assets:test: ✔ el resumen usa los campos propios de la plantilla, omite vacíos y texto largo y limita a cuatro (9.100264ms) +@metis/assets:test: ✔ alta de activo por pasos: empieza por plantilla, traduce la navegación y bloquea el avance sin selección (17.289221ms) +@metis/assets:test: ✔ el progreso de activos conserva la plantilla y explica los pasos en es/en (24.915174ms) +@metis/assets:test: ✔ las acciones por pasos solo ofrecen guardar al final y bloquean acciones durante el envío (25.72638ms) +@metis/assets:test: ✔ características obligatorias: rechaza ausentes y espacios y conserva cero y falso (0.263202ms) +@metis/assets:test: ✔ nombre propuesto: usa texto de la plantilla, omite marca y vacíos y respeta el límite (4.484831ms) +@metis/assets:test: ✔ diseño del puesto: grupos compactos, columnas por contenedor y resumen sin textos de ausencia (49.489146ms) +@metis/assets:test: ✔ activos del puesto: estado vacío visual traducido y acciones según disponibilidad (26.288284ms) +@metis/assets:test: ✔ diseño del puesto: navegación traducida y acciones bloqueadas durante el guardado (16.743417ms) +@metis/assets:test: ✔ ficha compacta de activo: comparte información, traducciones y acciones sin consultas propias (61.946034ms) +@metis/assets:test: ✔ ordenador principal: tarjetas con selección única, etiquetas es/en y solo los activos del puesto (41.231888ms) +@metis/assets:test: ✔ puestos: URL controla consulta, orden y página y sus enlaces conservan el contexto (17.444722ms) +@metis/assets:test: ✔ Marcas: listado común traducido, filtros y alta modal sin formulario junto a la tabla (153.856271ms) +@metis/assets:test: ✔ Marcas: nombre de serie protegido y ayuda inferior; alta rápida siempre activa (11.370486ms) +@metis/assets:test: ✔ Marcas: eliminar envía CSRF y cuerpo vacío, valida la respuesta y propaga conflictos (29.633425ms) +@metis/assets:test: ✔ Marcas: selector mantiene valores antiguos e inactivos y respeta el límite de alta anidada (16.862928ms) +@metis/assets:test: ✔ Marcas: el campo de serie se identifica por referencia de catálogo, no por el nombre (43.887534ms) +@metis/assets:test: ✔ selección múltiple añade un lote sin duplicados y conserva las reglas y el orden existentes (4.386134ms) +@metis/assets:test: ✔ añadir desde una sección asigna solo los campos nuevos a su destino y conserva los existentes (1.355711ms) +@metis/assets:test: ✔ la selección respeta el límite del schema, valida identificadores y rechaza el conjunto vacío (2.702721ms) +@metis/assets:test: ✔ el listado reutiliza tabla, búsqueda y casillas traducidas y conserva las selecciones bloqueadas (208.220186ms) +@metis/assets:test: ✔ L04.2: campos del catálogo recuperan orden y página desde su URL (257.320458ms) +@metis/assets:test: ✔ el catálogo muestra plantillas de serie y acción de alta sin formularios junto al listado (263.895708ms) +@metis/assets:test: ✔ el catálogo busca nombres sin acentos sin cambiar la consulta ni incluir campos de otras pestañas (69.60983ms) +@metis/assets:test: ✔ los formularios tienen ayuda inferior y reservan el alta rápida al diálogo de selección de campos (54.774517ms) +@metis/assets:test: ✔ las plantillas ofrecen selección visual traducida y conservan el icono al copiar (343.10661ms) +@metis/assets:test: ✔ dominio: roles estructurados, resumen solo de página y enlaces UUID, es/en (62.934679ms) +@metis/assets:test: ✔ tablas: miembro y finalización no se confunden con controlador o pertenencia vigente (7.080154ms) +@metis/assets:test: ✔ activo sin dominio: vacío explícito y asociación solo si el equipo es compatible (15.147815ms) +@metis/assets:test: ✔ activo unido: dominio, rol real, navegación y acciones especializadas (17.277231ms) +@metis/assets:test: ✔ carga y error de consulta no se muestran como dominio vacío (21.10926ms) +@metis/assets:test: ✔ API de lectura: conserva cursor opaco, tipo y ámbito; propaga errores funcionales (36.412777ms) +@metis/assets:test: ✔ traslado usa un único comando atómico, UUID esperado y CSRF; conflicto no se oculta (6.634051ms) +@metis/assets:test: ✔ infraestructura: clasificación de serie independiente del nombre/icono y selección manual prioritaria (2.262917ms) +@metis/assets:test: ✔ infraestructura: el total incluye roles e interfaces, respeta exclusiones manuales y no duplica activos (0.469703ms) +@metis/assets:test: ✔ infraestructura: listado y ficha presentan interfaces/IP en español e inglés, sin puertos (149.114135ms) +@metis/assets:test: ✔ SMB: relaciones paginadas, UNC Unicode y enlaces bidireccionales es/en (48.851771ms) +@metis/assets:test: ✔ SMB: historial conserva periodos y actores y no ofrece modificar periodos finalizados (15.77632ms) +@metis/assets:test: ✔ SMB: vacío real y error de lectura son distintos (14.282809ms) +@metis/assets:test: ✔ SMB: denegación oculta datos previos y carga inicial conserva cabeceras (20.125353ms) +@metis/assets:test: ✔ SMB: transferencia conserva UUID y envía un único comando propietario con CSRF (33.772157ms) +@metis/assets:test: ✔ SMB: búsqueda remota y cursor opaco viajan al servidor (1.743513ms) +@metis/assets:test: ✔ ficha SMB: publicador destacado, datos y timeline real es/en; solo lectura conserva navegación (46.998757ms) +@metis/assets:test: ✔ ficha SMB: vacío, finalizada, carga y denegación son estados distintos (32.88595ms) +@metis/assets:test: ✔ timeline SMB: solo hechos persistidos, UUID estable, traslado y cierre sin sucesor en página (1.608512ms) +@metis/assets:test: ✔ historial v2: utiliza únicamente nombres autorizados aportados y conserva UUID técnicos (17.517333ms) +@metis/assets:test: ✔ asistencia: formulario con alta rápida y ayuda antes de guardar (32.597628ms) +@metis/assets:test: ✔ asistencia: resumen excluye retirados, ordena preferido y conserva la gestión original (13.336693ms) +@metis/assets:test: ✔ asistencia: traducciones y resumen de método (1.553311ms) +@metis/assets:test: ✔ asistencia: resumen documental muestra destino, VPN y preferencia sin acciones de gestión (1.955114ms) +@metis/assets:test: ✔ asistencia: referencia no resuelta conserva el registro con ausencia y explicación (1.049908ms) +@metis/assets:test: ✔ renombrar: usa valores vigentes, normaliza el nombre, valida respuesta y envía CSRF (31.449539ms) +@metis/assets:test: ✔ renombrar: rechaza vacíos, espacios y exceso de longitud antes de realizar peticiones (1.944815ms) +@metis/assets:test: ✔ renombrar: un nombre equivalente no provoca una escritura ni otra revisión (1.117308ms) +@metis/assets:test: ✔ renombrar: propaga puesto ausente y errores del servidor sin escritura posterior (3.073523ms) +@metis/assets:test: ✔ WD04.4: comparte reglas de disponibilidad, retención, ocupación y puesto inactivo (1.27861ms) +@metis/assets:test: ✔ alta: sede necesaria, responsable opcional, composición mínima y ordenador perteneciente al puesto (9.300671ms) +@metis/assets:test: ✔ composición: asigna el activo único, conserva una elección válida y limpia el ordenador retirado (0.212302ms) +@metis/assets:test: ✔ propone exactamente el nombre del activo principal, sin depender de la sede (0.877607ms) +@metis/assets:test: ✔ no propone nombre cuando falta el activo principal (2.424918ms) +@metis/assets:test: ℹ tests 155 +@metis/assets:test: ℹ suites 0 +@metis/assets:test: ℹ pass 155 +@metis/assets:test: ℹ fail 0 +@metis/assets:test: ℹ cancelled 0 +@metis/assets:test: ℹ skipped 0 +@metis/assets:test: ℹ todo 0 +@metis/assets:test: ℹ duration_ms 6584.535776 +@metis/companies:test: cache bypass, force executing dceb3932b3e86a9a +@metis/companies:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/company.aggregate.test.ts src/api/domain/people.test.ts src/web/companies/shared/companies-page.test.tsx src/web/people/list/people-search.test.tsx src/web/companies/list/company-filters.test.tsx src/web/shared/helpers/company-list-query-state.test.ts src/api/domain/access/access.test.ts src/api/domain/mail-configuration.test.ts src/api/domain/mailbox.test.ts src/web/access/shared/access.test.tsx src/web/mail-configurations/shared/mail.test.tsx src/api/domain/work-profile.test.ts src/web/work-profiles/shared/profile.test.tsx src/api/domain/printer-configuration.test.ts src/web/printer-configurations/shared/printer.test.tsx src/api/domain/application-configuration.test.ts src/web/application-configurations/shared/application.test.tsx src/api/domain/certificate-configuration.test.ts src/web/certificate-configurations/shared/certificate.test.tsx src/web/work-environments/shared/work-environment.test.tsx src/api/domain/telework-authorization.test.ts src/web/telework-authorizations/shared/telework.test.tsx src/api/domain/remote-connection.test.ts src/api/domain/process.test.ts src/web/remote-connections/shared/remote.test.tsx src/web/processes/shared/processes.test.tsx src/web/shared/initials-avatar.test.tsx src/api/infrastructure/company-logo-processor.test.ts src/web/companies/shared/company-avatar.test.tsx src/web/shared/client-contracts.test.ts src/web/infrastructure/shared/helpers/printer-usage.test.ts src/web/workstations/detail/helpers/workstation-relations.test.ts src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workstation-dashboard.test.ts src/web/workstations/detail/helpers/workstation-equipment.test.ts src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts src/web/people/shared/helpers/person-organization.test.ts src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workspace/shared/workspace-routes.test.ts src/web/workspace/view/helpers/sidebar-preference.test.ts src/api/domain/software-installation.test.ts src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/api/application/directory-context-plan.test.ts src/web/access/list/helpers/access-environment-filter.test.ts src/api/domain/folder-mapping-account.test.ts src/api/application/local-identity-plan.test.ts src/web/access/list/helpers/access-resource-filter.test.ts src/web/folder-mappings/shared/helpers/folder-account-options.test.ts src/web/local-identity-environments/shared/local-identities-ui.test.tsx src/web/workstations/detail/helpers/workplace-node-actions.test.tsx +@metis/companies:test: ✔ contexto AD: creación pura con identidades propias, sin cuentas, grupos ni activos (6.316944ms) +@metis/companies:test: ✔ clasificación independiente del nombre; no se adopta un sistema existente por llamarse AD (2.966321ms) +@metis/companies:test: ✔ se rechazan compañías distintas, referencias inexistentes y entornos sin clasificación (1.266209ms) +@metis/companies:test: ✔ DNS repetido no crea dos entornos; otro dominio comparte sistema y obtiene un entorno distinto (2.142315ms) +@metis/companies:test: ✔ identidad local: vínculo por UUID, alta y retirada idempotentes con identidad e historial protegidos (11.648882ms) +@metis/companies:test: ✔ identidad local: clasificación explícita rechaza AD por sistema o entorno, sin comparar etiquetas (1.019607ms) +@metis/companies:test: ✔ identidad local: crear entorno utiliza AccessWorkspace y conserva cuentas y sistema existentes (2.014614ms) +@metis/companies:test: ✔ catálogos globales no se duplican con adiciones locales y no se admiten grupos anidados (8.809062ms) +@metis/companies:test: ✔ renombrar una cuenta conserva UUID, historial y semántica de repetición; su uso permanece fijo (5.043036ms) +@metis/companies:test: ✔ cerrar una autorización configurada deja retirada pendiente y cerrar una pendiente no inventa un acceso (4.879734ms) +@metis/companies:test: ✔ titulares no se solapan incluso en periodos cerrados; el relevo conserva una retirada anterior (7.464252ms) +@metis/companies:test: ✔ responsabilidad técnica no concede acceso y se permite sobre una cuenta caducada o inactiva (2.488917ms) +@metis/companies:test: ✔ valores reconstruyen UUID y fechas, rechazan fechas imposibles y no permiten credenciales (23.062761ms) +@metis/companies:test: ✔ las referencias UUID se normalizan y no permiten duplicar cuentas variando mayúsculas (0.892507ms) +@metis/companies:test: ✔ aplicaciones: contrato estricto, versión opcional y solo instalada (12.461388ms) +@metis/companies:test: ✔ aplicaciones: UUID, idempotencia, versión auditada, destino fijo y retirada (4.858534ms) +@metis/companies:test: ✔ aplicaciones: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (2.458518ms) +@metis/companies:test: ✔ aplicaciones: inactividad conserva notas y permite retirada, impide reconfigurar (2.086314ms) +@metis/companies:test: ✔ aplicaciones: persistencia preserva historial y rechaza claves y orden incoherentes (10.783576ms) +@metis/companies:test: ✔ R2.5: global conserva perfil, delivery e historial; disponibilidad distinta de lectura histórica (2.538718ms) +@metis/companies:test: ✔ certificados: contrato estricto, ubicación opcional y límites (15.106007ms) +@metis/companies:test: ✔ certificados: UUID, idempotencia, ubicación auditada, destino fijo y retirada (4.099828ms) +@metis/companies:test: ✔ certificados: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (2.506018ms) +@metis/companies:test: ✔ certificados: inactividad conserva notas y permite retirada, impide reconfigurar (1.769513ms) +@metis/companies:test: ✔ certificados: persistencia preserva historial y rechaza claves y orden incoherentes (8.274558ms) +@metis/companies:test: ✔ certificados: caducidad inclusiva, revisión y retirada sin perder historial (1.552511ms) +@metis/companies:test: ✔ compañía, contacto y sede tienen UUID v7 propios y se conserva la identidad al editar (5.565739ms) +@metis/companies:test: ✔ la pertenencia impide asociar o editar entidades de otra compañía (1.087008ms) +@metis/companies:test: ✔ la dirección y el teléfono son optativos y se pueden borrar (0.984707ms) +@metis/companies:test: ✔ nombres, email, teléfono y longitud de dirección se validan en los Value Objects (1.45581ms) +@metis/companies:test: ✔ sedes: archivar y reactivar conserva identidad y datos; repetir el estado es idempotente (1.008607ms) +@metis/companies:test: ✔ FolderMapping: cuenta desconocida, cuenta alternativa y cobertura independiente de la necesidad (27.264191ms) +@metis/companies:test: ✔ FolderMapping: ausencia conserva cuenta, null la retira y cada cambio real crea revisión (4.324331ms) +@metis/companies:test: ✔ FolderMapping: rechaza cuenta ausente, otro subtipo, otra persona, caducada o desactivada (3.714126ms) +@metis/companies:test: ✔ FolderMapping: Coverage por grupo exige pertenencia directa de la cuenta y configuración vigente (10.375472ms) +@metis/companies:test: ✔ FolderMapping: cobertura derivada cambia al retirar concesión, necesidad, cuenta o asociación personal (26.463585ms) +@metis/companies:test: ✔ FolderMapping: todas las autorizaciones necesarias deben proceder de la cuenta seleccionada (3.464925ms) +@metis/companies:test: ✔ Correo: UUIDv7, normalización, no-op, historial y retirada explícita (5.69064ms) +@metis/companies:test: ✔ Correo: buzón independiente, vigencia, perfiles, varios buzones y duplicados abiertos (11.498081ms) +@metis/companies:test: ✔ Correo: persistencia conserva identidad e historial y rechaza corrupción (4.902435ms) +@metis/companies:test: ✔ Correo: vinculación explícita del legado conserva UUID e historial, sin inferir propiedad (8.628261ms) +@metis/companies:test: ✔ Buzón: identidad, dirección única, cuenta opcional, ámbito y cambios auditados (4.30253ms) +@metis/companies:test: ✔ Uso de buzón: fechas inclusiva/exclusiva, mismo día, solapes, varias personas e historial (5.243037ms) +@metis/companies:test: ✔ Buzones: mapper conserva identidad y revisiones, rechaza corrupción (7.748454ms) +@metis/companies:test: ✔ personas con datos opcionales no requieren cuenta de acceso y conservan su UUID (3.634826ms) +@metis/companies:test: ✔ departamentos únicos por compañía, ignorando mayúsculas y espacios exteriores (1.500311ms) +@metis/companies:test: ✔ varios departamentos, un único principal y sin periodos solapados (3.058422ms) +@metis/companies:test: ✔ ediciones conservan revisiones y una repetición semántica no añade historial (3.894828ms) +@metis/companies:test: ✔ inactivos no reciben nuevas asignaciones; se conservan y pueden cerrarse las existentes (1.253109ms) +@metis/companies:test: ✔ asignaciones rechazan pertenencias cruzadas y fechas inválidas (1.40911ms) +@metis/companies:test: ✔ la persistencia rechaza periodos inválidos y revisiones que no reflejan el estado actual (1.653612ms) +@metis/companies:test: ✔ impresoras: contratos estrictos, notas opcionales y predeterminada solo vigente (6.106043ms) +@metis/companies:test: ✔ impresoras: UUID, historial, igualdad semántica, destino fijo y retirada terminal (5.412138ms) +@metis/companies:test: ✔ impresoras: duplicados por perfil, predeterminada única y destinos del ámbito (2.069815ms) +@metis/companies:test: ✔ impresoras: indisponibilidad señala revisión y permite notas y retirada (1.681612ms) +@metis/companies:test: ✔ impresoras: rehidratación conserva identidades y detecta corrupción (12.113385ms) +@metis/companies:test: ✔ procesos: contratos estrictos, normalización y límites (9.968171ms) +@metis/companies:test: ✔ procesos: UUID v7, tareas con identidad, actualización idempotente e historial (3.132022ms) +@metis/companies:test: ✔ procesos: completar exige todas resueltas; cierre terminal y sujeto/tareas fijos (2.994921ms) +@metis/companies:test: ✔ procesos: añadir revisiones conserva las resueltas e identidades y no duplica (2.939221ms) +@metis/companies:test: ✔ plantillas: copia de instrucciones, igualdad semántica y cambios independientes (3.874627ms) +@metis/companies:test: ✔ procesos: rehidratación bidireccional y rechazo de raíces/historial alterados (12.404087ms) +@metis/companies:test: ✔ revisión: personales, retirada pendiente y relaciones finalizadas aún configuradas (0.622205ms) +@metis/companies:test: ✔ revisión: incluye configuraciones de perfiles archivados, excluye cerradas y evita duplicar (0.324303ms) +@metis/companies:test: ✔ remotos: origen personal sin detalle, destinos tipados y contrato estricto (8.768462ms) +@metis/companies:test: ✔ remotos: UUID e historial, destino fijo, idempotencia y cierre terminal (4.050929ms) +@metis/companies:test: ✔ remotos: referencias de compañía y duplicados abiertos por recorrido y herramienta (2.91722ms) +@metis/companies:test: ✔ remotos: configuración y autorización independientes; caducidad y revocación no borran acceso (3.194822ms) +@metis/companies:test: ✔ remotos: disponibilidad de origen y destino, retirada y método personalizado (2.88302ms) +@metis/companies:test: ✔ remotos: persistencia conserva auditoría y detecta referencias, claves e historial corruptos (7.385552ms) +@metis/companies:test: ✔ remotos: una sede archivada conserva conexiones existentes pero rechaza nuevas (1.256309ms) +@metis/companies:test: ✔ instalaciones: pertenecen al equipo, admiten SO/aplicaciones y rechazan recursos ajenos y destinos variables (9.373566ms) +@metis/companies:test: ✔ instalaciones: versiones, idempotencia, retirada, revisión y persistencia de historial (10.346973ms) +@metis/companies:test: ✔ licencia del software: opcional, misma compañía y tipo, vigencia, desvinculación e historial idempotente (12.72739ms) +@metis/companies:test: ✔ R2.4: global activo e inactivo separan alta, reconfiguración y recuperación histórica (2.742719ms) +@metis/companies:test: ✔ teletrabajo: ausencia, límites, fechas reales y contrato estricto (5.256137ms) +@metis/companies:test: ✔ teletrabajo: UUID, renovación y revocación auditadas, igualdad y destino fijo (4.24363ms) +@metis/companies:test: ✔ teletrabajo: vigencia inclusiva, programación, caducidad y persona inactiva (4.183629ms) +@metis/companies:test: ✔ teletrabajo: ámbito, unicidad incluso revocada, disponibilidad y retirada (1.46941ms) +@metis/companies:test: ✔ teletrabajo: rehidratación preserva identidad y detecta corrupción de raíz e historial (15.839911ms) +@metis/companies:test: ✔ Perfil: cuenta opcional, UUID, historial, identidad fija e idempotencia (8.569961ms) +@metis/companies:test: ✔ Perfil: desactivar conserva valores e historial, es idempotente y precede al borrado (3.882928ms) +@metis/companies:test: ✔ Perfil: misma persona/dispositivo único vigente, múltiples dispositivos/personas y revisión sin pérdida de datos (1.964114ms) +@metis/companies:test: ✔ Perfil: cuenta autorizada, vigencia inclusiva de caducidad, cierre de autorización y cuenta técnica (1.759112ms) +@metis/companies:test: ✔ Perfil: persistencia conserva revisiones y rechaza raíz o cuenta histórica incoherentes (9.577167ms) +@metis/companies:test: ✔ Perfil: solo un ordenador principal activo admite altas y reactivaciones; el historial se conserva (1.34781ms) +@metis/companies:test: ✔ PNG, JPEG y WebP se normalizan sin recorte y sin metadatos a un avatar ligero (121.480154ms) +@metis/companies:test: ✔ se rechazan archivos vacíos, corruptos, SVG y GIF aunque simulen un MIME válido (5.095936ms) +@metis/companies:test: ✔ se rechazan excesos de peso y dimensión antes de almacenar (4.525432ms) +@metis/companies:test: ✔ los PNG animados se rechazan antes de decodificarlos (3.482825ms) +@metis/companies:test: ✔ el contexto distingue cuentas y grupos del entorno, sin incluir otros entornos o datos globales (4.24543ms) +@metis/companies:test: ✔ recurso contextual: incluye identidades de sistemas distintos sin mezclar necesidades y concesiones ajenas (14.283601ms) +@metis/companies:test: ✔ filtro vacío no incluye elementos ajenos y las rutas validan UUID y contexto de compañía (4.537132ms) +@metis/companies:test: ✔ los catálogos presentan alta mediante acción y no un formulario junto al listado (128.685003ms) +@metis/companies:test: ✔ cuentas ofrecen caducidad opcional y campos sin contraseña (50.624955ms) +@metis/companies:test: ✔ la ayuda explica todos los elementos en ambos idiomas y distingue el ámbito (86.806809ms) +@metis/companies:test: ✔ los ejemplos del sistema orientan sin rellenar datos del alta (7.138851ms) +@metis/companies:test: ✔ las altas rápidas respetan el contexto, ámbito y relaciones históricas (1.543211ms) +@metis/companies:test: ✔ los formularios ofrecen altas relacionadas y el segundo modal evita altas anidadas (166.859271ms) +@metis/companies:test: ✔ aplicaciones: listado sin formularios, alta en cabecera y traducciones (125.388881ms) +@metis/companies:test: ✔ aplicaciones: selectores con alta rápida y ayuda inferior antes de guardar (89.342327ms) +@metis/companies:test: ✔ R2.5: perfil muestra nombre, origen y versión global sin ResourceDTO local ni mezcla de perfiles (68.547381ms) +@metis/companies:test: ✔ certificados: listado sin formularios, alta en cabecera y traducciones (116.91052ms) +@metis/companies:test: ✔ certificados: selectores con alta rápida y ayuda inferior antes de guardar (38.49777ms) +@metis/companies:test: ✔ la compañía de origen es ámbito visible, no un filtro eliminable con Limpiar filtros (211.830186ms) +@metis/companies:test: ✔ directorio: orden y página proceden de URL sin perder la consulta (88.54252ms) +@metis/companies:test: ✔ las subentradas de Personas conservan contexto y reemplazan el filtro de la vista (33.231232ms) +@metis/companies:test: ✔ el dashboard no ofrece selector de compañía y conserva las métricas de cada ámbito (75.923632ms) +@metis/companies:test: ✔ el resumen de compañía es la entrada por defecto y ofrece destinos reales (106.748948ms) +@metis/companies:test: ✔ los índices de catálogos distinguen definiciones globales y variantes de compañía (12.268186ms) +@metis/companies:test: ✔ el listado presenta estado vacío y acceso al alta sin formularios visibles (76.98414ms) +@metis/companies:test: ✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (95.367068ms) +@metis/companies:test: ✔ el formulario de sede ofrece dirección y teléfono opcionales (13.513295ms) +@metis/companies:test: ✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (19.146134ms) +@metis/companies:test: ✔ asignar un departamento permite añadir el primero y conserva el selector en edición (29.248005ms) +@metis/companies:test: ✔ el tablero de compañía tiene composición propia, acciones arriba y métricas limitadas a su ámbito (21.568252ms) +@metis/companies:test: ✔ el menú de compañía ordena trabajo y personas por grupos sin repetir las acciones de usuario (37.07746ms) +@metis/companies:test: ✔ el menú muestra el contador de infraestructura: ready (62.566638ms) +@metis/companies:test: ✔ el menú muestra el contador de infraestructura: pending (56.617605ms) +@metis/companies:test: ✔ el menú muestra el contador de infraestructura: error (119.402496ms) +@metis/companies:test: ✔ sedes: listado traducido con filtro de archivadas y solo sedes activas por defecto (108.480513ms) +@metis/companies:test: ✔ la navegación de compañía conserva 21 enlaces reales, sección activa y contexto es/en (137.828533ms) +@metis/companies:test: ✔ el logo sustituye iniciales con URL versionada, dimensiones fijas y carga diferida (15.762511ms) +@metis/companies:test: ✔ sin logotipo aparecen iniciales y las listas consultan la misma caché de compañías (6.160443ms) +@metis/companies:test: ✔ cuentas del mapeo: exige asociación vigente y catálogos activos; no atribuye por login o por perfil (9.239665ms) +@metis/companies:test: ✔ actualización del mapeo: omitir cuenta conserva semántica distinta de retirarla explícitamente; admite revisión capturada (2.495018ms) +@metis/companies:test: ✔ uso de impresora: agrupa perfiles de un mismo equipo y separa pendientes e historial (18.638331ms) +@metis/companies:test: ✔ uso de impresora: referencias sin resolver no se presentan como ausencia de uso (0.549404ms) +@metis/companies:test: ✔ identidades locales: entorno del activo, navegación por UUID y estado vigente en es/en (52.481068ms) +@metis/companies:test: ✔ propietario local: vínculo retirado conserva navegación y no ofrece reasignación (2.623618ms) +@metis/companies:test: ✔ cuenta del mapeo: seleccionar perfil es una acción explícita; el render no infiere ni cambia cuenta (23.317064ms) +@metis/companies:test: ✔ correo: listado traducido, alta en cabecera y formularios ocultos (134.131341ms) +@metis/companies:test: ✔ correo: selectores reutilizables con altas y ayuda inmediatamente antes de guardar (28.990703ms) +@metis/companies:test: ✔ Buzones: alta en modal, cuenta opcional y ayuda al final (37.864766ms) +@metis/companies:test: ✔ L04.2: correo mantiene tabla y criterios mientras faltan sus referencias (40.668885ms) +@metis/companies:test: ✔ Personas conserva búsqueda por nombre, contactos, consulta y distinción ñ/n en es/en (614.49001ms) +@metis/companies:test: ✔ organización: resuelve departamento y cargo vigentes del responsable (1.42881ms) +@metis/companies:test: ✔ organización: sin responsable o asignación no infiere datos desde perfiles ni cargo genérico de persona (1.325109ms) +@metis/companies:test: ✔ organización: periodos semiabiertos, históricos y futuros (0.252802ms) +@metis/companies:test: ✔ organización: varias vigentes conservan todas, principal primero y orden estable sin mutar (9.918669ms) +@metis/companies:test: ✔ organización: dos principales no ocultan información seleccionando una arbitrariamente (0.674705ms) +@metis/companies:test: ✔ organización: aislamiento de compañía y persona, y referencias incompletas (0.411903ms) +@metis/companies:test: ✔ organización: cambios y refetch se derivan de la fuente actual (0.293302ms) +@metis/companies:test: ✔ impresoras: listado sin formularios, alta en cabecera y traducciones (122.63526ms) +@metis/companies:test: ✔ impresoras: selectores con alta rápida y ayuda inferior antes de guardar (55.794392ms) +@metis/companies:test: ✔ L04.2: Procesos recupera búsqueda, cerrados, orden y página en sus enlaces (189.580929ms) +@metis/companies:test: ✔ procesos: listados es/en sin formularios junto a los datos (83.212183ms) +@metis/companies:test: ✔ procesos: alta rápida y ayuda inferior antes del pie (29.125304ms) +@metis/companies:test: ✔ plantillas: instrucciones, desactivación y ayuda global es/en sin datos de compañía (26.960889ms) +@metis/companies:test: ✔ seguimiento: origen personal, revisión actual y edición sin afirmar retirada real; cerrados sin editar (82.569479ms) +@metis/companies:test: ✔ remotos: consulta sin formularios y traducciones (117.604882ms) +@metis/companies:test: ✔ remotos: formulario, altas rápidas y ayuda antes del pie (91.720088ms) +@metis/companies:test: ✔ remotos: origen personal, acceso configurado sin autorización y VPN separada (8.717166ms) +@metis/companies:test: ✔ las consultas de compañías conservan sus rutas y rechazan respuestas inválidas (38.957973ms) +@metis/companies:test: ✔ lectura y guardado de accesos están separados sin cambiar el contrato HTTP (3.447924ms) +@metis/companies:test: ✔ el guardado de usos de buzón mantiene su endpoint y no se confunde con la consulta (4.137329ms) +@metis/companies:test: ✔ los adapters mantienen la ausencia semántica sin modificar los campos del formulario (0.458303ms) +@metis/companies:test: ✔ las instrucciones de proceso conservan el orden y excluyen líneas vacías (0.790405ms) +@metis/companies:test: ✔ la validación de logos conserva tipos permitidos, vacío y límite exacto de tamaño (1.039508ms) +@metis/companies:test: ✔ la tabla espera todas sus referencias y distingue actualización de disponibilidad (1.184208ms) +@metis/companies:test: ✔ un fallo recuperable conserva datos anteriores sin presentarlos como actualizados (1.058707ms) +@metis/companies:test: ✔ una fuente denegada impide mostrar la caché de todo el listado compuesto (0.443503ms) +@metis/companies:test: ✔ dashboard: HTTP 401 conserva la semántica de disponibilidad (25.899282ms) +@metis/companies:test: ✔ dashboard: HTTP 403 conserva la semántica de disponibilidad (0.472703ms) +@metis/companies:test: ✔ dashboard: HTTP 503 conserva la semántica de disponibilidad (0.758505ms) +@metis/companies:test: ✔ dashboard: una lectura correcta valida y conserva la página del proveedor (5.522738ms) +@metis/companies:test: ✔ iniciales y siglas soportan nombres vacíos, Unicode y separadores (2.60602ms) +@metis/companies:test: ✔ el color es estable con variaciones de espacios, mayúsculas y acentos (0.455103ms) +@metis/companies:test: ✔ los colores generados mantienen contraste AA para texto pequeño (1.37881ms) +@metis/companies:test: ✔ el avatar conserva su nombre accesible y puede ser decorativo dentro de un botón etiquetado (11.161384ms) +@metis/companies:test: ✔ OSUI-01/02/17: SO actual desde instalación, independiente de cualquier valor de fábrica (11.358085ms) +@metis/companies:test: ✔ OSUI-03/04/05/18: vacío, pendiente y retirado no son SO actual (41.147208ms) +@metis/companies:test: ✔ OSUI-06/07: varios SO, orden determinista y aplicaciones excluidas (14.991912ms) +@metis/companies:test: ✔ OSUI-08/12: cambiar de activo conserva solo su SO, sin aceptar compañías ajenas (3.395626ms) +@metis/companies:test: ✔ OSUI-09: versión de instalación y redundancia literal sin reglas de fabricante (6.70545ms) +@metis/companies:test: ✔ OSUI-10: referencia no resoluble no significa ausencia; inactiva resoluble conserva información (5.653143ms) +@metis/companies:test: ✔ OSUI-11: error con datos previos, error de resolver y carga no se presentan como vacío (13.2769ms) +@metis/companies:test: ✔ OSUI-13/14: servidor sin puesto y plantilla propia consumen la misma lectura por activo (6.347448ms) +@metis/companies:test: ✔ OSUI-16: presentación es/en y versión opcional (12.323692ms) +@metis/companies:test: ✔ SO global: selector conserva scope y destino SO; la versión instalada sigue separada (0.679705ms) +@metis/companies:test: ✔ REG-SO-01/11: render global configurado, inactivo e histórico conserva nombre, versión y destino es/en (30.212926ms) +@metis/companies:test: ✔ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (131.912988ms) +@metis/companies:test: ✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (16.373823ms) +@metis/companies:test: ✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (48.333962ms) +@metis/companies:test: ✔ teletrabajo: consulta sin formularios y traducciones (73.285849ms) +@metis/companies:test: ✔ teletrabajo: formulario con alta rápida de persona, fechas opcionales y ayuda inferior (21.092058ms) +@metis/companies:test: ✔ teletrabajo: sin autorización no se presupone permiso; persona inactiva requiere revisión (5.678142ms) +@metis/companies:test: ✔ teletrabajo: alta desde un perfil fija la persona y no abre otra alta rápida (6.409748ms) +@metis/companies:test: ✔ teletrabajo es/en: conserva estado documental, vigencia y revisión como mensajes independientes (48.803766ms) +@metis/companies:test: ✔ entorno: reúne varios correos y configuraciones, distingue pendiente, retirada y revisión (1.957415ms) +@metis/companies:test: ✔ entorno: excluye cerradas, otros perfiles, compañías y correo antiguo sin adivinar relaciones (1.159108ms) +@metis/companies:test: ✔ entorno: composición vigente del puesto y datos actuales sin duplicación (0.452003ms) +@metis/companies:test: ✔ entorno: ficha es/en con estados y acciones, sin formularios; muestra falso y varios correos (79.687697ms) +@metis/companies:test: ✔ entorno: carga, fallo parcial sin falsa ficha vacía, perfil inexistente y aviso de archivado (31.524736ms) +@metis/companies:test: ✔ entorno: consulta autorización por persona, común a sus perfiles y sin confundir preparación (26.887202ms) +@metis/companies:test: ✔ entorno: accesos abiertos de la persona y sus orígenes sin confundirlos con configuraciones del perfil (11.532086ms) +@metis/companies:test: ✔ las entidades de los selectores se pluralizan en es/en sin reutilizar el verbo de acción (5.696842ms) +@metis/companies:test: ✔ perfiles: listado es/en, alta en cabecera y ausencia de formulario junto al listado (60.313251ms) +@metis/companies:test: ✔ perfiles: la cabecera breve conserva el motivo completo en la celda de revisión (53.349399ms) +@metis/companies:test: ✔ perfiles: alta en cuatro pasos, sin guardado intermedio y contenido de ayuda conservado (15.531216ms) +@metis/companies:test: ✔ perfiles: selección de persona explícita y cuenta opcional con altas independientes (18.419438ms) +@metis/companies:test: ✔ perfiles: el puesto fijado aporta su ordenador y no selecciona al responsable como usuario (8.138861ms) +@metis/companies:test: ✔ perfiles: requisitos por paso, cuenta opcional y propuesta basada en persona y ordenador (0.262402ms) +@metis/companies:test: ✔ perfiles: el nombre sugerido respeta el límite del contrato (0.255202ms) +@metis/companies:test: ✔ perfiles: resumen con listas, ordenador único y ausencias representadas por guion (4.849337ms) +@metis/companies:test: ✔ perfiles: edición completa con identidad fija aunque el perfil requiera revisión (9.818873ms) +@metis/companies:test: ✔ perfiles: orden y página navegables conservan búsqueda y archivados al abrir entorno (33.702852ms) +@metis/companies:test: ✔ Personas admite actividad en listado y ficha, con los demás criterios de contexto (10.626674ms) +@metis/companies:test: ✔ el catálogo de aplicaciones de compañía conserva cursor, filtros y retorno a ficha (1.875613ms) +@metis/companies:test: ✔ las funcionalidades archivadas no tienen rutas activas (0.806505ms) +@metis/companies:test: ✔ el filtro de plantilla permite abrir listados y fichas de activos y recursos (1.229009ms) +@metis/companies:test: ✔ el filtro de plantilla se limita a los inventarios que conocen sus definiciones (2.248116ms) +@metis/companies:test: ✔ todas las secciones de compañía tienen una ruta propia y el índice es el resumen (3.986228ms) +@metis/companies:test: ✔ los índices de catálogos y los cinco catálogos globales son destinos independientes (0.811706ms) +@metis/companies:test: ✔ las configuraciones conservan la compañía y el UUID del perfil (0.798105ms) +@metis/companies:test: ✔ las rutas desconocidas y los parámetros inválidos no abren una sección por defecto (4.041728ms) +@metis/companies:test: ✔ la ficha de puesto tiene ruta propia, conserva el UUID y rechaza identificadores inválidos (1.32341ms) +@metis/companies:test: ✔ dominios: enlaces a cuentas y grupos limitados al entorno de la compañía (1.191909ms) +@metis/companies:test: ✔ los parámetros de contexto llegan al consumidor sin crear rutas nuevas ni aceptar claves ajenas (2.476718ms) +@metis/companies:test: ✔ catálogo de aplicaciones: UUID global y criterios propios sin compañía ficticia (2.152215ms) +@metis/companies:test: ✔ catálogo SO: ruta específica y filtros, sin confundir con aplicaciones (0.721805ms) +@metis/companies:test: ✔ la barra comienza desplegada sin navegador o sin una preferencia válida (3.849727ms) +@metis/companies:test: ✔ plegar y desplegar persisten la preferencia sin modificar otras claves (0.314602ms) +@metis/companies:test: ✔ un fallo de lectura, escritura o acceso a localStorage no bloquea la barra (0.331202ms) +@metis/companies:test: ✔ la capacidad del shell fuerza modos sin cambiar la preferencia manual (1.364609ms) +@metis/companies:test: ✔ un menú solo libera su modalidad si su presentación pasa a estar disponible fija (0.284702ms) +@metis/companies:test: ✔ layout 640px: 0 asociados y 0 instalaciones (14.741311ms) +@metis/companies:test: ✔ layout 640px: 0 asociados y 3 instalaciones (11.293584ms) +@metis/companies:test: ✔ layout 640px: 1 asociados y 0 instalaciones (5.654842ms) +@metis/companies:test: ✔ layout 640px: 1 asociados y 2 instalaciones (6.399048ms) +@metis/companies:test: ✔ layout 640px: 2 asociados y 3 instalaciones (9.533572ms) +@metis/companies:test: ✔ layout 748px: 0 asociados y 0 instalaciones (2.845821ms) +@metis/companies:test: ✔ layout 748px: 0 asociados y 3 instalaciones (15.739718ms) +@metis/companies:test: ✔ layout 748px: 1 asociados y 0 instalaciones (7.435056ms) +@metis/companies:test: ✔ layout 748px: 1 asociados y 2 instalaciones (13.778003ms) +@metis/companies:test: ✔ layout 748px: 2 asociados y 3 instalaciones (15.351815ms) +@metis/companies:test: ✔ layout 900px: 0 asociados y 0 instalaciones (3.484126ms) +@metis/companies:test: ✔ layout 900px: 0 asociados y 3 instalaciones (4.870336ms) +@metis/companies:test: ✔ layout 900px: 1 asociados y 0 instalaciones (2.823221ms) +@metis/companies:test: ✔ layout 900px: 1 asociados y 2 instalaciones (7.89826ms) +@metis/companies:test: ✔ layout 900px: 2 asociados y 3 instalaciones (21.540861ms) +@metis/companies:test: ✔ layout 1200px: 0 asociados y 0 instalaciones (4.372533ms) +@metis/companies:test: ✔ layout 1200px: 0 asociados y 3 instalaciones (13.702403ms) +@metis/companies:test: ✔ layout 1200px: 1 asociados y 0 instalaciones (3.740728ms) +@metis/companies:test: ✔ layout 1200px: 1 asociados y 2 instalaciones (10.077775ms) +@metis/companies:test: ✔ layout 1200px: 2 asociados y 3 instalaciones (13.223299ms) +@metis/companies:test: ✔ layout: dos asociados se reparten por capacidad; sin principal no se fabrican conexiones (13.325899ms) +@metis/companies:test: ✔ preview: conserva límites y publica solo cobertura real de fuentes conocidas (0.436403ms) +@metis/companies:test: ✔ WD04.4: acción estable de presentación, fuera de las relaciones y contadores, sin solapamientos (186.997902ms) +@metis/companies:test: ✔ WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría (2.565019ms) +@metis/companies:test: ✔ WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados (0.528004ms) +@metis/companies:test: ✔ WD04.5: distingue instalación, producto global/inactivo y licencia particular (0.783106ms) +@metis/companies:test: ✔ WD04.5: producto particular y gates cerrados no crean acciones administrativas (1.015507ms) +@metis/companies:test: ✔ WD04.5: SO global utiliza la referencia pública y su etiqueta específica (0.481604ms) +@metis/companies:test: ✔ WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas (0.396003ms) +@metis/companies:test: ✔ WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú (46.278846ms) +@metis/companies:test: ✔ dashboard: ordenador y equipamiento actuales, personas por perfiles y archivados separados (9.747173ms) +@metis/companies:test: ✔ dashboard: sin responsable sigue mostrando usuarios y un puesto desmantelado no cuenta historia como miembros (0.399703ms) +@metis/companies:test: ✔ dashboard: sustituir ordenador resuelve perfiles del nuevo host sin trasladar los anteriores (0.307502ms) +@metis/companies:test: ✔ dashboard: referencias ajenas o principal fuera de composición no aportan relaciones (0.277302ms) +@metis/companies:test: ✔ pendientes: solo pending, perfiles activos, compañía correcta y deduplicación por familia e identidad (2.547319ms) +@metis/companies:test: ✔ último cambio: orden cronológico sin mutación, altas de miembros y campos realmente cambiados (1.271609ms) +@metis/companies:test: ✔ equipamiento: principal válido primero, miembros únicos y secundarios en orden declarado (3.800529ms) +@metis/companies:test: ✔ equipamiento: activos sin principal no adquieren un principal por su tipo o posición (0.464603ms) +@metis/companies:test: ✔ equipamiento: principal fuera de composición se advierte sin añadirlo a miembros (0.489303ms) +@metis/companies:test: ✔ equipamiento: referencia ausente o de otra compañía no inventa datos ni marca principal (0.464603ms) +@metis/companies:test: ✔ equipamiento: vacío y desmantelado no recuperan miembros del historial (0.317703ms) +@metis/companies:test: ✔ equipamiento: averiado sigue asignado y conserva ambos estados originales (0.430503ms) +@metis/companies:test: ✔ expansión: todos abiertos inicialmente y plegado independiente de cada perfil (5.477941ms) +@metis/companies:test: ✔ refetch conserva plegados y filtros individuales, incluso con error o fuentes incompletas (0.399003ms) +@metis/companies:test: ✔ retirada o archivo limpia únicamente el estado del perfil afectado (0.477704ms) +@metis/companies:test: ✔ cambio de compañía, puesto u ordenador restablece todos los perfiles abiertos y los filtros (0.359603ms) +@metis/companies:test: ✔ orden estable y numérico del resumen y los pendientes, sin mutar datos remotos (7.384256ms) +@metis/companies:test: ✔ incluye solo perfiles del ordenador principal, distingue inactivos y deduplica personas (5.988545ms) +@metis/companies:test: ✔ puesto inexistente o sin composición no hereda perfiles de otros activos (1.020908ms) +@metis/companies:test: ✔ persona: responsabilidad y uso son independientes y solo se consideran puestos y perfiles vigentes (0.877107ms) +@metis/companies:test: ✔ ficha de puesto es/en: cabecera, retorno, bloques vacíos y edición modal sin formulario incrustado (79.547895ms) +@metis/companies:test: ✔ un UUID de puesto ausente muestra no encontrado sin cabecera ni edición de otro puesto (2.842922ms) +@metis/companies:test: ✔ ficha de persona es/en: distingue responsabilidad y uso, y enlaza los puestos (5.277339ms) +@metis/companies:test: ✔ ficha: ordenador destacado y periféricos sin repetir, perfiles solo del ordenador y personas deduplicadas (84.084128ms) +@metis/companies:test: ✔ personas y perfiles: carga y error no se presentan como listados vacíos (9.031767ms) +@metis/companies:test: ✔ ficha: no permite crear perfiles si el ordenador está retirado o el puesto está desactivado (38.186585ms) +@metis/companies:test: ✔ historial del puesto es/en: revisiones de más reciente a más antigua con autor y valores de cada momento (6.405148ms) +@metis/companies:test: ✔ personas es/en: enlaces a todos sus puestos bajo responsabilidad, sin confundirlos con puestos usados (45.929143ms) +@metis/companies:test: ✔ menú de compañía es/en: totales en badges alineados y cero real en secciones vacías (31.400235ms) +@metis/companies:test: ✔ ruta de activo de compañía abre la página con información, historial, software y solo sus perfiles (81.64301ms) +@metis/companies:test: ✔ equipamiento es/en: badges de principal, técnico y uso conservan su significado (6.060845ms) +@metis/companies:test: ✔ equipamiento: inventario fallido no se presenta como vacío y permite reintentar (9.302969ms) +@metis/companies:test: ✔ equipamiento: principal inconsistente se explica y no se incorpora como miembro válido (2.154217ms) +@metis/companies:test: ✔ personas y perfiles es/en: expansión contextual, enlaces independientes y resumen cero real (6.853351ms) +@metis/companies:test: ✔ cabecera es/en: responsable largo o ausente, contexto independiente y mapa con resumen (57.574831ms) +@metis/companies:test: ✔ perfiles: lista completa y todos desplegados por defecto, incluso con cincuenta perfiles (67.036601ms) +@metis/companies:test: ✔ perfiles: carga, error y datos retenidos no publican un total como actual (4.819436ms) +@metis/companies:test: ✔ equipamiento: contador conocido cero, uno, cinco y seis; error conserva filas sin publicar total (10.602879ms) +@metis/companies:test: ✔ configuración: cobertura desconocida, revisión y notas permanecen fuera del disclosure técnico (2.309518ms) +@metis/companies:test: ✔ perfiles: una actualización en curso conserva el total conocido y anuncia la actividad (1.866514ms) +@metis/companies:test: ✔ v2.2: dependencia sin principal conserva mapa y resumen y una explicación principal sin tabla vacía (12.142091ms) +@metis/companies:test: ✔ v2.2: un vacío confirmado de perfiles conserva el alta y evita cabeceras de una tabla sin filas (1.052608ms) +@metis/companies:test: ✔ v2.2: soporte distingue perfiles en carga, error, ausencia confirmada y persona no resuelta (3.211824ms) +@metis/companies:test: ✔ v2.2: referencia de principal no resuelta no publica cero pendientes ni ausencia de perfiles (5.746443ms) +@metis/companies:test: ✔ v3: Software conserva los tres estados documentales con la misma representación que las familias (33.35785ms) +@metis/companies:test: ✔ v3: estados técnicos de equipamiento conservan principal y asignación en es/en (11.798888ms) +@metis/companies:test: ✔ responsable es/en: avatar y nombre abren un único popup y la ausencia no ofrece acciones (3.218824ms) +@metis/companies:test: ✔ mapa visual: aísla compañías, deduplica miembros y conserva software y estados reales (9.803073ms) +@metis/companies:test: ✔ mapa es/en: principal solo, vacíos confirmados y error de software conservan navegación y gestión (29.001717ms) +@metis/companies:test: ✔ mapa: composición vacía y sin principal no fabrica relaciones ni instalaciones (1.354311ms) +@metis/companies:test: ✔ contexto de persona: rechaza datos de otra compañía y no ofrece acciones (0.556304ms) +@metis/companies:test: ✔ mapa es/en: carga inicial y carga parcial mantienen estados accesibles (16.351023ms) +@metis/companies:test: ✔ mapa es/en: leyenda con tres conceptos y cobertura explícita sin totales inventados (1.627312ms) +@metis/companies:test: ✔ mapa es/en: revisión de software traducida incluso sin referencia navegable (0.881407ms) +@metis/companies:test: ✔ WD04.4 es/en: acción autorizada, vacío accionable y lectura sin permiso (5.623542ms) +@metis/companies:test: ✔ perfiles del puesto: configuraciones de todos los activos abiertas y destinos accesibles únicos (11.803788ms) +@metis/companies:test: ℹ tests 312 +@metis/companies:test: ℹ suites 0 +@metis/companies:test: ℹ pass 310 +@metis/companies:test: ℹ fail 2 +@metis/companies:test: ℹ cancelled 0 +@metis/companies:test: ℹ skipped 0 +@metis/companies:test: ℹ todo 0 +@metis/companies:test: ℹ duration_ms 15483.371216 +@metis/companies:test: +@metis/companies:test: ✖ failing tests: +@metis/companies:test: +@metis/companies:test: test at src/web/companies/shared/companies-page.test.tsx:1:6023 +@metis/companies:test: ✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (95.367068ms) +@metis/companies:test: AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: +@metis/companies:test: +@metis/companies:test: assert.ok(markup.includes("Personas (1)")) +@metis/companies:test: +@metis/companies:test: at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:229:10) +@metis/companies:test: at async Test.run (node:internal/test_runner/test:1404:7) +@metis/companies:test: at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { +@metis/companies:test: generatedMessage: true, +@metis/companies:test: code: 'ERR_ASSERTION', +@metis/companies:test: actual: false, +@metis/companies:test: expected: true, +@metis/companies:test: operator: '==', +@metis/companies:test: diff: 'simple' +@metis/companies:test: } +@metis/companies:test: +@metis/companies:test: test at src/web/companies/shared/companies-page.test.tsx:1:7439 +@metis/companies:test: ✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (19.146134ms) +@metis/companies:test: AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: +@metis/companies:test: +@metis/companies:test: assert.ok(markup.includes("Esta persona no tiene acceso a Metis Desk")) +@metis/companies:test: +@metis/companies:test: at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:259:10) +@metis/companies:test: at async Test.run (node:internal/test_runner/test:1404:7) +@metis/companies:test: at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { +@metis/companies:test: generatedMessage: true, +@metis/companies:test: code: 'ERR_ASSERTION', +@metis/companies:test: actual: false, +@metis/companies:test: expected: true, +@metis/companies:test: operator: '==', +@metis/companies:test: diff: 'simple' +@metis/companies:test: } +@metis/companies:test: [ELIFECYCLE] Test failed. See above for more details. + ERROR @metis/companies#test: command (/home/david/dev/metis-desk/modules/companies) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run test exited (1) + + Tasks: 7 successful, 8 total +Cached: 0 cached, 8 total + Time: 32.595s +Failed: @metis/companies#test + + ERROR run failed: command exited (1) +[ELIFECYCLE] Test failed. See above for more details. diff --git a/.artifacts/account-deletion/typecheck.log b/.artifacts/account-deletion/typecheck.log new file mode 100644 index 00000000..160582ed --- /dev/null +++ b/.artifacts/account-deletion/typecheck.log @@ -0,0 +1,29 @@ +$ turbo run typecheck +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running typecheck in 13 packages + • Remote caching disabled + +@repo/rdx-utils:typecheck: cache hit, replaying logs e660b2f14d16d88c +@repo/rdx-utils:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: cache miss, executing 3a02880bf260fd89 +@metis/relationship-contracts:typecheck: cache hit, replaying logs 6ecbe82d1a36ae07 +@metis/relationship-contracts:typecheck: $ tsc -p tsconfig.json +@repo/rdx-ddd:typecheck: cache hit, replaying logs 315b0dccfb6d76d3 +@repo/rdx-ddd:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: src/components/calendar.tsx(165,12): error TS2375: Type '{ day: CalendarDay; modifiers: Modifiers; disabled?: boolean | undefined; form?: string | undefined; formAction?: string | ((formData: FormData) => void | Promise<...>) | undefined; ... 285 more ...; locale: Partial<...> | undefined; }' is not assignable to type '{ locale?: Partial; }' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties. +@repo/shadcn-ui:typecheck: Types of property 'locale' are incompatible. +@repo/shadcn-ui:typecheck: Type 'Partial | undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: Type 'undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: [ELIFECYCLE] Command failed with exit code 2. + ERROR @repo/shadcn-ui#typecheck: command (/home/david/dev/metis-desk/packages/shadcn-ui) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run typecheck exited (2) + + Tasks: 3 successful, 4 total +Cached: 3 cached, 4 total + Time: 8.024s +Failed: @repo/shadcn-ui#typecheck + + ERROR run failed: command exited (2) +[ELIFECYCLE] Command failed with exit code 2. diff --git a/.artifacts/account-deletion/usage-tests.log b/.artifacts/account-deletion/usage-tests.log new file mode 100644 index 00000000..30ea07d2 --- /dev/null +++ b/.artifacts/account-deletion/usage-tests.log @@ -0,0 +1,10 @@ +✔ modules/companies/src/api/domain/access/access.test.ts (752.333653ms) +✔ modules/companies/src/web/access/shared/access.test.tsx (7349.070512ms) +ℹ tests 2 +ℹ suites 0 +ℹ pass 2 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 7369.666084 diff --git a/.artifacts/account-deletion/validacion.md b/.artifacts/account-deletion/validacion.md new file mode 100644 index 00000000..f846af77 --- /dev/null +++ b/.artifacts/account-deletion/validacion.md @@ -0,0 +1,54 @@ +# Eliminación de cuentas — validación del 27/10/2026 + +Se añade «Eliminar cuenta» al menú de fila de las cuentas de compañía. La confirmación +identifica la cuenta y explica que el borrado incluye su historial propio y no elimina +la cuenta externa. Las referencias actuales e históricas bloquean la operación con +`ACCOUNT_IN_USE`; no se borran titulares, pertenencias, permisos ni perfiles en cascada. +La API valida compañía, UUID, cuerpo y query, usa sesión/CSRF y ejecuta el borrado +transaccional con bloqueos y comprobación de referencias entrantes por FK. + +Archivos principales: +- `modules/companies/src/api/infrastructure/persistence/remove-access-account.ts` +- `modules/companies/src/api/infrastructure/http/access.routes.ts` +- `modules/companies/src/web/access/delete/ui/account-delete-dialog.tsx` +- `modules/companies/src/web/access/list/ui/access-workspace.tsx` +- `apps/server/src/account-deletion.integration.test.ts` +- `scripts/account-deletion-ui-audit.py` + +## Comprobaciones correctas + +- `pnpm --filter @metis/companies typecheck`. +- `pnpm --filter @metis/server typecheck`. +- `TSX_TSCONFIG_PATH=tsconfig.json node --import tsx --test modules/companies/src/web/shared/client-contracts.test.ts modules/companies/src/web/access/shared/access.test.tsx`. +- `DB_NAME=metis_desk_test NODE_ENV=test node --env-file=../../.env --import tsx --test src/account-deletion.integration.test.ts` desde `apps/server`: borrado de cuentas activas/inactivas, historial propio, unicidad liberada, aislamiento, repetición y protección de referencias externas incluso con una FK CASCADE. +- Biome dirigido a los archivos de código cambiados: sin errores; una advertencia de complejidad 16/15 en `AccessWorkspacePage`. +- `git diff --check` y ESLint dirigido a los archivos añadidos y modificados del servidor y del diálogo. +- `python3 scripts/visual-audit.py --account-deletion --check`: 17 comprobaciones correctas mediante Playwright MCP en Docker stdio; login ordinario real, HTTP, cancelación, Escape, retorno del foco al menú, reintento tras 503, listado actualizado y rechazo de cuentas con relaciones. +- Volumen real: 15 compañías; principal con 50 personas, 51 activos, 66 recursos, 50 perfiles, 50 puestos y 62 cuentas creadas durante el recorrido. Únicamente `metis_desk_test` desechable; entorno retirado y sesión eliminada. +- Capturas de 1440, 390 y 320 px; abiertas e inspeccionadas las de 320 px y el error por cuenta en uso de escritorio. Sin desbordamiento horizontal del diálogo en los tres tamaños. +- La compilación de producción pasó; conserva el aviso de tamaño de chunks. + +Evidencias de la auditoría: +[Informe de navegador](../playwright/authenticated-jjxhf9iu/account-deletion-report.json), +[diálogo a 320 px](../playwright/authenticated-jjxhf9iu/account-delete-320.png), +[cuenta en uso](../playwright/authenticated-jjxhf9iu/account-delete-in-use.png). + +## Comprobaciones globales con fallos ajenos al cambio + +Se ejecutaron `pnpm typecheck`, `pnpm lint`, `pnpm test`, `pnpm check` y `pnpm build`. +Los cuatro primeros no quedaron verdes: +- Typecheck global: `packages/shadcn-ui/src/components/calendar.tsx:165`, propiedad `locale` incompatible con exactOptionalPropertyTypes. Vendor sin modificar. +- Tests globales: dos aserciones de textos de `modules/companies/src/web/companies/shared/companies-page.test.tsx`; el fichero y los componentes de personas no forman parte del cambio. El fallo de Companies detuvo Turbo antes de completar la suite global. +- Lint/check globales: diagnósticos de archivos ajenos (incluidos person-photo y evidencias JSON). No se reformatearon otros cambios del workspace. +- Integración antigua `identity.test.ts`: el primer intento requiere migración global R2.1b; con gates cerrados falla antes de llegar a los nuevos casos de cuentas porque una ruta archivada devuelve 401 y su prueba espera 404. Los casos HTTP añadidos en `access.integration.ts` no llegaron a ejecutarse en esa suite; la operación se verificó con la prueba de persistencia específica y la auditoría HTTP aislada. + +## Skills y límites + +Consultadas `rdx-solid` (capas, contratos y pruebas), `ux-error-recovery` (confirmación y +recuperación), `shadcn` (reutilización de las primitivas instaladas) y +`vercel-react-best-practices` (estado derivado sin efectos ni cachés remotas duplicadas). +Se reutiliza `ConfirmDeleteDialog` de rdx-ui y los tokens y patrones de DESIGN.md. +Los auditores especializados ux-*-audit de la skill no están instalados; no se invocaron +ni instalaron. No se declara una auditoría WCAG completa, lector de pantalla, contraste +global, tema oscuro ni todos los estados de carga del listado. No se borraron datos de +Abeto Design ni de ninguna compañía real durante la validación. diff --git a/.artifacts/account-deletion/visual.log b/.artifacts/account-deletion/visual.log new file mode 100644 index 00000000..fe3d9465 --- /dev/null +++ b/.artifacts/account-deletion/visual.log @@ -0,0 +1,3 @@ +Preparando MariaDB desechable y servicios en puertos libres… +Eliminación de cuentas: 17 comprobaciones. Evidencias: /home/david/dev/metis-desk/.artifacts/playwright/authenticated-jjxhf9iu +Entorno temporal retirado; las capturas se conservan sin sesión ni credenciales. diff --git a/.artifacts/account-usage/build.log b/.artifacts/account-usage/build.log new file mode 100644 index 00000000..52173b18 --- /dev/null +++ b/.artifacts/account-usage/build.log @@ -0,0 +1,49 @@ +$ turbo run build +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/server:build: cache miss, executing f20a36dd7052df4c +@metis/web:build: cache hit, replaying logs 0f53d284c7dbfe57 +@metis/web:build: $ vite build +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/web:build: transforming... +@metis/web:build: ✓ 10092 modules transformed. +@metis/web:build: rendering chunks... +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-D8sQAPMw.css 256.35 kB │ gzip: 39.28 kB +@metis/web:build: dist/assets/workplace-map-canvas-Dk-Lnm8b.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-BK21VChv.js 1,859.58 kB │ gzip: 521.25 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 1.05s +@metis/server:build: $ tsup --config tsup.config.ts && pnpm check:build +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/server:build: ESM dist/index.js 1.46 MB +@metis/server:build: ESM dist/index.js.map 2.72 MB +@metis/server:build: ESM ⚡️ Build success in 683ms +@metis/server:build: $ node --check dist/index.js + + Tasks: 2 successful, 2 total +Cached: 1 cached, 2 total + Time: 4.337s + diff --git a/.artifacts/account-usage/changed-check.log b/.artifacts/account-usage/changed-check.log new file mode 100644 index 00000000..267ec91b --- /dev/null +++ b/.artifacts/account-usage/changed-check.log @@ -0,0 +1 @@ +Checked 10 files in 42ms. Fixed 1 file. diff --git a/.artifacts/account-usage/check.log b/.artifacts/account-usage/check.log new file mode 100644 index 00000000..67952759 --- /dev/null +++ b/.artifacts/account-usage/check.log @@ -0,0 +1,1004 @@ +$ biome check . +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 96 │ )} + 97 │ > + > 98 │
99 │ ref={ref} + ... + > 104 │ className="flex h-24 items-end justify-between p-4" + > 105 │ > + │ ^ + 106 │ Aa + 107 │ {info && ( + + i Safe fix: Sort the JSX props. + + 97 97 │ > + 98 98 │
+ 106 106 │ Aa + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel. + 6 6 │ // Translucent colors are composited over the backdrop, as the browser would. + 7 7 │ function toRgb(color: string, backdrop = "#fff") { + 8 │ - ··const·canvas·=·document.createElement("canvas") + 9 │ - ··canvas.width·=·canvas.height·=·1 + 10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}) + 8 │ + ··const·canvas·=·document.createElement("canvas"); + 9 │ + ··canvas.width·=·canvas.height·=·1; + 10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}); + 11 11 │ if (!context) { + 12 │ - ····return·null + 12 │ + ····return·null; + 13 13 │ } + 14 │ - ··context.fillStyle·=·backdrop + 15 │ - ··context.fillRect(0,·0,·1,·1) + 16 │ - ··context.fillStyle·=·color + 17 │ - ··context.fillRect(0,·0,·1,·1) + 18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data + 19 │ - ··return·[r,·g,·b] + 14 │ + ··context.fillStyle·=·backdrop; + 15 │ + ··context.fillRect(0,·0,·1,·1); + 16 │ + ··context.fillStyle·=·color; + 17 │ + ··context.fillRect(0,·0,·1,·1); + 18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data; + 19 │ + ··return·[r,·g,·b]; + 20 20 │ } + 21 21 │ + 22 22 │ function toHex(rgb: number[]) { + 23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}` + 23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`; + 24 24 │ } + 25 25 │ + 26 26 │ function luminance([r, g, b]: number[]) { + 27 27 │ const [R, G, B] = [r, g, b].map((value) => { + 28 │ - ····const·channel·=·value·/·255 + 29 │ - ····return·channel·<=·0.03928 + 30 │ - ······?·channel·/·12.92 + 31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4 + 32 │ - ··}) + 33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B + 28 │ + ····const·channel·=·value·/·255; + 29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4; + 30 │ + ··}); + 31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B; + 34 32 │ } + 35 33 │ + 36 34 │ function contrast(a: number[], b: number[]) { + 37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x) + 38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05) + 35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x); + 36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05); + 39 37 │ } + 40 38 │ + ······· │ + 45 43 │ className, + 46 44 │ }: { + 47 │ - ··name:·string + 48 │ - ··background:·string + 49 │ - ··foreground:·string + 50 │ - ··className?:·string + 45 │ + ··name:·string; + 46 │ + ··background:·string; + 47 │ + ··foreground:·string; + 48 │ + ··className?:·string; + 51 49 │ }) { + 52 │ - ··const·ref·=·React.useRef(null) + 53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>( + 54 │ - ····null + 55 │ - ··) + 50 │ + ··const·ref·=·React.useRef(null); + 51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null); + 56 52 │ + 57 53 │ React.useEffect(() => { + 58 │ - ····const·element·=·ref.current + 54 │ + ····const·element·=·ref.current; + 59 55 │ if (!element) { + 60 │ - ······return + 56 │ + ······return; + 61 57 │ } + 62 58 │ // Re-measure when the theme class on changes. + 63 59 │ const measure = () => { + 64 │ - ······const·style·=·getComputedStyle(element) + 65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor + 66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page) + 60 │ + ······const·style·=·getComputedStyle(element); + 61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor; + 62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page); + 67 63 │ if (!bg) { + 68 │ - ········return + 64 │ + ········return; + 69 65 │ } + 70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg)) + 66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg)); + 71 67 │ if (fg) { + 72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}) + 68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}); + 73 69 │ } + 74 │ - ····} + 75 │ - ····measure() + 76 │ - ····const·observer·=·new·MutationObserver(measure) + 77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·}) + 78 │ - ····return·()·=>·observer.disconnect() + 79 │ - ··},·[]) + 70 │ + ····}; + 71 │ + ····measure(); + 72 │ + ····const·observer·=·new·MutationObserver(measure); + 73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·}); + 74 │ + ····return·()·=>·observer.disconnect(); + 75 │ + ··},·[]); + 80 76 │ + 81 77 │ const level = !info + ······· │ + 87 83 │ : info.ratio >= 3 + 88 84 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 85 │ + ··········:·"Fail"; + 90 86 │ + 91 87 │ return ( + 92 │ - ····
+ 88 │ + ···· + 98 89 │
+ 118 │ - ········{info·&&·( + 119 │ - ·········· + 120 │ - ············{info.bg} + 121 │ - ·········· + 122 │ - ········)} + 109 │ + ········{info·&&·{info.bg}} + 123 110 │
+ 124 111 │
+ 125 │ - ··) + 112 │ + ··); + 126 113 │ } + 127 114 │ + + +.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ } + 12 12 │ } + 13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]); + 14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]); + 13 │ + @custom-variant·focus-visible·(&:focus-visible, + 14 │ + &[data-preview~="focus"]); + 15 │ + @custom-variant·active·(&:active, + 16 │ + &[data-preview~="active"]); + 15 17 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 29 │ + 30 │ {states.map((state) => ( + > 31 │ 32 │ key={state} + > 33 │ scope="col" + > 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground" + > 35 │ > + │ ^ + 36 │ {state} + 37 │ + + i Safe fix: Sort the JSX props. + + 30 30 │ {states.map((state) => ( + 31 31 │ + 36 36 │ {state} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 42 │ {rows.map((row) => ( + 43 │ + > 44 │ 45 │ scope="row" + > 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground" + > 47 │ > + │ ^ + 48 │ {row} + 49 │ + + i Safe fix: Sort the JSX props. + + 43 43 │ + 44 44 │ + 48 48 │ {row} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + 2 │ // Lists installed UI components that no file in the showcase imports. + 3 │ // Usage: node showcase-coverage.mjs + > 4 │ import { readdirSync, readFileSync, statSync } from "node:fs" + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 5 │ import { basename, extname, join, resolve } from "node:path" + 6 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ #!/usr/bin/env node + 2 │ + + 2 3 │ // Lists installed UI components that no file in the showcase imports. + 3 4 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs" + 5 6 │ import { basename, extname, join, resolve } from "node:path" + 6 7 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 2 2 │ // Lists installed UI components that no file in the showcase imports. + 3 3 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path" + 4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"; + 5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path"; + 6 6 │ + 7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2) + 7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2); + 8 8 │ + 9 9 │ if (!uiArg || roots.length === 0) { + 10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··") + 11 │ - ··process.exit(1) + 10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··"); + 11 │ + ··process.exit(1); + 12 12 │ } + 13 13 │ + 14 │ - const·uiDir·=·resolve(uiArg) + 14 │ + const·uiDir·=·resolve(uiArg); + 15 15 │ + 16 16 │ const components = readdirSync(uiDir) + 17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file))) + 18 │ - ··.map((file)·=>·basename(file,·extname(file))) + 18 │ + ··.map((file)·=>·basename(file,·extname(file))); + 19 19 │ + 20 20 │ function walk(path) { + 21 21 │ if (statSync(path).isFile()) { + 22 │ - ····return·[path] + 22 │ + ····return·[path]; + 23 23 │ } + 24 24 │ + 25 25 │ return readdirSync(path).flatMap((entry) => { + 26 │ - ····const·child·=·join(path,·entry) + 26 │ + ····const·child·=·join(path,·entry); + 27 27 │ // Skip the ui directory so components don't count as using each other. + 28 28 │ if (entry === "node_modules" || child === uiDir) { + 29 │ - ······return·[] + 29 │ + ······return·[]; + 30 30 │ } + 31 │ - ····return·walk(child) + 32 │ - ··}) + 31 │ + ····return·walk(child); + 32 │ + ··}); + 33 33 │ } + 34 34 │ + ····· │ + 38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file)) + 39 39 │ .map((file) => readFileSync(file, "utf8")) + 40 │ - ··.join("\n") + 40 │ + ··.join("\n"); + 41 41 │ + 42 │ - const·missing·=·components.filter( + 43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source) + 44 │ - ) + 42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)); + 45 43 │ + 46 │ - console.log( + 47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.` + 48 │ - ) + 44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`); + 49 45 │ + 50 46 │ if (missing.length > 0) { + 51 │ - ··console.log(`Missing:·${missing.join(",·")}`) + 52 │ - ··process.exit(1) + 47 │ + ··console.log(`Missing:·${missing.join(",·")}`); + 48 │ + ··process.exit(1); + 53 49 │ } + 54 50 │ + + +.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 17 17 │ "verifiedAt": "2026-08-12", + 18 18 │ "sla": "needs-review", + 19 │ - ······"appliesTo":·[ + 20 │ - ········"design-system" + 21 │ - ······], + 19 │ + ······"appliesTo":·["design-system"], + 22 20 │ "confidence": 0.88, + 23 21 │ "sources": [ + ········· │ + 42 40 │ "verifiedAt": "2026-08-12", + 43 41 │ "sla": "needs-review", + 44 │ - ······"appliesTo":·[ + 45 │ - ········"design-system" + 46 │ - ······], + 42 │ + ······"appliesTo":·["design-system"], + 47 43 │ "confidence": 0.92, + 48 44 │ "sources": [ + ········· │ + 67 63 │ "verifiedAt": "2026-08-12", + 68 64 │ "sla": "needs-review", + 69 │ - ······"appliesTo":·[ + 70 │ - ········"design-system" + 71 │ - ······], + 65 │ + ······"appliesTo":·["design-system"], + 72 66 │ "confidence": 0.93, + 73 67 │ "sources": [ + ········· │ + 92 86 │ "verifiedAt": "2026-08-12", + 93 87 │ "sla": "needs-review", + 94 │ - ······"appliesTo":·[ + 95 │ - ········"design-system" + 96 │ - ······], + 88 │ + ······"appliesTo":·["design-system"], + 97 89 │ "confidence": 0.93, + 98 90 │ "sources": [ + ········· │ + 117 109 │ "verifiedAt": "2026-08-12", + 118 110 │ "sla": "needs-review", + 119 │ - ······"appliesTo":·[ + 120 │ - ········"design-system" + 121 │ - ······], + 111 │ + ······"appliesTo":·["design-system"], + 122 112 │ "confidence": 0.94, + 123 113 │ "sources": [ + ········· │ + 142 132 │ "verifiedAt": "2026-08-12", + 143 133 │ "sla": "needs-review", + 144 │ - ······"appliesTo":·[ + 145 │ - ········"design-system" + 146 │ - ······], + 134 │ + ······"appliesTo":·["design-system"], + 147 135 │ "confidence": 0.91, + 148 136 │ "sources": [ + ········· │ + 167 155 │ "verifiedAt": "2026-08-12", + 168 156 │ "sla": "needs-review", + 169 │ - ······"appliesTo":·[ + 170 │ - ········"design-system" + 171 │ - ······], + 157 │ + ······"appliesTo":·["design-system"], + 172 158 │ "confidence": 0.93, + 173 159 │ "sources": [ + ········· │ + 192 178 │ "verifiedAt": "2026-08-12", + 193 179 │ "sla": "needs-review", + 194 │ - ······"appliesTo":·[ + 195 │ - ········"design-system" + 196 │ - ······], + 180 │ + ······"appliesTo":·["design-system"], + 197 181 │ "confidence": 0.9, + 198 182 │ "sources": [ + ········· │ + 217 201 │ "verifiedAt": "2026-08-12", + 218 202 │ "sla": "needs-review", + 219 │ - ······"appliesTo":·[ + 220 │ - ········"design-system" + 221 │ - ······], + 203 │ + ······"appliesTo":·["design-system"], + 222 204 │ "confidence": 0.89, + 223 205 │ "sources": [ + ········· │ + 242 224 │ "verifiedAt": "2026-08-12", + 243 225 │ "sla": "needs-review", + 244 │ - ······"appliesTo":·[ + 245 │ - ········"design-system" + 246 │ - ······], + 226 │ + ······"appliesTo":·["design-system"], + 247 227 │ "confidence": 0.93, + 248 228 │ "sources": [ + ········· │ + 267 247 │ "verifiedAt": "2026-08-12", + 268 248 │ "sla": "needs-review", + 269 │ - ······"appliesTo":·[ + 270 │ - ········"design-system" + 271 │ - ······], + 249 │ + ······"appliesTo":·["design-system"], + 272 250 │ "confidence": 0.9, + 273 251 │ "sources": [ + ········· │ + 292 270 │ "verifiedAt": "2026-08-12", + 293 271 │ "sla": "needs-review", + 294 │ - ······"appliesTo":·[ + 295 │ - ········"design-system" + 296 │ - ······], + 272 │ + ······"appliesTo":·["design-system"], + 297 273 │ "confidence": 0.92, + 298 274 │ "sources": [ + ········· │ + 317 293 │ "verifiedAt": "2026-08-12", + 318 294 │ "sla": "needs-review", + 319 │ - ······"appliesTo":·[ + 320 │ - ········"design-system" + 321 │ - ······], + 295 │ + ······"appliesTo":·["design-system"], + 322 296 │ "confidence": 0.88, + 323 297 │ "sources": [ + ········· │ + 342 316 │ "verifiedAt": "2026-08-12", + 343 317 │ "sla": "needs-review", + 344 │ - ······"appliesTo":·[ + 345 │ - ········"design-system" + 346 │ - ······], + 318 │ + ······"appliesTo":·["design-system"], + 347 319 │ "confidence": 0.93, + 348 320 │ "sources": [ + ········· │ + 367 339 │ "verifiedAt": "2026-08-12", + 368 340 │ "sla": "needs-review", + 369 │ - ······"appliesTo":·[ + 370 │ - ········"design-system" + 371 │ - ······], + 341 │ + ······"appliesTo":·["design-system"], + 372 342 │ "confidence": 0.91, + 373 343 │ "sources": [ + ········· │ + 392 362 │ "verifiedAt": "2026-08-12", + 393 363 │ "sla": "needs-review", + 394 │ - ······"appliesTo":·[ + 395 │ - ········"design-system" + 396 │ - ······], + 364 │ + ······"appliesTo":·["design-system"], + 397 365 │ "confidence": 0.95, + 398 366 │ "sources": [ + ········· │ + 417 385 │ "verifiedAt": "2026-08-12", + 418 386 │ "sla": "needs-review", + 419 │ - ······"appliesTo":·[ + 420 │ - ········"design-system" + 421 │ - ······], + 387 │ + ······"appliesTo":·["design-system"], + 422 388 │ "confidence": 0.92, + 423 389 │ "sources": [ + ········· │ + 442 408 │ "verifiedAt": "2026-08-12", + 443 409 │ "sla": "needs-review", + 444 │ - ······"appliesTo":·[ + 445 │ - ········"design-system" + 446 │ - ······], + 410 │ + ······"appliesTo":·["design-system"], + 447 411 │ "confidence": 0.93, + 448 412 │ "sources": [ + ········· │ + 467 431 │ "verifiedAt": "2026-08-12", + 468 432 │ "sla": "needs-review", + 469 │ - ······"appliesTo":·[ + 470 │ - ········"design-system" + 471 │ - ······], + 433 │ + ······"appliesTo":·["design-system"], + 278 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 29 29 │ "category": "sans-serif", + 30 30 │ "kind": "webfonts#webfont", + 31 │ - ······"axes":·[ + 32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900} + 33 │ - ······] + 31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}] + 34 32 │ } + 35 33 │ ] + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 3 3 │ "familyMetadataList": [ + 4 4 │ { + 5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif", + 6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"], + 5 │ + ······"family":·"Zeta·Serif", + 6 │ + ······"displayName":·null, + 7 │ + ······"category":·"Serif", + 8 │ + ······"stroke":·"Serif", + 9 │ + ······"classifications":·["Display"], + 10 │ + ······"size":·1000, + 11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"], + 7 12 │ "fonts": { + 8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2} + 11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"], + 12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90, + 13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false, + 14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true, + 15 │ - ······"isBrandFont":·false,·"languages":·[] + 13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·} + 16 │ + ······}, + 17 │ + ······"axes":·[], + 18 │ + ······"designers":·["Zeta·Studio"], + 19 │ + ······"lastModified":·"2025-06-02", + 20 │ + ······"dateAdded":·"2018-04-09", + 21 │ + ······"popularity":·90, + 22 │ + ······"trending":·11, + 23 │ + ······"defaultSort":·9, + 24 │ + ······"androidFragment":·null, + 25 │ + ······"isNoto":·false, + 26 │ + ······"colorCapabilities":·[], + 27 │ + ······"primaryScript":·"", + 28 │ + ······"primaryLanguage":·"", + 29 │ + ······"isOpenSource":·true, + 30 │ + ······"isBrandFont":·false, + 31 │ + ······"languages":·[] + 16 32 │ }, + 17 33 │ { + 18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif", + 19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"], + 34 │ + ······"family":·"Alpha·Sans", + 35 │ + ······"displayName":·null, + 36 │ + ······"category":·"Sans·Serif", + 37 │ + ······"stroke":·"Sans·Serif", + 38 │ + ······"classifications":·["Geometric"], + 39 │ + ······"size":·2000, + 40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"], + 20 41 │ "fonts": { + 21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2}, + 23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2} + 42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}, + 44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·} + 24 45 │ }, + 25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}], + 26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03", + 27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4, + 28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"", + 29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[] + 46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}], + 47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"], + 48 │ + ······"lastModified":·"2025-01-03", + 49 │ + ······"dateAdded":·"2020-02-20", + 50 │ + ······"popularity":·42, + 51 │ + ······"trending":·7, + 52 │ + ······"defaultSort":·4, + 53 │ + ······"androidFragment":·null, + 54 │ + ······"isNoto":·false, + 55 │ + ······"colorCapabilities":·[], + 56 │ + ······"primaryScript":·"", + 57 │ + ······"primaryLanguage":·"", + 58 │ + ······"isOpenSource":·true, + 59 │ + ······"isBrandFont":·false, + 60 │ + ······"languages":·[] + 30 61 │ } + 31 62 │ ], + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·}, + │ + + + +.artifacts/account-deletion/cleanup-test.mts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database'; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ const env=readDatabaseEnvironment(process.env); + 3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas'); + + i Safe fix: Organize Imports (Biome) + + 1 1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database'; + 2 │ + + 2 3 │ const env=readDatabaseEnvironment(process.env); + 3 4 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas'); + + +.artifacts/account-deletion/cleanup-test.mts:3:1 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━ + + × Block statements are preferred in this position. + + 1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database'; + 2 │ const env=readDatabaseEnvironment(process.env); + > 3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas'); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 4 │ const db=createDatabase(env); + 5 │ const company='01a17cae-4bba-7070-a394-13f9009c5cfb'; + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')·{·throw·Error('Solo·pruebas');·} + │ +++ ++ + +.artifacts/account-deletion/cleanup-test.mts:11:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const rows=await db.query('SELECT i.kind,i.id FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction,type:'SELECT'}); + 10 │ console.info({fixtureCompany:company,items:rows}); + > 11 │ for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 12 │ await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + 13 │ for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 11 │ ·for(const·table·of·['access_references','access_person_references'])·{·await·db.query(`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});·} + │ ++ ++ + +.artifacts/account-deletion/cleanup-test.mts:13:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 11 │ for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + 12 │ await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + > 13 │ for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 14 │ await db.query('DELETE i FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + 15 │ await db.query('DELETE FROM access_workspaces WHERE companyId=:company',{replacements,transaction}); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 13 │ ·for(const·table·of·['access_account_values','access_system_values'])·{·await·db.query(`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});·} + │ ++ ++ + +.artifacts/account-deletion/cleanup-test.mts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·{·createDatabase,·readDatabaseEnvironment·}·from·'../../apps/server/src/config/database'; + 2 │ - const·env=readDatabaseEnvironment(process.env); + 3 │ - if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw·Error('Solo·pruebas'); + 4 │ - const·db=createDatabase(env); + 5 │ - const·company='01a17cae-4bba-7070-a394-13f9009c5cfb'; + 1 │ + import·{·createDatabase,·readDatabaseEnvironment·}·from·"../../apps/server/src/config/database"; + 2 │ + const·env·=·readDatabaseEnvironment(process.env); + 3 │ + if·(env.DB_NAME·!==·"metis_desk_test"·||·env.NODE_ENV·!==·"test")·throw·Error("Solo·pruebas"); + 4 │ + const·db·=·createDatabase(env); + 5 │ + const·company·=·"01a17cae-4bba-7070-a394-13f9009c5cfb"; + 6 6 │ try { + 7 │ - ·await·db.transaction(async·transaction=>{ + 8 │ - ·const·replacements={company}; + 9 │ - ·const·rows=await·db.query('SELECT·i.kind,i.id·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company',{replacements,transaction,type:'SELECT'}); + 10 │ - ·console.info({fixtureCompany:company,items:rows}); + 11 │ - ·for(const·table·of·['access_references','access_person_references'])·await·db.query(`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction}); + 12 │ - ·await·db.query('DELETE·r·FROM·access_revisions·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company',{replacements,transaction}); + 13 │ - ·for(const·table·of·['access_account_values','access_system_values'])·await·db.query(`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction}); + 14 │ - ·await·db.query('DELETE·i·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company',{replacements,transaction}); + 15 │ - ·await·db.query('DELETE·FROM·access_workspaces·WHERE·companyId=:company',{replacements,transaction}); + 16 │ - ·await·db.query('DELETE·FROM·companies·WHERE·id=:company',{replacements,transaction}); + 17 │ - ·}); + 18 │ - }finally·{await·db.close();} + 7 │ + ··await·db.transaction(async·(transaction)·=>·{ + 8 │ + ····const·replacements·=·{·company·}; + 9 │ + ····const·rows·=·await·db.query( + 10 │ + ······"SELECT·i.kind,i.id·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company", + 11 │ + ······{·replacements,·transaction,·type:·"SELECT"·} + 12 │ + ····); + 13 │ + ····console.info({·fixtureCompany:·company,·items:·rows·}); + 14 │ + ····for·(const·table·of·["access_references",·"access_person_references"]) + 15 │ + ······await·db.query( + 16 │ + ········`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`, + 17 │ + ········{·replacements,·transaction·} + 18 │ + ······); + 19 │ + ····await·db.query( + 20 │ + ······"DELETE·r·FROM·access_revisions·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company", + 21 │ + ······{·replacements,·transaction·} + 22 │ + ····); + 23 │ + ····for·(const·table·of·["access_account_values",·"access_system_values"]) + 24 │ + ······await·db.query( + 25 │ + ········`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`, + 26 │ + ········{·replacements,·transaction·} + 27 │ + ······); + 28 │ + ····await·db.query( + 29 │ + ······"DELETE·i·FROM·access_items·i·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company", + 30 │ + ······{·replacements,·transaction·} + 31 │ + ····); + 32 │ + ····await·db.query("DELETE·FROM·access_workspaces·WHERE·companyId=:company",·{ + 33 │ + ······replacements, + 34 │ + ······transaction, + 35 │ + ····}); + 36 │ + ····await·db.query("DELETE·FROM·companies·WHERE·id=:company",·{·replacements,·transaction·}); + 37 │ + ··}); + 38 │ + }·finally·{ + 39 │ + ··await·db.close(); + 40 │ + } + 19 41 │ + + +.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems-closure/legacy-evolution.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 166. +Checked 2283 files in 2s. No fixes applied. +Found 179 errors. +Found 2 warnings. +Found 5 infos. +check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/account-usage/companies-typecheck.log b/.artifacts/account-usage/companies-typecheck.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/account-usage/companies-typecheck.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/account-usage/lint.log b/.artifacts/account-usage/lint.log new file mode 100644 index 00000000..e49865a2 --- /dev/null +++ b/.artifacts/account-usage/lint.log @@ -0,0 +1,441 @@ +$ biome lint . +docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json lint ━━━━━━━━━━━━━━━━━━━━━━━━ + + i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project. + Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file. + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + i Safe fix: Reduce the complexity of the logical expression. + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + +modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 │ + + i Safe fix: Reduce the complexity of the logical expression. + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 51 │ + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.artifacts/account-deletion/cleanup-test.mts:3:1 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━━ + + × Block statements are preferred in this position. + + 1 │ import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database'; + 2 │ const env=readDatabaseEnvironment(process.env); + > 3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas'); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 4 │ const db=createDatabase(env); + 5 │ const company='01a17cae-4bba-7070-a394-13f9009c5cfb'; + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 3 │ if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')·{·throw·Error('Solo·pruebas');·} + │ +++ ++ + +.artifacts/account-deletion/cleanup-test.mts:11:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const rows=await db.query('SELECT i.kind,i.id FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction,type:'SELECT'}); + 10 │ console.info({fixtureCompany:company,items:rows}); + > 11 │ for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 12 │ await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + 13 │ for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 11 │ ·for(const·table·of·['access_references','access_person_references'])·{·await·db.query(`DELETE·r·FROM·${table}·r·JOIN·access_items·i·ON·i.id=r.itemId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});·} + │ ++ ++ + +.artifacts/account-deletion/cleanup-test.mts:13:2 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 11 │ for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + 12 │ await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + > 13 │ for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction}); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 14 │ await db.query('DELETE i FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction}); + 15 │ await db.query('DELETE FROM access_workspaces WHERE companyId=:company',{replacements,transaction}); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 13 │ ·for(const·table·of·['access_account_values','access_system_values'])·{·await·db.query(`DELETE·v·FROM·${table}·v·JOIN·access_items·i·ON·i.id=v.ownerId·JOIN·access_workspaces·w·ON·w.id=i.workspaceId·WHERE·w.companyId=:company`,{replacements,transaction});·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 24 │ async get(personId: string) { + > 25 │ if (!z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 27 │ const photo = await this.repository.get(personId); + 28 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 23 23 │ + 24 24 │ async get(personId: string) { + 25 │ - ····if·(!z.uuid().safeParse(personId).success) + 26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 25 │ + ····if·(!z.uuid().safeParse(personId).success)·{ + 26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 27 │ + ····} + 27 28 │ const photo = await this.repository.get(personId); + 28 29 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 35 │ + ····} + 35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + > 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 37 │ if (!(await this.repository.exists(companyId, personId))) + 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes) + 36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{ + 36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ + ····} + 37 38 │ if (!(await this.repository.exists(companyId, personId))) + 38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + > 37 │ if (!(await this.repository.exists(companyId, personId))) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 39 │ const processed = await this.processor.optimize(data); + 40 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ - ····if·(!(await·this.repository.exists(companyId,·personId))) + 38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{ + 38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 39 │ + ····} + 39 40 │ const processed = await this.processor.optimize(data); + 40 41 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 39 │ const processed = await this.processor.optimize(data); + 40 │ + > 41 │ if (!processed.isSuccess) return Result.fail(processed.error); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 42 │ + 43 │ return (await this.repository.replace(companyId, personId, processed.data)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 51 │ + 52 │ return (await this.repository.replace(companyId, personId, null)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 51 │ + ····} + 51 52 │ + 52 53 │ return (await this.repository.replace(companyId, personId, null)) + + +modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 125 │ const process = UniqueID.create(id); + 126 │ + > 127 │ if (!(company.isSuccess && process.isSuccess)) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST"))); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 129 │ + 130 │ return this.repository.remove(company.data, process.data); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 125 125 │ const process = UniqueID.create(id); + 126 126 │ + 127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess)) + 128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{ + 128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 129 │ + ····} + 129 130 │ + 130 131 │ return this.repository.remove(company.data, process.data); + + +modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const columns = await query.describeTable("company_contacts"); + 10 │ + > 11 │ if (!columns.photoVersion) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 12 │ await query.addColumn("company_contacts", "photoVersion", { + > 13 │ type: DataTypes.STRING(64), + > 14 │ allowNull: true, + > 15 │ }); + │ ^^^ + 16 │ for (const [name, length] of [ + 17 │ ["position", 100], + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 9 9 │ const columns = await query.describeTable("company_contacts"); + 10 10 │ + 11 │ - ··if·(!columns.photoVersion) + 11 │ + ··if·(!columns.photoVersion)·{ + 12 12 │ await query.addColumn("company_contacts", "photoVersion", { + 13 13 │ type: DataTypes.STRING(64), + 14 14 │ allowNull: true, + 15 │ - ····}); + 15 │ + ····}); + 16 │ + ··} + 16 17 │ for (const [name, length] of [ + 17 18 │ ["position", 100], + + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 8 │ ); + 9 │ + > 10 │ if (rows.some((row) => row.name === "person_photos")) return; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 11 │ await database + 12 │ .getQueryInterface() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 47 │ }); + 48 │ + > 49 │ if (!person) return false; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ if (photo) + 51 │ await PersonPhotoModel.upsert( + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 49 │ ······if·(!person)·{·return·false;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 49 │ if (!person) return false; + > 50 │ if (photo) + │ ^^^^^^^^^^ + > 51 │ await PersonPhotoModel.upsert( + > 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + > 53 │ { transaction } + > 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 48 48 │ + 49 49 │ if (!person) return false; + 50 │ - ······if·(photo) + 50 │ + ······if·(photo)·{ + 51 51 │ await PersonPhotoModel.upsert( + 52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + 53 53 │ { transaction } + 54 │ - ········); + 54 │ + ········); + 55 │ + ······} + 55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + 56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 53 │ { transaction } + 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·} + │ ++ ++ + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 5. +Checked 2283 files in 1921ms. No fixes applied. +Found 18 errors. +Found 2 warnings. +Found 5 infos. +lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/account-usage/persistence.log b/.artifacts/account-usage/persistence.log new file mode 100644 index 00000000..eb839989 --- /dev/null +++ b/.artifacts/account-usage/persistence.log @@ -0,0 +1,9 @@ +✔ MariaDB: borrado de cuentas aislado, histórico propio y referencias externas protegidas (3545.671457ms) +ℹ tests 1 +ℹ suites 0 +ℹ pass 1 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 8097.525165 diff --git a/.artifacts/account-usage/server-typecheck.log b/.artifacts/account-usage/server-typecheck.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/account-usage/server-typecheck.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/account-usage/spacing.log b/.artifacts/account-usage/spacing.log new file mode 100644 index 00000000..556b196a --- /dev/null +++ b/.artifacts/account-usage/spacing.log @@ -0,0 +1,7 @@ + +/home/david/dev/metis-desk/modules/companies/src/api/domain/access/access-policy.ts + 37:3 error Expected blank line before this statement @stylistic/padding-line-between-statements + +✖ 1 problem (1 error, 0 warnings) + 1 error and 0 warnings potentially fixable with the `--fix` option. + diff --git a/.artifacts/account-usage/test.log b/.artifacts/account-usage/test.log new file mode 100644 index 00000000..1e831daa --- /dev/null +++ b/.artifacts/account-usage/test.log @@ -0,0 +1,858 @@ +$ turbo run test +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running test in 13 packages + • Remote caching disabled + +@metis/core:test: cache bypass, force executing 2283a7af50b4c3f8 +@repo/rdx-ui:test: cache bypass, force executing dd1af9cec005380f +@repo/rdx-ddd:test: cache bypass, force executing b722cdfdd985a9bd +@metis/relationship-contracts:test: cache bypass, force executing 97138537b462262f +@metis/core:test: $ node --import tsx --test src/common/dto/response/get-health.response.dto.test.ts src/web/navigation/shared/browser-navigation.test.ts src/web/http/shared/api/csrf-fetch.test.ts +@metis/relationship-contracts:test: $ node --import tsx --test --test-isolation=none src/*.test.ts +@repo/rdx-ui:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/select-with-action.test.tsx src/selection-components.test.tsx src/entity-list.test.tsx src/compact-collections.test.tsx src/entity-column-visibility.test.tsx src/time-line.test.tsx src/count-badge.test.tsx src/scrollable-tabs.test.tsx src/field-sections.test.tsx src/phone-link.test.tsx src/lib/reorder-items.test.ts src/lib/text-search.test.ts src/remote-option-list.test.tsx src/dialog-help.test.tsx +@repo/rdx-ddd:test: $ node --import tsx --test src/domain-model.test.ts +@metis/core:test: ✔ el contrato de estado exige un timestamp UTC y un estado conocido (9.008758ms) +@metis/core:test: ✔ el endpoint de estado no acepta parámetros de consulta (0.506404ms) +@metis/core:test: ✔ las escrituras leen la sesión actual de Query y siguen su rotación y eliminación (122.650593ms) +@metis/core:test: ✔ GET, HEAD y OPTIONS funcionan sin sesión y no envían tokens suministrados por el llamador (1.564411ms) +@metis/core:test: ✔ mantiene cuerpos JSON, binarios, headers, cancelación y respuestas de error sin reintentar (9.27366ms) +@metis/core:test: ✔ rechaza tokens ausentes o inválidos y destinos externos antes de enviar una petición (2.616116ms) +@metis/relationship-contracts:test: ✔ referencias UUID estables, normalizadas, inmutables y con proveedor coherente (22.284544ms) +@metis/relationship-contracts:test: ✔ namespaces canónicos, sin identificadores de tabla, espacios ni segmentos vacíos (7.203646ms) +@metis/relationship-contracts:test: ✔ el catálogo valida propietarios, namespaces, duplicados y definiciones (7.271947ms) +@metis/relationship-contracts:test: ✔ el catálogo crea una copia profundamente inmutable sin congelar la entrada (2.178814ms) +@metis/relationship-contracts:test: ✔ relaciones dirigidas, simétricas y derivadas respetan su semántica declarativa (1.816211ms) +@metis/relationship-contracts:test: ✔ consulta estricta: límites, cursores y ausencia de privilegios del navegador (4.191027ms) +@metis/relationship-contracts:test: ✔ validación de ámbito, tipo y sentido de consulta sin conceder autorización (3.193421ms) +@metis/relationship-contracts:test: ✔ orígenes y páginas conservan referencias sin mezclar compañías (3.06012ms) +@metis/relationship-contracts:test: ✔ servicios de prueba por lotes y errores compatibles con Result de Metis (1.215908ms) +@metis/core:test: ✔ estado de ficha: tablas independientes, aislamiento entre quince propietarios y metadatos ajenos conservados (11.059572ms) +@metis/core:test: ✔ estado de ficha: metadatos malformados, ámbitos externos y valores incompatibles no se restauran (6.869444ms) +@metis/core:test: ✔ History mantiene URL, filtros, Atrás/Adelante, cierre y suscripciones sin entradas duplicadas (3.986226ms) +@metis/core:test: ✔ las redirecciones internas rechazan destinos externos, barras invertidas y caracteres de control (0.368503ms) +@metis/core:test: ✔ el retorno reutiliza la entrada exacta del listado y conserva el estado ajeno (0.545304ms) +@metis/core:test: ✔ el contexto de retorno valida versión, coordenadas, ámbito y filtros sin guardar registros (5.041032ms) +@metis/core:test: ✔ las consultas Unicode válidas no pierden contexto al superar 2000 caracteres codificados (7.427448ms) +@metis/core:test: ✔ retorno de detalle y listado conviven sin aceptar el ámbito de otro propietario (0.893606ms) +@metis/core:test: ℹ tests 14 +@metis/core:test: ℹ suites 0 +@metis/core:test: ℹ pass 14 +@metis/core:test: ℹ fail 0 +@metis/core:test: ℹ cancelled 0 +@metis/core:test: ℹ skipped 0 +@metis/core:test: ℹ todo 0 +@metis/core:test: ℹ duration_ms 1078.868884 +@metis/relationship-contracts:test: ✔ el grafo de dependencias del paquete es acíclico y ajeno a módulos funcionales (51.05583ms) +@metis/relationship-contracts:test: ✔ las importaciones internas de producción no contienen ciclos ni imports privados (2.145114ms) +@metis/relationship-contracts:test: ✔ capacidades semánticas explícitas sin registrar proveedores ficticios (1.698711ms) +@metis/relationship-contracts:test: ✔ rol semántico opcional conserva la compatibilidad de vistas comunes sin metadatos libres (3.08212ms) +@metis/relationship-contracts:test: ℹ tests 13 +@metis/relationship-contracts:test: ℹ suites 0 +@metis/relationship-contracts:test: ℹ pass 13 +@metis/relationship-contracts:test: ℹ fail 0 +@metis/relationship-contracts:test: ℹ cancelled 0 +@metis/relationship-contracts:test: ℹ skipped 0 +@metis/relationship-contracts:test: ℹ todo 0 +@metis/relationship-contracts:test: ℹ duration_ms 1051.891709 +@repo/rdx-ddd:test: ✔ UniqueID genera UUID v7 distintos, conserva UUID existentes y rechaza identificadores inválidos (16.366106ms) +@repo/rdx-ddd:test: ✔ los Value Objects validan y comparan valores semánticos por tipo (4.798631ms) +@repo/rdx-ddd:test: ✔ entidades y agregados comparan identidad y tipo, independientemente de sus atributos (0.803406ms) +@repo/rdx-ddd:test: ℹ tests 3 +@repo/rdx-ddd:test: ℹ suites 0 +@repo/rdx-ddd:test: ℹ pass 3 +@repo/rdx-ddd:test: ℹ fail 0 +@repo/rdx-ddd:test: ℹ cancelled 0 +@repo/rdx-ddd:test: ℹ skipped 0 +@repo/rdx-ddd:test: ℹ todo 0 +@repo/rdx-ddd:test: ℹ duration_ms 1384.872559 +@repo/rdx-ui:test: ✔ la tabla compacta conserva semántica y enlaces sin herramientas de exploración (31.515565ms) +@repo/rdx-ui:test: ✔ los valores ausentes comparten criterio con EntityTable y cero permanece visible (1.781515ms) +@repo/rdx-ui:test: ✔ carga y error sin datos no afirman vacío; caché obsoleta conserva registros (9.561981ms) +@repo/rdx-ui:test: ✔ la ampliación identifica el contenido controlado sin añadir controles a colecciones pequeñas (5.89255ms) +@repo/rdx-ui:test: ✔ EntityTable mantiene búsqueda, columnas y paginación con su contrato anterior (41.59285ms) +@repo/rdx-ui:test: ✔ preview controlado: recuperar la ampliación muestra el origen con identidad estable sin perder el modo local (9.788482ms) +@repo/rdx-ui:test: ✔ contador: conserva cero y formatea el total por idioma (29.299689ms) +@repo/rdx-ui:test: ✔ contador: carga y error muestran ausencia de total, conservando una cifra anterior si existe (3.664324ms) +@repo/rdx-ui:test: ✔ la ayuda breve respeta la capacidad efectiva, también con fuentes ampliadas (1.348409ms) +@repo/rdx-ui:test: ✔ auto y expanded reservan 40rem al formulario y 20rem al panel (0.300402ms) +@repo/rdx-ui:test: ✔ el contenido inline conserva descripción, ámbito, ejemplos, orientación e icono (11.170672ms) +@repo/rdx-ui:test: ✔ las columnas elegidas se restauran al volver a crear la tabla, incluidas las que llegan después (75.337334ms) +@repo/rdx-ui:test: ✔ las preferencias quedan aisladas por lista y no se aplican cuando no se solicita persistencia (15.775333ms) +@repo/rdx-ui:test: ✔ datos locales inválidos no rompen el listado y solo se aceptan valores booleanos (0.513704ms) +@repo/rdx-ui:test: ✔ almacenamiento bloqueado o sin cuota permite seguir utilizando la selección local (0.414704ms) +@repo/rdx-ui:test: ✔ buscar columnas ignora tildes y mayúsculas, conserva ñ y no modifica visibilidad (1.18661ms) +@repo/rdx-ui:test: ✔ los grupos conservan orden, omiten vacíos y deduplican IDs sin perder columnas sin grupo (0.553605ms) +@repo/rdx-ui:test: ✔ restaurar preferencias vacías recupera defaults actuales sin tocar otras tablas (11.717498ms) +@repo/rdx-ui:test: ✔ los contadores distinguen visibilidad, total y coincidencias en es/en (0.350203ms) +@repo/rdx-ui:test: ✔ listado remoto: recupera columnas por ámbito y protege nombre y acciones (20.808175ms) +@repo/rdx-ui:test: ✔ los rangos vacíos y la última página nunca muestran índices fuera del conjunto (2.641923ms) +@repo/rdx-ui:test: ✔ el listado pagina el conjunto y repite su rango conservando controles accesibles (63.250832ms) +@repo/rdx-ui:test: ✔ la búsqueda local reduce el conjunto completo antes de paginar y permite limpiarla (12.351804ms) +@repo/rdx-ui:test: ✔ el texto formado solo por espacios se puede borrar sin confundir vacío con ausencia de coincidencias (10.492989ms) +@repo/rdx-ui:test: ✔ la búsqueda genérica ignora acentos y Unicode equivalente, manteniendo ñ y el texto escrito (30.90046ms) +@repo/rdx-ui:test: ✔ el orden inicial ascendente se indica en la cabecera y se aplica antes de paginar (9.955984ms) +@repo/rdx-ui:test: ✔ una columna explícita puede establecer un orden inicial descendente (9.636781ms) +@repo/rdx-ui:test: ✔ el orden inicial ignora acciones y columnas sin valor comparable (13.761716ms) +@repo/rdx-ui:test: ✔ las tablas sin columnas ordenables conservan el orden recibido (10.250087ms) +@repo/rdx-ui:test: ✔ el orden inicial mantiene la estabilidad en empates y se indica con el listado vacío (13.507914ms) +@repo/rdx-ui:test: ✔ una búsqueda controlada conserva los resultados filtrados por la pantalla (5.646547ms) +@repo/rdx-ui:test: ✔ carga, error y búsqueda vacía se distinguen de un listado sin registros (32.989977ms) +@repo/rdx-ui:test: ✔ el rango y la configuración también se traducen en inglés (5.669147ms) +@repo/rdx-ui:test: ✔ acciones: disparador de solo icono con etiqueta accesible y menú contextual (5.027842ms) +@repo/rdx-ui:test: ✔ acciones: operación principal visible con nombre accesible y secundarias en el menú (6.166651ms) +@repo/rdx-ui:test: ✔ acciones: conserva la restricción de la principal y evita menús sin secundarias (2.268619ms) +@repo/rdx-ui:test: ✔ el estado activo se distingue en verde del inactivo (0.338703ms) +@repo/rdx-ui:test: ✔ acciones: siempre última, compacta y anclada a la derecha, aunque se declare primero (7.291062ms) +@repo/rdx-ui:test: ✔ los textos comunes mantienen claves, idiomas y parámetros del rango (0.237002ms) +@repo/rdx-ui:test: ✔ las celdas vacías muestran un guion largo en es/en y conservan cero, textos y controles (163.066573ms) +@repo/rdx-ui:test: ✔ las columnas opcionales empiezan ocultas sin ocultar identificación ni acciones obligatorias (5.796249ms) +@repo/rdx-ui:test: ✔ Nombre ordena sin tildes ni mayúsculas antes de paginar, en español e inglés (11.201695ms) +@repo/rdx-ui:test: ✔ Nombre tiene prioridad inicial aunque otra columna comparable aparezca antes (4.948042ms) +@repo/rdx-ui:test: ✔ Nombre conserva empates entre acentos, mayúsculas y Unicode compuesto al ordenar descendente (4.345637ms) +@repo/rdx-ui:test: ✔ paginación por cursor: navegación accesible y límites sin inventar totales (0.963908ms) +@repo/rdx-ui:test: ✔ estados presentacionales: carga, datos anteriores y recuperación son mutuamente distinguibles (0.411203ms) +@repo/rdx-ui:test: ✔ carga inicial conserva estructura, no anuncia cero registros y no fabrica acciones (6.395554ms) +@repo/rdx-ui:test: ✔ refetch y error posterior muestran los datos disponibles sin skeletons (10.391887ms) +@repo/rdx-ui:test: ✔ error inicial, vacío válido y filtros sin coincidencias tienen contenidos distintos en es/en (18.888159ms) +@repo/rdx-ui:test: ✔ el contrato de navegación rechaza páginas mal formadas y ordenaciones desconocidas (0.569805ms) +@repo/rdx-ui:test: ✔ navegación controlada ordena y pagina realmente sin alterar el consumidor no controlado (6.487755ms) +@repo/rdx-ui:test: ✔ quitar sección conserva todos los campos y su obligatoriedad sin mutar el origen (2.973725ms) +@repo/rdx-ui:test: ✔ copiar remapea secciones conservando campos y reglas con identidades independientes (0.471404ms) +@repo/rdx-ui:test: ✔ secciones visuales ordenadas, abiertas inicialmente y campos sin sección (10.512488ms) +@repo/rdx-ui:test: ✔ consulta compacta conserva grupos, campos sin sección y avisos sin tarjetas anidadas (3.818132ms) +@repo/rdx-ui:test: ✔ pestañas de grupos conservan controles ocultos, orden y campos sin grupo, omitiendo grupos vacíos (16.088035ms) +@repo/rdx-ui:test: ✔ el editor ofrece asas etiquetadas para secciones y campos, deshabilitadas al guardar (81.917989ms) +@repo/rdx-ui:test: ✔ soltar antes o después del destino conserva el orden de los demás elementos (1.648411ms) +@repo/rdx-ui:test: ✔ destinos inválidos y posiciones sin cambio no producen una nueva ordenación (8.598755ms) +@repo/rdx-ui:test: ✔ reordenar mantiene identidades, secciones y obligatoriedad sin modificar los objetos (0.328802ms) +@repo/rdx-ui:test: ✔ la comparación parcial pliega vocales, caja y representaciones Unicode equivalentes (12.233679ms) +@repo/rdx-ui:test: ✔ ñ conserva identidad compuesta y descompuesta y otras escrituras no se transliteran (0.417703ms) +@repo/rdx-ui:test: ✔ puntuación técnica, números y espacios interiores siguen siendo significativos (1.61611ms) +@repo/rdx-ui:test: ✔ vacíos y valores sin texto no serializan objetos arbitrarios (0.375902ms) +@repo/rdx-ui:test: ✔ formatea números españoles y conserva extensiones para visualización y llamada (1.40611ms) +@repo/rdx-ui:test: ✔ preserva números internacionales no españoles sin inventar agrupaciones (0.322902ms) +@repo/rdx-ui:test: ✔ el enlace telefónico usa el número formateado y mantiene un nombre accesible (8.323954ms) +@repo/rdx-ui:test: ✔ selector remoto: el contenido gráfico conserva la selección y la etiqueta textual (47.632208ms) +@repo/rdx-ui:test: ✔ selector remoto: selección compacta al principio, radios etiquetados y orden recibido sin paginación local (6.346041ms) +@repo/rdx-ui:test: ✔ selector remoto: vacío, carga y error no se confunden y errores ocultan filas obsoletas (9.075459ms) +@repo/rdx-ui:test: ✔ pestañas desplazables: conserva identidad, selección y etiquetas largas sin añadir focos al SSR (33.226614ms) +@repo/rdx-ui:test: ✔ el selector agrupa la acción etiquetada sin convertirla en envío de formulario (40.836344ms) +@repo/rdx-ui:test: ✔ el selector deshabilitado protege ambas acciones y admite selección sin botón (9.352379ms) +@repo/rdx-ui:test: ✔ La capacidad contextual admite presupuestos propios sin acoplarlos al viewport (1.270411ms) +@repo/rdx-ui:test: ✔ La pérdida de capacidad cierra sin abrir modal y los eventos repetidos no publican estado (1.20541ms) +@repo/rdx-ui:test: ✔ selección visual: vacío con acciones separadas y ficha elegida sin controles de envío (21.35958ms) +@repo/rdx-ui:test: ✔ selección visual: pendiente, deshabilitado y bloqueo protegen las acciones correspondientes (7.883767ms) +@repo/rdx-ui:test: ✔ PickerList: búsqueda etiquetada, selección única y opciones indisponibles visibles (43.409765ms) +@repo/rdx-ui:test: ✔ PickerList: estados de carga y vacío no presentan opciones falsas (16.950842ms) +@repo/rdx-ui:test: ✔ el rango del selector usa la entidad y su plural, nunca el título de la acción (56.425375ms) +@repo/rdx-ui:test: ✔ acciones multipaso: requisitos bloquean avance y guardado en cada paso (6.314353ms) +@repo/rdx-ui:test: ✔ acciones multipaso: guardar pendiente impide avanzar y retroceder (2.33052ms) +@repo/rdx-ui:test: ✔ línea temporal: conserva el orden aportado, fechas semánticas, autor y contenido (21.590039ms) +@repo/rdx-ui:test: ✔ línea temporal vacía: muestra el mensaje del consumidor como estado (0.534203ms) +@repo/rdx-ui:test: ℹ tests 84 +@repo/rdx-ui:test: ℹ suites 0 +@repo/rdx-ui:test: ℹ pass 84 +@repo/rdx-ui:test: ℹ fail 0 +@repo/rdx-ui:test: ℹ cancelled 0 +@repo/rdx-ui:test: ℹ skipped 0 +@repo/rdx-ui:test: ℹ todo 0 +@repo/rdx-ui:test: ℹ duration_ms 3253.419804 +@metis/resources:test: cache bypass, force executing 72bdf6e922e78d3b +@metis/identity:test: cache bypass, force executing da6d5784f74ff7ef +@metis/identity:test: $ node --import tsx --test src/api/domain/user.aggregate.test.ts src/api/application/global-resource-authorization.test.ts src/api/infrastructure/persistence/user-persistence.mapper.test.ts src/api/infrastructure/security/scrypt-password-hasher.test.ts src/web/shared/api/identity-api.test.ts +@metis/resources:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/list/helpers/resource-columns.test.tsx src/web/resources/list/helpers/resource-list-preferences.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx +@metis/resources:test: ✔ R2.6: nombre y proveedor son señales, nunca equivalencia confirmada (1.382012ms) +@metis/resources:test: ✔ R2.6: preserva tildes, puntuación, abreviaturas, ediciones, versiones y números (0.956408ms) +@metis/resources:test: ✔ R2.6: homónimos genéricos se mantienen débiles y los UUID nunca se sustituyen (41.809851ms) +@metis/identity:test: ✔ resources.global.manage exige sesión vigente, flag persistido e identidad bootstrap (22.536289ms) +@metis/identity:test: ✔ el administrador inicial no se puede crear ni actualizar inactivo (5.807449ms) +@metis/identity:test: ✔ actualizar es idempotente, conserva identidad y cambiar contraseña invalida sesiones (1.490413ms) +@metis/identity:test: ✔ crear genera UUID v7 y rehidratar conserva el UUID original (1.283711ms) +@metis/identity:test: ✔ el mapper reconstruye Value Objects y conserva la identidad y valores persistidos (14.479722ms) +@metis/identity:test: ✔ una inconsistencia persistida falla sin generar un identificador sustituto ni filtrar datos (12.0213ms) +@metis/resources:test: ✔ F2: SO global público tipado, sin contaminación de aplicaciones ni perfiles (7.767365ms) +@metis/resources:test: ✔ F2: elegibilidad de SO exige stock real y campos globales (0.275903ms) +@metis/resources:test: ✔ F2: contrato 3 y gates de SO independientes; aplicaciones no abren SO (0.426803ms) +@metis/resources:test: ✔ F3: cualquier escritor valida identidad publicada, corrección documental e historial (37.822416ms) +@metis/resources:test: ✔ recurso: activar/desactivar conserva datos e historial y repetir estado no añade revisiones (13.299011ms) +@metis/resources:test: ✔ recurso: valida identidades y rechaza actuar sobre recursos ajenos (3.912033ms) +@metis/resources:test: ✔ recurso: propaga el bloqueo por asociaciones y permite desactivar (1.812116ms) +@metis/resources:test: ✔ recurso: elimina y la repetición devuelve ausencia sin efectos adicionales (1.20321ms) +@metis/resources:test: ✔ elegibilidad global exige serie exacta y campos globales; las copias no elevan ámbito (2.521221ms) +@metis/resources:test: ✔ schemas discriminan owner, propósito, OS local y proyecciones privadas (10.887892ms) +@metis/resources:test: ✔ requests acotan lotes, consulta, paginación y rechazan privilegios o integración (5.87705ms) +@metis/resources:test: ✔ búsqueda literal conserva ñ, puntuación y espacios; pagina tras filtrar con desempate UUID (5.416145ms) +@metis/resources:test: ✔ R2.5 admite gates configurables; los valores predeterminados siguen cerrados (0.322903ms) +@metis/resources:test: ✔ R2.5: software y perfil se habilitan por separado y requieren catálogo (0.319803ms) +@metis/resources:test: ✔ R2.5: perfil no depende de software ni abre asociaciones con catálogo cerrado (0.404603ms) +@metis/resources:test: ✔ lectores locales: excluyen global y otra compañía incluso si el repositorio los entrega; stockKey no depende del nombre (17.373246ms) +@metis/resources:test: ✔ HTTP actual sin MariaDB: aislamiento con 15 compañías, 50 recursos locales, alta, edición, estado e historial (356.289781ms) +@metis/resources:test: ✔ DNS: normalización explícita, etiqueta única heredada, punto raíz y política ASCII IDN (6.277653ms) +@metis/resources:test: ✔ capacidad estable: la plantilla renombrada sigue siendo dominio y una copia arbitraria no (1.619014ms) +@metis/resources:test: ✔ alta, edición, DNS y archivo usan Resource y conservan su identidad e historial (6.567455ms) +@metis/resources:test: ✔ catálogo: DNS obligatorio protegido, NetBIOS opcional e inicialización idempotente (5.443945ms) +@metis/resources:test: ✔ identificadores de campo: mayúsculas no cambian identidad ni permiten duplicados (1.19291ms) +@metis/resources:test: ✔ global: crear exige UUID v7 y conserva identidad y propietario en edición e idempotencia (16.422537ms) +@metis/resources:test: ✔ global: captura por stockKey, sin depender del nombre traducido de la plantilla (6.806357ms) +@metis/resources:test: ✔ SMB acepta \\NAS-01\Finanzas (2.025017ms) +@metis/resources:test: ✔ SMB acepta \\files.example.local\Docs (0.545104ms) +@metis/resources:test: ✔ SMB acepta \\192.168.5.10\C$ (0.166801ms) +@metis/resources:test: ✔ SMB acepta \\samba\Diseño\Año 2026 (0.351603ms) +@metis/resources:test: ✔ SMB acepta \\NAS\Docs\ (0.307903ms) +@metis/resources:test: ✔ SMB rechaza "" (0.248702ms) +@metis/resources:test: ✔ SMB rechaza "\\\\" (0.270702ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host" (0.133602ms) +@metis/resources:test: ✔ SMB rechaza "\\\\\\share" (1.17481ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\\\" (0.529905ms) +@metis/resources:test: ✔ SMB rechaza "C:\\Datos" (0.155102ms) +@metis/resources:test: ✔ SMB rechaza "https://host/share" (0.115201ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share\\.." (0.354103ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share\\." (0.1147ms) +@metis/resources:test: ✔ SMB rechaza "\\\\?\\UNC\\host\\share" (0.162701ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share\\\\child" (0.241902ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\share." (0.287503ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\ share" (0.094901ms) +@metis/resources:test: ✔ SMB rechaza "\\\\ho st\\share" (0.128801ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\bad\u0000" (0.174402ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\bad\ud800" (0.234302ms) +@metis/resources:test: ✔ SMB rechaza "\\\\host\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (0.173902ms) +@metis/resources:test: ✔ SMB: comparación conservadora, alias y Unicode sin transformaciones destructivas (0.771007ms) +@metis/resources:test: ✔ SMB: semántica por stockKey y protección del catálogo sin bloquear etiquetas u obligatoriedad (23.960201ms) +@metis/resources:test: ✔ SMB: alta validada y diagnóstico histórico sin conversión ni revisión (18.189152ms) +@metis/resources:test: ✔ SMB: nuevas altas fijan integración access y rechazan contexto incompatible (13.216311ms) +@metis/resources:test: ✔ F1: identidad completa, edición conocida/no aplicable/desconocida e inactivos (6.170652ms) +@metis/resources:test: ✔ F1: normalización conservadora no equipara ediciones, releases ni ausencia desconocida (0.405003ms) +@metis/resources:test: ✔ F1: evolución de stock personalizada e idempotente; no elimina campos ni cambia obligatoriedad (68.17447ms) +@metis/resources:test: ✔ F1: un catálogo anterior evoluciona sin sobrescribir bindings ni recursos particulares (57.404181ms) +@metis/resources:test: ✔ campo PNG Icono: evoluciona tres plantillas sin reemplazar personalizaciones ni reponer bindings retirados (40.165236ms) +@metis/resources:test: ✔ catálogo de recursos: serie idempotente, UUID v7, características opcionales y protección (39.625631ms) +@metis/resources:test: ✔ ámbitos, tipos, listas, campos externos y disponibilidad por compañía (9.351978ms) +@metis/resources:test: ✔ licencias: ampliar un catálogo previo conserva identidades y disponibilidad (21.382679ms) +@metis/resources:test: ✔ plantillas globales de serie editables: conserva identidad, asociaciones, disponibilidad y cambios al reiniciar (14.919225ms) +@metis/resources:test: ✔ campos globales de serie editables: listas ampliables, tipo fijo y opciones existentes conservadas (10.355587ms) +@metis/resources:test: ✔ sistema operativo: plantilla con uso explícito, copia y ampliación sin sobrescribir definiciones (30.281553ms) +@metis/resources:test: ✔ iconos de recursos: todas las plantillas de serie tienen su icono y el arranque no repone los retirados (15.280628ms) +@metis/resources:test: ✔ iconos de recursos: cambiar y retirar el icono conserva identidad y asociaciones, con guardado idempotente (6.643756ms) +@metis/resources:test: ✔ iconos de recursos: claves desconocidas, cadenas vacías e iconos de campos se rechazan (5.600047ms) +@metis/resources:test: ✔ ámbito: pares válidos y rechazo runtime de propietarios contradictorios o ausentes (19.105559ms) +@metis/resources:test: ✔ ámbito: proyección preparada separada; HTTP local conserva exactamente su contrato (12.131401ms) +@metis/resources:test: ✔ ámbito: edición y propagación locales conservan propietario, UUID e historia; globales son solo lectura (4.580539ms) +@metis/resources:test: ✔ Resource: propaga altas, orden y retiradas conservando cero/falso, valores e historial; repetir no genera revisiones (46.55159ms) +@metis/resources:test: ✔ Resource: los campos retirados no impiden añadir una plantilla completa y no se fusionan por nombre (2.003517ms) +@metis/resources:test: ✔ Resource: retirar secciones conserva solo las necesarias y mover o reincorporar campos aplica el destino (0.915508ms) +@metis/resources:test: ✔ recursos: tipos, valores opcionales y obligatorios, cero/falso y campos desconocidos (14.729523ms) +@metis/resources:test: ✔ recurso: identidad estable, historial, desactivación e idempotencia (2.807024ms) +@metis/resources:test: ✔ buzón como recurso: correo válido, cuenta opcional, cambios auditados y tipo fijo (16.77854ms) +@metis/resources:test: ✔ secciones: nombres, identidades, referencias y un solo nivel (9.406179ms) +@metis/resources:test: ✔ secciones: igualdad, orden, identidad y persistencia JSON (3.368128ms) +@metis/resources:test: ✔ secciones: plantillas globales y locales conservan separación y UUID al editar (11.406895ms) +@metis/resources:test: ✔ secciones de serie: el arranque conserva una plantilla sin grupos y su disponibilidad (32.051368ms) +@metis/resources:test: ✔ especificación: secciones capturadas, edición posterior y obligatoriedad independiente (18.115052ms) +@metis/resources:test: ✔ lector legacy: roundtrip conserva UUID, revisiones, valores, actor, fecha y DTO sin columna scope (20.129568ms) +@metis/resources:test: ✔ lector: solo el adaptador legacy conocido interpreta ausencia; ningún ámbito inválido usa fallback (5.067842ms) +@metis/resources:test: ✔ proyecciones operativas: global sintético se rechaza antes de SQL, el recurso local sin integración no crea proyección (96.472205ms) +@metis/resources:test: ✔ escritor scoped: envía company explícito, preserva la salida legacy y rechaza global (1.335411ms) +@metis/identity:test: ✔ scrypt usa sales distintas y rechaza contraseñas y hashes incorrectos (2006.595377ms) +@metis/identity:test: ✔ la sesión valida la respuesta y conserva el contrato público utilizado por la aplicación (42.98326ms) +@metis/identity:test: ✔ login, configuración inicial, usuarios y contraseñas conservan rutas, body y CSRF (7.114759ms) +@metis/identity:test: ✔ cerrar sesión espera la respuesta de la operación sin perder el token (3.389728ms) +@metis/identity:test: ✔ los errores HTTP no filtran detalles internos y los datos de sesión inválidos se rechazan (6.816557ms) +@metis/identity:test: ℹ tests 11 +@metis/identity:test: ℹ suites 0 +@metis/identity:test: ℹ pass 11 +@metis/identity:test: ℹ fail 0 +@metis/identity:test: ℹ cancelled 0 +@metis/identity:test: ℹ skipped 0 +@metis/identity:test: ℹ todo 0 +@metis/identity:test: ℹ duration_ms 2639.003782 +@metis/resources:test: ✔ selección múltiple añade un lote sin duplicados y conserva las reglas y el orden existentes (5.738338ms) +@metis/resources:test: ✔ añadir desde una sección asigna solo los campos nuevos a su destino y conserva los existentes (1.380509ms) +@metis/resources:test: ✔ la selección respeta el límite del schema, valida identificadores y rechaza el conjunto vacío (8.771057ms) +@metis/resources:test: ✔ el listado reutiliza tabla, búsqueda y casillas traducidas y conserva las selecciones bloqueadas (91.952297ms) +@metis/resources:test: ✔ L04.2: campos de recursos recuperan orden y página sin heredar otra pestaña (106.265887ms) +@metis/resources:test: ✔ el catálogo muestra plantillas de serie y acción de alta sin formularios junto al listado (98.404237ms) +@metis/resources:test: ✔ los formularios tienen ayuda inferior y selección de campos en diálogo con alta rápida (29.327489ms) +@metis/resources:test: ✔ iconos de recursos: catálogo y selector traducido conservan la selección al editar y copiar (161.251243ms) +@metis/resources:test: ✔ catálogo global: lectura mínima y navegación traducidas, sin administración para ordinarios (33.038714ms) +@metis/resources:test: ✔ R2.4: mutación global invalida solo instalaciones cacheadas que usan su UUID (3.662724ms) +@metis/resources:test: ✔ R2.5: cambio global invalida configuraciones afectadas y preserva otras compañías (1.521609ms) +@metis/resources:test: ✔ SO global: lectura pública es/en conserva identidad estructurada y navegación propia (9.762463ms) +@metis/resources:test: ✔ SO global: invalida software y su catálogo sin refrescar aplicaciones ni perfiles (1.55681ms) +@metis/resources:test: ✔ columnas de características de recursos: identidad, campos nuevos de catálogo, instantáneas y nombres repetidos (23.807554ms) +@metis/resources:test: ✔ columnas elegidas es/en: cero, falso, fecha localizada, unidades y guion para campos ajenos (74.126881ms) +@metis/resources:test: ✔ los campos compartidos conservan un único ID y todos sus contextos de catálogo e instantánea (3.729324ms) +@metis/resources:test: ✔ columnas generales e integración es/en: notas, fechas, autores y referencias semánticas (27.599878ms) +@metis/resources:test: ✔ icono de producto: identidad de serie, nombres personalizables y ausencia sin inferir otra imagen (0.838205ms) +@metis/resources:test: ✔ orden de recursos: aislamiento por compañía y pestaña, incluida Todo (14.528022ms) +@metis/resources:test: ✔ orden de recursos: una URL explícita prevalece sobre la preferencia sin sobrescribirla (0.885208ms) +@metis/resources:test: ✔ preferencias opcionales: datos inválidos y almacenamiento bloqueado no impiden listar (1.878716ms) +@metis/resources:test: ✔ cambiar pestaña limpia el orden y la paginación anteriores conservando la búsqueda (0.389803ms) +@metis/resources:test: ✔ la integración de buzón conserva su configuración explícita y no inventa referencias (1.447512ms) +@metis/resources:test: ✔ los valores iniciales toleran catálogo pendiente y limitan el nombre sin cambiar la entrada (0.994108ms) +@metis/resources:test: ✔ nombre propuesto: prioriza los identificadores de cada plantilla y limita su longitud (19.809765ms) +@metis/resources:test: ✔ nombre propuesto: contempla campos personalizados y descarta valores no identificativos (0.468503ms) +@metis/resources:test: ✔ paso de campos: exige valores obligatorios y acepta cero y respuestas negativas (1.834615ms) +@metis/resources:test: ✔ paso de campos: requiere la dirección de buzón aunque la plantilla la marque opcional (8.169368ms) +@metis/resources:test: ✔ recursos: listado con alta modal y sin formulario visible, en español e inglés (111.041919ms) +@metis/resources:test: ✔ Recursos: las pestañas incluyen plantillas vacías e inactivas y combinan identidad y búsqueda (311.398914ms) +@metis/resources:test: ✔ recurso: ayuda inferior, plantilla con alta rápida y sin asignaciones de recursos (15.260198ms) +@metis/resources:test: ✔ licencia: formulario reutilizable con campos opcionales y ayuda antes de guardar (28.01248ms) +@metis/resources:test: ✔ asistencia: alta de recurso con plantilla específica y características opcionales (8.280053ms) +@metis/resources:test: ✔ alta por pasos: solo muestra la plantilla inicialmente y traduce su navegación (14.577594ms) +@metis/resources:test: ✔ indicador de alta: conserva la plantilla elegida y explica el paso actual en ambos idiomas (11.012271ms) +@metis/resources:test: ✔ recursos: resumen de plantilla con unidades, booleanos traducidos, cero y límite de cuatro (17.138311ms) +@metis/resources:test: ✔ recursos: ficha lateral compacta traducida con cierre, acciones y contenido relacionado (12.635481ms) +@metis/resources:test: ✔ recursos: inventario y panel usan el icono vigente de la plantilla sin cambiar la especificación (17.756314ms) +@metis/resources:test: ✔ dominio: el formulario traduce el contexto pendiente y solo presenta un entorno confirmado (12.951483ms) +@metis/resources:test: ✔ SMB: formulario explica acceso automático o histórico sin selectores incompatibles, es/en (8.430654ms) +@metis/resources:test: ✔ UNC: presentación por segmentos conserva exactamente separadores, Unicode y valores repetidos (5.939038ms) +@metis/resources:test: ✔ nombre de software: imagen compacta decorativa, texto accesible y ausencia sin base64 visible (11.054172ms) +@metis/resources:test: ✔ campo declarativo: traduce opciones propias y conserva valores que coinciden con el prototipo (27.439578ms) +@metis/resources:test: ℹ tests 128 +@metis/resources:test: ℹ suites 0 +@metis/resources:test: ℹ pass 128 +@metis/resources:test: ℹ fail 0 +@metis/resources:test: ℹ cancelled 0 +@metis/resources:test: ℹ skipped 0 +@metis/resources:test: ℹ todo 0 +@metis/resources:test: ℹ duration_ms 5004.02204 +@metis/assets:test: cache bypass, force executing aa42a6d02368829e +@metis/assets:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/asset-catalog.test.ts src/api/domain/asset.test.ts src/api/domain/asset-template-propagation.test.ts src/api/domain/infrastructure.test.ts src/api/domain/workstation.test.ts src/api/domain/asset-relationship.test.ts src/web/catalog/shared/catalog.test.tsx src/web/assets/shared/inventory.test.tsx src/web/assets/shared/helpers/asset-columns.test.tsx src/web/assets/detail/ui/asset-detail.test.tsx src/web/infrastructure/shared/infrastructure.test.tsx src/api/domain/support.test.ts src/web/support-connections/shared/support.test.tsx src/api/domain/brand.test.ts src/web/brands/shared/brands.test.tsx src/api/domain/template-sections.test.ts src/web/workstations/shared/helpers/workstation-creation.test.ts src/web/workstations/shared/workstation-name.test.ts src/web/workstations/rename/api/rename-workstation.test.ts src/web/assets/list/asset-workstation.test.tsx src/web/assets/select/asset-selection.test.tsx src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-membership.test.ts src/api/infrastructure/persistence/directory-membership-provider.test.ts src/web/directory-memberships/shared/directory-memberships.test.tsx src/api/domain/network-share-publication.test.ts src/web/network-share-publications/shared/network-share-ui.test.tsx src/api/application/workstation-concurrency.test.ts src/web/workstations/shared/helpers/workstation-asset-availability.test.ts +@metis/assets:test: ✔ WD04.4: revisión obsoleta rechazada antes de reemplazar composición; revisión actual conserva historial (7.82925ms) +@metis/assets:test: ✔ el catálogo inicial es idempotente, con UUID propios y características opcionales (71.52736ms) +@metis/assets:test: ✔ la disponibilidad por compañía conserva el global y los campos desactivados (49.475118ms) +@metis/assets:test: ✔ las plantillas validan ámbito, campos activos e identidad estable al editar (41.96797ms) +@metis/assets:test: ✔ los campos validan listas, igualdad semántica, duplicados y tipo fijo (2.141413ms) +@metis/assets:test: ✔ solo elimina definiciones globales personalizadas que no usan otras plantillas (2.169814ms) +@metis/assets:test: ✔ iconos opcionales: cambio y retirada conservan identidad y asociaciones (26.350469ms) +@metis/assets:test: ✔ el arranque conserva un icono de serie retirado sin cambiar UUID, campos o disponibilidad (61.798697ms) +@metis/assets:test: ✔ los iconos desconocidos o asociados a campos se rechazan (5.835438ms) +@metis/assets:test: ✔ revisión explícita conserva identidades, copias y otras plantillas (28.670884ms) +@metis/assets:test: ✔ plantillas globales de serie editables: conserva identidad, asociaciones, disponibilidad y cambios al reiniciar (46.689ms) +@metis/assets:test: ✔ campos globales de serie editables: listas ampliables, tipo fijo y opciones existentes conservadas (44.104483ms) +@metis/assets:test: ✔ Las relaciones validan sus extremos, normalizan nombres y distinguen dirección (10.804469ms) +@metis/assets:test: ✔ Retirar conserva UUID, extremos y auditoría; repetir la retirada no modifica el historial (2.369815ms) +@metis/assets:test: ✔ Tipos de relación de serie protegidos, ámbito de compañía y dirección fija (94.113304ms) +@metis/assets:test: ✔ Asset: propaga altas, orden y retiradas conservando cero/falso, valores e historial; repetir no genera revisiones (33.015612ms) +@metis/assets:test: ✔ Asset: los campos retirados no impiden añadir una plantilla completa y no se fusionan por nombre (4.66423ms) +@metis/assets:test: ✔ Asset: retirar secciones conserva solo las necesarias y mover o reincorporar campos aplica el destino (0.836205ms) +@metis/assets:test: ✔ las secciones conservadas desambiguan el nombre respetando el límite de 100 caracteres (0.572404ms) +@metis/assets:test: ✔ Características opcionales, tipos y límites; cero y falso son valores presentes (12.619081ms) +@metis/assets:test: ✔ Activo conserva UUID y revisiones; los cambios iguales son idempotentes (1.761611ms) +@metis/assets:test: ✔ texto largo conserva saltos de línea y rechaza tipos no textuales (0.744805ms) +@metis/assets:test: ✔ estado técnico y uso: asignaciones calculadas, elegibilidad exclusiva/compartida e historial conservado (0.886706ms) +@metis/assets:test: ✔ Fecha de alta opcional: calendario real, independencia de compra, revisiones e idempotencia (3.559922ms) +@metis/assets:test: ✔ sedes archivadas: nuevas referencias rechazadas y referencias anteriores conservadas (8.001451ms) +@metis/assets:test: ✔ Marcas: nombre normalizado, UUID v7, protección de serie, estado e idempotencia (5.338234ms) +@metis/assets:test: ✔ Marcas: SVG estáticos con transparencia, límites y contenido activo rechazado (70.309852ms) +@metis/assets:test: ✔ Marcas: los 23 fabricantes tienen SVG local validado; Clónico no representa una marca (23.312049ms) +@metis/assets:test: ✔ Marcas: añadir, sustituir y quitar SVG conserva identidad, origen y actualización idempotente (7.523948ms) +@metis/assets:test: ✔ Marcas: mapper bidireccional conserva identidad y rechaza persistencia inválida (6.502942ms) +@metis/assets:test: ✔ Marcas: unicidad, edición y eliminación de personalizadas, con protección de serie (20.517232ms) +@metis/assets:test: ✔ pertenencia explícita: un rol, identidad UUID v7 e idempotencia sin nuevas revisiones (2.892119ms) +@metis/assets:test: ✔ promoción y retirada del rol conservan asociación e historial; finalización repetida es inocua (1.898312ms) +@metis/assets:test: ✔ cambio de dominio crea sucesor único y cierre atómico planificado; admite reintentos y rechaza conflictos (0.984907ms) +@metis/assets:test: ✔ capacidad, estado y compañía: rechaza extremos incompatibles sin inferencias de nombre (0.559904ms) +@metis/assets:test: ✔ activos o dominios inactivos conservan vínculos y permiten cerrar o retirar el rol (1.160708ms) +@metis/assets:test: ✔ mapper: rehidratación consistente, UUID conservados y rechazo de revisiones corruptas (1.48671ms) +@metis/assets:test: ✔ contratos estrictos: roles, paginación, UUID, acciones y privilegios arbitrarios (5.006032ms) +@metis/assets:test: ✔ infraestructura: interfaces independientes, varias IP, normalización y UUID v7 (12.534081ms) +@metis/assets:test: ✔ infraestructura: mismo contenido no cambia identidades ni añade revisiones (4.860931ms) +@metis/assets:test: ✔ infraestructura: rechaza nombres/IP duplicados, valores inválidos e identidades ajenas (16.540207ms) +@metis/assets:test: ✔ infraestructura: límites y direcciones repetidas entre interfaces o compañías permitidas (33.305814ms) +@metis/assets:test: ✔ publicación: alta, periodo, cierre idempotente e identidad persistida (17.632113ms) +@metis/assets:test: ✔ publicación: cardinalidad y reintento idéntico no crean periodos (0.937306ms) +@metis/assets:test: ✔ publicación: traslado explícito y replay estable incluso tras finalizar sucesor (1.48251ms) +@metis/assets:test: ✔ publicación: estados, recurso no SMB, identidad y fechas inválidas (1.121607ms) +@metis/assets:test: ✔ publicación: definición compatible con contratos comunes sin rol ni proveedor network (8.390454ms) +@metis/assets:test: ✔ asistencia: UUID v7, historial, cambios semánticos y fechas (5.455835ms) +@metis/assets:test: ✔ asistencia: preferido disponible y entrada estricta (2.345515ms) +@metis/assets:test: ✔ asistencia: varios métodos, duplicados, preferido único y activo retirado (2.213514ms) +@metis/assets:test: ✔ herramientas: protección de serie y desactivación sin perder referencias (1.45371ms) +@metis/assets:test: ✔ asistencia: mapper bidireccional y rechazo de historial inconsistente (10.291866ms) +@metis/assets:test: ✔ secciones: nombres, identidades, referencias y un solo nivel (9.968964ms) +@metis/assets:test: ✔ secciones: igualdad, orden, identidad y persistencia JSON (3.11922ms) +@metis/assets:test: ✔ secciones: plantillas globales y locales conservan separación y UUID al editar (6.341141ms) +@metis/assets:test: ✔ secciones de serie: el arranque conserva una plantilla sin grupos y su disponibilidad (118.186459ms) +@metis/assets:test: ✔ especificación: secciones capturadas, edición posterior y obligatoriedad independiente (60.64799ms) +@metis/assets:test: ✔ Puestos: composición opcional, referencias válidas y límites sin duplicados (7.811376ms) +@metis/assets:test: ✔ Puestos: UUID estable e historial de composición, persona y estado; guardado idéntico idempotente (8.340182ms) +@metis/assets:test: ✔ Puestos: ordenador principal exclusivo, único e independiente del responsable (1.365813ms) +@metis/assets:test: ✔ baja del puesto: libera composición y responsable, conserva historial e identidad y es idempotente (3.357033ms) +@metis/assets:test: ✔ definición real: proveedor, cardinalidad vigente, roles e inmutabilidad (3.895739ms) +@metis/assets:test: ✔ cursor firmado: vinculación a consulta y operador, sin aceptar UUID libres ni alteraciones (3.138531ms) +@metis/assets:test: ✔ extensión de Assets validada: roles y estados cerrados, UUID original y ámbito (6.259562ms) +@metis/assets:test: ✔ ficha de activo es/en: página con dos pestañas, información actual, relaciones y contenido de compañía (231.40454ms) +@metis/assets:test: ✔ historial del activo conserva instantáneas antiguas, interfaces retiradas y conexiones en ambos sentidos, ordenadas por fecha (30.653904ms) +@metis/assets:test: ✔ ficha de activo distingue carga, error y activo inexistente (37.927153ms) +@metis/assets:test: ✔ acciones: crear solo para portátiles, sobremesa y servidores disponibles (3.508124ms) +@metis/assets:test: ✔ acciones: abrir el puesto asociado aunque el activo sea periférico, no operativo o el puesto esté inactivo (1.297708ms) +@metis/assets:test: ✔ acciones: compañía y plantilla correctas; asociaciones solo históricas no bloquean el alta (0.859005ms) +@metis/assets:test: ✔ alta desde activo es/en: composición y ordenador preseleccionados, sede activa y nombre propuesto; edición y compañía se respetan (28.235988ms) +@metis/assets:test: ✔ inventario es/en: crear y ver puesto son acciones visibles fuera del menú (213.113818ms) +@metis/assets:test: ✔ la acción de selección conserva su texto visible como nombre accesible en es/en (51.343844ms) +@metis/assets:test: ✔ selector: comparte búsqueda, pestañas por identidad y columnas del inventario en es/en (286.197218ms) +@metis/assets:test: ✔ selector: filtra conjuntamente por plantilla, nombre, sede y estado; distingue vacío (171.858351ms) +@metis/assets:test: ✔ selector único: controles radio y disparador de diálogo; conserva el alta rápida y el bloqueo (107.987221ms) +@metis/assets:test: ✔ picker: búsqueda rápida disponible durante carga y error, sin anunciar un falso vacío (201.409345ms) +@metis/assets:test: ✔ inventario es/en: icono compacto antes del nombre, plantilla solo textual y ordenación por nombre (82.34635ms) +@metis/assets:test: ✔ columnas de características: identidad, campos nuevos de catálogo, instantáneas y nombres repetidos (27.823787ms) +@metis/assets:test: ✔ columnas elegidas es/en: cero, falso, fecha localizada, unidades y guion para campos ajenos (284.019903ms) +@metis/assets:test: ✔ columnas generales y de red es/en: fechas y autores propios, IP/MAC por interfaz y ausencia real (57.960789ms) +@metis/assets:test: ✔ los campos compartidos conservan un único ID y todos sus contextos de catálogo e instantánea (3.110821ms) +@metis/assets:test: ✔ La capacidad del inventario protege el presupuesto de tabla en el límite real (1.763712ms) +@metis/assets:test: ✔ El resize conserva el contexto abierto al ganar capacidad y nunca abre un modal (1.019207ms) +@metis/assets:test: ✔ Inventario traducido con alta de cabecera y sin formulario junto al listado (235.264766ms) +@metis/assets:test: ✔ Las pestañas incluyen plantillas vacías e inactivas y combinan identidad y búsqueda (469.228319ms) +@metis/assets:test: ✔ El activo ofrece altas relacionadas, ayuda inferior y no encadena una tercera alta (38.252354ms) +@metis/assets:test: ✔ Las fichas leen ambos sentidos y conservan la auditoría de relaciones retiradas (36.13474ms) +@metis/assets:test: ✔ El formulario de tipo de relación presenta ayuda justo antes de sus operaciones (26.831277ms) +@metis/assets:test: ✔ Puestos de trabajo: listado traducido, alta en cabecera y formulario modal (32.910218ms) +@metis/assets:test: ✔ Puestos de trabajo: altas rápidas y ayuda inferior; un activo anidado no ofrece terceras altas (26.255574ms) +@metis/assets:test: ✔ alta de puesto: sede única automática, responsable opcional y cuatro pasos traducidos (29.377194ms) +@metis/assets:test: ✔ la ficha lateral agrupa información y ofrece acciones superiores y enlaces reales (99.284958ms) +@metis/assets:test: ✔ texto largo: área editable con ayuda accesible (7.384349ms) +@metis/assets:test: ✔ las características marcan solo los campos obligatorios y conservan unidad y ayuda (14.376895ms) +@metis/assets:test: ✔ el resumen usa los campos propios de la plantilla, omite vacíos y texto largo y limita a cuatro (9.600864ms) +@metis/assets:test: ✔ alta de activo por pasos: empieza por plantilla, traduce la navegación y bloquea el avance sin selección (36.917845ms) +@metis/assets:test: ✔ el progreso de activos conserva la plantilla y explica los pasos en es/en (27.06438ms) +@metis/assets:test: ✔ las acciones por pasos solo ofrecen guardar al final y bloquean acciones durante el envío (51.959545ms) +@metis/assets:test: ✔ características obligatorias: rechaza ausentes y espacios y conserva cero y falso (0.357702ms) +@metis/assets:test: ✔ nombre propuesto: usa texto de la plantilla, omite marca y vacíos y respeta el límite (8.358755ms) +@metis/assets:test: ✔ diseño del puesto: grupos compactos, columnas por contenedor y resumen sin textos de ausencia (122.02611ms) +@metis/assets:test: ✔ activos del puesto: estado vacío visual traducido y acciones según disponibilidad (78.722622ms) +@metis/assets:test: ✔ diseño del puesto: navegación traducida y acciones bloqueadas durante el guardado (67.793049ms) +@metis/assets:test: ✔ ficha compacta de activo: comparte información, traducciones y acciones sin consultas propias (98.295252ms) +@metis/assets:test: ✔ ordenador principal: tarjetas con selección única, etiquetas es/en y solo los activos del puesto (64.684029ms) +@metis/assets:test: ✔ puestos: URL controla consulta, orden y página y sus enlaces conservan el contexto (47.499814ms) +@metis/assets:test: ✔ Marcas: listado común traducido, filtros y alta modal sin formulario junto a la tabla (95.727637ms) +@metis/assets:test: ✔ Marcas: nombre de serie protegido y ayuda inferior; alta rápida siempre activa (16.389109ms) +@metis/assets:test: ✔ Marcas: eliminar envía CSRF y cuerpo vacío, valida la respuesta y propaga conflictos (39.100361ms) +@metis/assets:test: ✔ Marcas: selector mantiene valores antiguos e inactivos y respeta el límite de alta anidada (21.215141ms) +@metis/assets:test: ✔ Marcas: el campo de serie se identifica por referencia de catálogo, no por el nombre (56.865478ms) +@metis/assets:test: ✔ selección múltiple añade un lote sin duplicados y conserva las reglas y el orden existentes (4.952433ms) +@metis/assets:test: ✔ añadir desde una sección asigna solo los campos nuevos a su destino y conserva los existentes (3.318822ms) +@metis/assets:test: ✔ la selección respeta el límite del schema, valida identificadores y rechaza el conjunto vacío (7.199848ms) +@metis/assets:test: ✔ el listado reutiliza tabla, búsqueda y casillas traducidas y conserva las selecciones bloqueadas (269.377105ms) +@metis/assets:test: ✔ L04.2: campos del catálogo recuperan orden y página desde su URL (313.793098ms) +@metis/assets:test: ✔ el catálogo muestra plantillas de serie y acción de alta sin formularios junto al listado (341.53858ms) +@metis/assets:test: ✔ el catálogo busca nombres sin acentos sin cambiar la consulta ni incluir campos de otras pestañas (166.801614ms) +@metis/assets:test: ✔ los formularios tienen ayuda inferior y reservan el alta rápida al diálogo de selección de campos (87.991287ms) +@metis/assets:test: ✔ las plantillas ofrecen selección visual traducida y conservan el icono al copiar (434.601697ms) +@metis/assets:test: ✔ dominio: roles estructurados, resumen solo de página y enlaces UUID, es/en (68.480756ms) +@metis/assets:test: ✔ tablas: miembro y finalización no se confunden con controlador o pertenencia vigente (15.902306ms) +@metis/assets:test: ✔ activo sin dominio: vacío explícito y asociación solo si el equipo es compatible (21.01304ms) +@metis/assets:test: ✔ activo unido: dominio, rol real, navegación y acciones especializadas (24.793265ms) +@metis/assets:test: ✔ carga y error de consulta no se muestran como dominio vacío (40.62397ms) +@metis/assets:test: ✔ API de lectura: conserva cursor opaco, tipo y ámbito; propaga errores funcionales (52.235247ms) +@metis/assets:test: ✔ traslado usa un único comando atómico, UUID esperado y CSRF; conflicto no se oculta (7.841852ms) +@metis/assets:test: ✔ infraestructura: clasificación de serie independiente del nombre/icono y selección manual prioritaria (2.295516ms) +@metis/assets:test: ✔ infraestructura: el total incluye roles e interfaces, respeta exclusiones manuales y no duplica activos (0.509204ms) +@metis/assets:test: ✔ infraestructura: listado y ficha presentan interfaces/IP en español e inglés, sin puertos (249.296761ms) +@metis/assets:test: ✔ SMB: relaciones paginadas, UNC Unicode y enlaces bidireccionales es/en (44.462196ms) +@metis/assets:test: ✔ SMB: historial conserva periodos y actores y no ofrece modificar periodos finalizados (16.189307ms) +@metis/assets:test: ✔ SMB: vacío real y error de lectura son distintos (14.817898ms) +@metis/assets:test: ✔ SMB: denegación oculta datos previos y carga inicial conserva cabeceras (16.55351ms) +@metis/assets:test: ✔ SMB: transferencia conserva UUID y envía un único comando propietario con CSRF (27.711784ms) +@metis/assets:test: ✔ SMB: búsqueda remota y cursor opaco viajan al servidor (2.002614ms) +@metis/assets:test: ✔ ficha SMB: publicador destacado, datos y timeline real es/en; solo lectura conserva navegación (42.00668ms) +@metis/assets:test: ✔ ficha SMB: vacío, finalizada, carga y denegación son estados distintos (19.337729ms) +@metis/assets:test: ✔ timeline SMB: solo hechos persistidos, UUID estable, traslado y cierre sin sucesor en página (0.766505ms) +@metis/assets:test: ✔ historial v2: utiliza únicamente nombres autorizados aportados y conserva UUID técnicos (15.439803ms) +@metis/assets:test: ✔ asistencia: formulario con alta rápida y ayuda antes de guardar (49.722629ms) +@metis/assets:test: ✔ asistencia: resumen excluye retirados, ordena preferido y conserva la gestión original (25.106766ms) +@metis/assets:test: ✔ asistencia: traducciones y resumen de método (2.834319ms) +@metis/assets:test: ✔ asistencia: resumen documental muestra destino, VPN y preferencia sin acciones de gestión (4.004027ms) +@metis/assets:test: ✔ asistencia: referencia no resuelta conserva el registro con ausencia y explicación (5.95884ms) +@metis/assets:test: ✔ renombrar: usa valores vigentes, normaliza el nombre, valida respuesta y envía CSRF (45.570504ms) +@metis/assets:test: ✔ renombrar: rechaza vacíos, espacios y exceso de longitud antes de realizar peticiones (5.183534ms) +@metis/assets:test: ✔ renombrar: un nombre equivalente no provoca una escritura ni otra revisión (1.218408ms) +@metis/assets:test: ✔ renombrar: propaga puesto ausente y errores del servidor sin escritura posterior (5.814639ms) +@metis/assets:test: ✔ WD04.4: comparte reglas de disponibilidad, retención, ocupación y puesto inactivo (0.946306ms) +@metis/assets:test: ✔ alta: sede necesaria, responsable opcional, composición mínima y ordenador perteneciente al puesto (0.906406ms) +@metis/assets:test: ✔ composición: asigna el activo único, conserva una elección válida y limpia el ordenador retirado (0.208301ms) +@metis/assets:test: ✔ propone exactamente el nombre del activo principal, sin depender de la sede (1.166608ms) +@metis/assets:test: ✔ no propone nombre cuando falta el activo principal (0.169002ms) +@metis/assets:test: ℹ tests 155 +@metis/assets:test: ℹ suites 0 +@metis/assets:test: ℹ pass 155 +@metis/assets:test: ℹ fail 0 +@metis/assets:test: ℹ cancelled 0 +@metis/assets:test: ℹ skipped 0 +@metis/assets:test: ℹ todo 0 +@metis/assets:test: ℹ duration_ms 8917.877219 +@metis/companies:test: cache bypass, force executing b3c337cf5e4acffd +@metis/companies:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/company.aggregate.test.ts src/api/domain/people.test.ts src/web/companies/shared/companies-page.test.tsx src/web/people/list/people-search.test.tsx src/web/companies/list/company-filters.test.tsx src/web/shared/helpers/company-list-query-state.test.ts src/api/domain/access/access.test.ts src/api/domain/mail-configuration.test.ts src/api/domain/mailbox.test.ts src/web/access/shared/access.test.tsx src/web/mail-configurations/shared/mail.test.tsx src/api/domain/work-profile.test.ts src/web/work-profiles/shared/profile.test.tsx src/api/domain/printer-configuration.test.ts src/web/printer-configurations/shared/printer.test.tsx src/api/domain/application-configuration.test.ts src/web/application-configurations/shared/application.test.tsx src/api/domain/certificate-configuration.test.ts src/web/certificate-configurations/shared/certificate.test.tsx src/web/work-environments/shared/work-environment.test.tsx src/api/domain/telework-authorization.test.ts src/web/telework-authorizations/shared/telework.test.tsx src/api/domain/remote-connection.test.ts src/api/domain/process.test.ts src/web/remote-connections/shared/remote.test.tsx src/web/processes/shared/processes.test.tsx src/web/shared/initials-avatar.test.tsx src/api/infrastructure/company-logo-processor.test.ts src/web/companies/shared/company-avatar.test.tsx src/web/shared/client-contracts.test.ts src/web/infrastructure/shared/helpers/printer-usage.test.ts src/web/workstations/detail/helpers/workstation-relations.test.ts src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workstation-dashboard.test.ts src/web/workstations/detail/helpers/workstation-equipment.test.ts src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts src/web/people/shared/helpers/person-organization.test.ts src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workspace/shared/workspace-routes.test.ts src/web/workspace/view/helpers/sidebar-preference.test.ts src/api/domain/software-installation.test.ts src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/api/application/directory-context-plan.test.ts src/web/access/list/helpers/access-environment-filter.test.ts src/api/domain/folder-mapping-account.test.ts src/api/application/local-identity-plan.test.ts src/web/access/list/helpers/access-resource-filter.test.ts src/web/folder-mappings/shared/helpers/folder-account-options.test.ts src/web/local-identity-environments/shared/local-identities-ui.test.tsx src/web/workstations/detail/helpers/workplace-node-actions.test.tsx +@metis/companies:test: ✔ contexto AD: creación pura con identidades propias, sin cuentas, grupos ni activos (10.512881ms) +@metis/companies:test: ✔ clasificación independiente del nombre; no se adopta un sistema existente por llamarse AD (3.439027ms) +@metis/companies:test: ✔ se rechazan compañías distintas, referencias inexistentes y entornos sin clasificación (1.22351ms) +@metis/companies:test: ✔ DNS repetido no crea dos entornos; otro dominio comparte sistema y obtiene un entorno distinto (4.287433ms) +@metis/companies:test: ✔ identidad local: vínculo por UUID, alta y retirada idempotentes con identidad e historial protegidos (14.078209ms) +@metis/companies:test: ✔ identidad local: clasificación explícita rechaza AD por sistema o entorno, sin comparar etiquetas (1.753713ms) +@metis/companies:test: ✔ identidad local: crear entorno utiliza AccessWorkspace y conserva cuentas y sistema existentes (2.275218ms) +@metis/companies:test: ✔ catálogos globales no se duplican con adiciones locales y no se admiten grupos anidados (9.269572ms) +@metis/companies:test: ✔ renombrar y cambiar el uso de una cuenta conserva UUID, historial y semántica de repetición (5.004838ms) +@metis/companies:test: ✔ el uso puede cambiar entre todas las opciones sin relaciones y repetirlo no añade revisiones (11.969292ms) +@metis/companies:test: ✔ pasar de compartida a personal rechaza titulares solapados y admite periodos consecutivos (4.139332ms) +@metis/companies:test: ✔ el cambio entre uso técnico y acceso no reinterpreta relaciones actuales ni históricas (8.173263ms) +@metis/companies:test: ✔ personal y compartida permiten cambiar el uso conservando la relación con una persona (4.188933ms) +@metis/companies:test: ✔ cerrar una autorización configurada deja retirada pendiente y cerrar una pendiente no inventa un acceso (4.804737ms) +@metis/companies:test: ✔ titulares no se solapan incluso en periodos cerrados; el relevo conserva una retirada anterior (1.810414ms) +@metis/companies:test: ✔ responsabilidad técnica no concede acceso y se permite sobre una cuenta caducada o inactiva (5.367941ms) +@metis/companies:test: ✔ valores reconstruyen UUID y fechas, rechazan fechas imposibles y no permiten credenciales (5.868646ms) +@metis/companies:test: ✔ las referencias UUID se normalizan y no permiten duplicar cuentas variando mayúsculas (1.000207ms) +@metis/companies:test: ✔ aplicaciones: contrato estricto, versión opcional y solo instalada (8.602266ms) +@metis/companies:test: ✔ aplicaciones: UUID, idempotencia, versión auditada, destino fijo y retirada (3.87443ms) +@metis/companies:test: ✔ aplicaciones: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.843215ms) +@metis/companies:test: ✔ aplicaciones: inactividad conserva notas y permite retirada, impide reconfigurar (1.602613ms) +@metis/companies:test: ✔ aplicaciones: persistencia preserva historial y rechaza claves y orden incoherentes (9.050869ms) +@metis/companies:test: ✔ R2.5: global conserva perfil, delivery e historial; disponibilidad distinta de lectura histórica (8.953169ms) +@metis/companies:test: ✔ certificados: contrato estricto, ubicación opcional y límites (12.344095ms) +@metis/companies:test: ✔ certificados: UUID, idempotencia, ubicación auditada, destino fijo y retirada (4.061731ms) +@metis/companies:test: ✔ certificados: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.991615ms) +@metis/companies:test: ✔ certificados: inactividad conserva notas y permite retirada, impide reconfigurar (1.393411ms) +@metis/companies:test: ✔ certificados: persistencia preserva historial y rechaza claves y orden incoherentes (12.487097ms) +@metis/companies:test: ✔ certificados: caducidad inclusiva, revisión y retirada sin perder historial (1.435511ms) +@metis/companies:test: ✔ compañía, contacto y sede tienen UUID v7 propios y se conserva la identidad al editar (8.864269ms) +@metis/companies:test: ✔ la pertenencia impide asociar o editar entidades de otra compañía (3.962331ms) +@metis/companies:test: ✔ la dirección y el teléfono son optativos y se pueden borrar (0.798606ms) +@metis/companies:test: ✔ nombres, email, teléfono y longitud de dirección se validan en los Value Objects (1.718213ms) +@metis/companies:test: ✔ sedes: archivar y reactivar conserva identidad y datos; repetir el estado es idempotente (0.788206ms) +@metis/companies:test: ✔ FolderMapping: cuenta desconocida, cuenta alternativa y cobertura independiente de la necesidad (74.644375ms) +@metis/companies:test: ✔ FolderMapping: ausencia conserva cuenta, null la retira y cada cambio real crea revisión (19.52725ms) +@metis/companies:test: ✔ FolderMapping: rechaza cuenta ausente, otro subtipo, otra persona, caducada o desactivada (17.875937ms) +@metis/companies:test: ✔ FolderMapping: Coverage por grupo exige pertenencia directa de la cuenta y configuración vigente (32.785753ms) +@metis/companies:test: ✔ FolderMapping: cobertura derivada cambia al retirar concesión, necesidad, cuenta o asociación personal (53.955416ms) +@metis/companies:test: ✔ FolderMapping: todas las autorizaciones necesarias deben proceder de la cuenta seleccionada (11.293887ms) +@metis/companies:test: ✔ Correo: UUIDv7, normalización, no-op, historial y retirada explícita (11.787791ms) +@metis/companies:test: ✔ Correo: buzón independiente, vigencia, perfiles, varios buzones y duplicados abiertos (28.654121ms) +@metis/companies:test: ✔ Correo: persistencia conserva identidad e historial y rechaza corrupción (17.859337ms) +@metis/companies:test: ✔ Correo: vinculación explícita del legado conserva UUID e historial, sin inferir propiedad (20.102854ms) +@metis/companies:test: ✔ Buzón: identidad, dirección única, cuenta opcional, ámbito y cambios auditados (7.654959ms) +@metis/companies:test: ✔ Uso de buzón: fechas inclusiva/exclusiva, mismo día, solapes, varias personas e historial (14.050807ms) +@metis/companies:test: ✔ Buzones: mapper conserva identidad y revisiones, rechaza corrupción (20.680559ms) +@metis/companies:test: ✔ personas con datos opcionales no requieren cuenta de acceso y conservan su UUID (7.407657ms) +@metis/companies:test: ✔ departamentos únicos por compañía, ignorando mayúsculas y espacios exteriores (1.150809ms) +@metis/companies:test: ✔ varios departamentos, un único principal y sin periodos solapados (4.774337ms) +@metis/companies:test: ✔ ediciones conservan revisiones y una repetición semántica no añade historial (9.743575ms) +@metis/companies:test: ✔ inactivos no reciben nuevas asignaciones; se conservan y pueden cerrarse las existentes (0.895607ms) +@metis/companies:test: ✔ asignaciones rechazan pertenencias cruzadas y fechas inválidas (1.27701ms) +@metis/companies:test: ✔ la persistencia rechaza periodos inválidos y revisiones que no reflejan el estado actual (1.996715ms) +@metis/companies:test: ✔ impresoras: contratos estrictos, notas opcionales y predeterminada solo vigente (15.970223ms) +@metis/companies:test: ✔ impresoras: UUID, historial, igualdad semántica, destino fijo y retirada terminal (7.77146ms) +@metis/companies:test: ✔ impresoras: duplicados por perfil, predeterminada única y destinos del ámbito (1.675812ms) +@metis/companies:test: ✔ impresoras: indisponibilidad señala revisión y permite notas y retirada (4.907737ms) +@metis/companies:test: ✔ impresoras: rehidratación conserva identidades y detecta corrupción (16.643328ms) +@metis/companies:test: ✔ procesos: contratos estrictos, normalización y límites (7.566658ms) +@metis/companies:test: ✔ procesos: UUID v7, tareas con identidad, actualización idempotente e historial (3.122524ms) +@metis/companies:test: ✔ procesos: completar exige todas resueltas; cierre terminal y sujeto/tareas fijos (4.466634ms) +@metis/companies:test: ✔ procesos: añadir revisiones conserva las resueltas e identidades y no duplica (2.312317ms) +@metis/companies:test: ✔ plantillas: copia de instrucciones, igualdad semántica y cambios independientes (1.579512ms) +@metis/companies:test: ✔ procesos: rehidratación bidireccional y rechazo de raíces/historial alterados (6.996654ms) +@metis/companies:test: ✔ revisión: personales, retirada pendiente y relaciones finalizadas aún configuradas (0.817407ms) +@metis/companies:test: ✔ revisión: incluye configuraciones de perfiles archivados, excluye cerradas y evita duplicar (0.316903ms) +@metis/companies:test: ✔ remotos: origen personal sin detalle, destinos tipados y contrato estricto (6.629951ms) +@metis/companies:test: ✔ remotos: UUID e historial, destino fijo, idempotencia y cierre terminal (7.872261ms) +@metis/companies:test: ✔ remotos: referencias de compañía y duplicados abiertos por recorrido y herramienta (3.785529ms) +@metis/companies:test: ✔ remotos: configuración y autorización independientes; caducidad y revocación no borran acceso (4.650736ms) +@metis/companies:test: ✔ remotos: disponibilidad de origen y destino, retirada y método personalizado (2.962822ms) +@metis/companies:test: ✔ remotos: persistencia conserva auditoría y detecta referencias, claves e historial corruptos (15.996322ms) +@metis/companies:test: ✔ remotos: una sede archivada conserva conexiones existentes pero rechaza nuevas (1.153209ms) +@metis/companies:test: ✔ instalaciones: pertenecen al equipo, admiten SO/aplicaciones y rechazan recursos ajenos y destinos variables (8.528966ms) +@metis/companies:test: ✔ instalaciones: versiones, idempotencia, retirada, revisión y persistencia de historial (13.819606ms) +@metis/companies:test: ✔ licencia del software: opcional, misma compañía y tipo, vigencia, desvinculación e historial idempotente (12.110493ms) +@metis/companies:test: ✔ R2.4: global activo e inactivo separan alta, reconfiguración y recuperación histórica (1.930115ms) +@metis/companies:test: ✔ teletrabajo: ausencia, límites, fechas reales y contrato estricto (7.385957ms) +@metis/companies:test: ✔ teletrabajo: UUID, renovación y revocación auditadas, igualdad y destino fijo (4.414134ms) +@metis/companies:test: ✔ teletrabajo: vigencia inclusiva, programación, caducidad y persona inactiva (4.012631ms) +@metis/companies:test: ✔ teletrabajo: ámbito, unicidad incluso revocada, disponibilidad y retirada (6.294449ms) +@metis/companies:test: ✔ teletrabajo: rehidratación preserva identidad y detecta corrupción de raíz e historial (37.840391ms) +@metis/companies:test: ✔ Perfil: cuenta opcional, UUID, historial, identidad fija e idempotencia (10.951073ms) +@metis/companies:test: ✔ Perfil: desactivar conserva valores e historial, es idempotente y precede al borrado (2.399616ms) +@metis/companies:test: ✔ Perfil: misma persona/dispositivo único vigente, múltiples dispositivos/personas y revisión sin pérdida de datos (1.63541ms) +@metis/companies:test: ✔ Perfil: cuenta autorizada, vigencia inclusiva de caducidad, cierre de autorización y cuenta técnica (1.50281ms) +@metis/companies:test: ✔ Perfil: persistencia conserva revisiones y rechaza raíz o cuenta histórica incoherentes (8.568257ms) +@metis/companies:test: ✔ Perfil: solo un ordenador principal activo admite altas y reactivaciones; el historial se conserva (0.919206ms) +@metis/companies:test: ✔ PNG, JPEG y WebP se normalizan sin recorte y sin metadatos a un avatar ligero (256.040561ms) +@metis/companies:test: ✔ se rechazan archivos vacíos, corruptos, SVG y GIF aunque simulen un MIME válido (7.79066ms) +@metis/companies:test: ✔ se rechazan excesos de peso y dimensión antes de almacenar (11.467488ms) +@metis/companies:test: ✔ los PNG animados se rechazan antes de decodificarlos (6.942753ms) +@metis/companies:test: ✔ el contexto distingue cuentas y grupos del entorno, sin incluir otros entornos o datos globales (5.683444ms) +@metis/companies:test: ✔ recurso contextual: incluye identidades de sistemas distintos sin mezclar necesidades y concesiones ajenas (14.220509ms) +@metis/companies:test: ✔ filtro vacío no incluye elementos ajenos y las rutas validan UUID y contexto de compañía (4.394233ms) +@metis/companies:test: ✔ los catálogos presentan alta mediante acción y no un formulario junto al listado (144.411842ms) +@metis/companies:test: ✔ cuentas ofrecen caducidad opcional y campos sin contraseña (40.196263ms) +@metis/companies:test: ✔ la ayuda explica todos los elementos en ambos idiomas y distingue el ámbito (90.319489ms) +@metis/companies:test: ✔ los ejemplos del sistema orientan sin rellenar datos del alta (11.522975ms) +@metis/companies:test: ✔ las altas rápidas respetan el contexto, ámbito y relaciones históricas (2.908519ms) +@metis/companies:test: ✔ los formularios ofrecen altas relacionadas y el segundo modal evita altas anidadas (207.483654ms) +@metis/companies:test: ✔ aplicaciones: listado sin formularios, alta en cabecera y traducciones (197.965508ms) +@metis/companies:test: ✔ aplicaciones: selectores con alta rápida y ayuda inferior antes de guardar (72.991793ms) +@metis/companies:test: ✔ R2.5: perfil muestra nombre, origen y versión global sin ResourceDTO local ni mezcla de perfiles (118.317861ms) +@metis/companies:test: ✔ certificados: listado sin formularios, alta en cabecera y traducciones (248.775816ms) +@metis/companies:test: ✔ certificados: selectores con alta rápida y ayuda inferior antes de guardar (76.648419ms) +@metis/companies:test: ✔ la compañía de origen es ámbito visible, no un filtro eliminable con Limpiar filtros (408.875863ms) +@metis/companies:test: ✔ directorio: orden y página proceden de URL sin perder la consulta (97.610335ms) +@metis/companies:test: ✔ las subentradas de Personas conservan contexto y reemplazan el filtro de la vista (62.643507ms) +@metis/companies:test: ✔ el dashboard no ofrece selector de compañía y conserva las métricas de cada ámbito (82.235435ms) +@metis/companies:test: ✔ el resumen de compañía es la entrada por defecto y ofrece destinos reales (142.799129ms) +@metis/companies:test: ✔ los índices de catálogos distinguen definiciones globales y variantes de compañía (19.94863ms) +@metis/companies:test: ✔ el listado presenta estado vacío y acceso al alta sin formularios visibles (110.425418ms) +@metis/companies:test: ✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (128.318234ms) +@metis/companies:test: ✔ el formulario de sede ofrece dirección y teléfono opcionales (49.232719ms) +@metis/companies:test: ✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (33.427217ms) +@metis/companies:test: ✔ asignar un departamento permite añadir el primero y conserva el selector en edición (32.38701ms) +@metis/companies:test: ✔ el tablero de compañía tiene composición propia, acciones arriba y métricas limitadas a su ámbito (29.772493ms) +@metis/companies:test: ✔ el menú de compañía ordena trabajo y personas por grupos sin repetir las acciones de usuario (82.291534ms) +@metis/companies:test: ✔ el menú muestra el contador de infraestructura: ready (78.736411ms) +@metis/companies:test: ✔ el menú muestra el contador de infraestructura: pending (76.481796ms) +@metis/companies:test: ✔ el menú muestra el contador de infraestructura: error (90.212485ms) +@metis/companies:test: ✔ sedes: listado traducido con filtro de archivadas y solo sedes activas por defecto (87.206266ms) +@metis/companies:test: ✔ la navegación de compañía conserva 21 enlaces reales, sección activa y contexto es/en (232.620807ms) +@metis/companies:test: ✔ el logo sustituye iniciales con URL versionada, dimensiones fijas y carga diferida (39.027555ms) +@metis/companies:test: ✔ sin logotipo aparecen iniciales y las listas consultan la misma caché de compañías (22.772649ms) +@metis/companies:test: ✔ cuentas del mapeo: exige asociación vigente y catálogos activos; no atribuye por login o por perfil (10.110367ms) +@metis/companies:test: ✔ actualización del mapeo: omitir cuenta conserva semántica distinta de retirarla explícitamente; admite revisión capturada (2.712718ms) +@metis/companies:test: ✔ uso de impresora: agrupa perfiles de un mismo equipo y separa pendientes e historial (37.900552ms) +@metis/companies:test: ✔ uso de impresora: referencias sin resolver no se presentan como ausencia de uso (13.347089ms) +@metis/companies:test: ✔ identidades locales: entorno del activo, navegación por UUID y estado vigente en es/en (56.430166ms) +@metis/companies:test: ✔ propietario local: vínculo retirado conserva navegación y no ofrece reasignación (1.668611ms) +@metis/companies:test: ✔ cuenta del mapeo: seleccionar perfil es una acción explícita; el render no infiere ni cambia cuenta (44.318987ms) +@metis/companies:test: ✔ correo: listado traducido, alta en cabecera y formularios ocultos (171.400318ms) +@metis/companies:test: ✔ correo: selectores reutilizables con altas y ayuda inmediatamente antes de guardar (35.640033ms) +@metis/companies:test: ✔ Buzones: alta en modal, cuenta opcional y ayuda al final (38.050249ms) +@metis/companies:test: ✔ L04.2: correo mantiene tabla y criterios mientras faltan sus referencias (34.120823ms) +@metis/companies:test: ✔ Personas conserva búsqueda por nombre, contactos, consulta y distinción ñ/n en es/en (949.939593ms) +@metis/companies:test: ✔ organización: resuelve departamento y cargo vigentes del responsable (1.214208ms) +@metis/companies:test: ✔ organización: sin responsable o asignación no infiere datos desde perfiles ni cargo genérico de persona (1.002407ms) +@metis/companies:test: ✔ organización: periodos semiabiertos, históricos y futuros (0.215101ms) +@metis/companies:test: ✔ organización: varias vigentes conservan todas, principal primero y orden estable sin mutar (12.802585ms) +@metis/companies:test: ✔ organización: dos principales no ocultan información seleccionando una arbitrariamente (0.586404ms) +@metis/companies:test: ✔ organización: aislamiento de compañía y persona, y referencias incompletas (0.967706ms) +@metis/companies:test: ✔ organización: cambios y refetch se derivan de la fuente actual (0.430602ms) +@metis/companies:test: ✔ impresoras: listado sin formularios, alta en cabecera y traducciones (271.285198ms) +@metis/companies:test: ✔ impresoras: selectores con alta rápida y ayuda inferior antes de guardar (78.923739ms) +@metis/companies:test: ✔ L04.2: Procesos recupera búsqueda, cerrados, orden y página en sus enlaces (294.962904ms) +@metis/companies:test: ✔ procesos: listados es/en sin formularios junto a los datos (183.763287ms) +@metis/companies:test: ✔ procesos: alta rápida y ayuda inferior antes del pie (58.89928ms) +@metis/companies:test: ✔ plantillas: instrucciones, desactivación y ayuda global es/en sin datos de compañía (37.694643ms) +@metis/companies:test: ✔ seguimiento: origen personal, revisión actual y edición sin afirmar retirada real; cerrados sin editar (134.355067ms) +@metis/companies:test: ✔ remotos: consulta sin formularios y traducciones (233.445744ms) +@metis/companies:test: ✔ remotos: formulario, altas rápidas y ayuda antes del pie (95.388713ms) +@metis/companies:test: ✔ remotos: origen personal, acceso configurado sin autorización y VPN separada (4.477433ms) +@metis/companies:test: ✔ el borrado de cuentas valida la respuesta, envía CSRF y conserva errores de negocio (52.776944ms) +@metis/companies:test: ✔ las consultas de compañías conservan sus rutas y rechazan respuestas inválidas (3.394422ms) +@metis/companies:test: ✔ lectura y guardado de accesos están separados sin cambiar el contrato HTTP (5.819038ms) +@metis/companies:test: ✔ el guardado de usos de buzón mantiene su endpoint y no se confunde con la consulta (3.679624ms) +@metis/companies:test: ✔ los adapters mantienen la ausencia semántica sin modificar los campos del formulario (0.397903ms) +@metis/companies:test: ✔ las instrucciones de proceso conservan el orden y excluyen líneas vacías (0.300202ms) +@metis/companies:test: ✔ la validación de logos conserva tipos permitidos, vacío y límite exacto de tamaño (0.319702ms) +@metis/companies:test: ✔ la tabla espera todas sus referencias y distingue actualización de disponibilidad (1.56911ms) +@metis/companies:test: ✔ un fallo recuperable conserva datos anteriores sin presentarlos como actualizados (1.118907ms) +@metis/companies:test: ✔ una fuente denegada impide mostrar la caché de todo el listado compuesto (0.680804ms) +@metis/companies:test: ✔ dashboard: HTTP 401 conserva la semántica de disponibilidad (42.629377ms) +@metis/companies:test: ✔ dashboard: HTTP 403 conserva la semántica de disponibilidad (1.233408ms) +@metis/companies:test: ✔ dashboard: HTTP 503 conserva la semántica de disponibilidad (0.378502ms) +@metis/companies:test: ✔ dashboard: una lectura correcta valida y conserva la página del proveedor (5.887938ms) +@metis/companies:test: ✔ iniciales y siglas soportan nombres vacíos, Unicode y separadores (3.245324ms) +@metis/companies:test: ✔ el color es estable con variaciones de espacios, mayúsculas y acentos (0.413203ms) +@metis/companies:test: ✔ los colores generados mantienen contraste AA para texto pequeño (1.559911ms) +@metis/companies:test: ✔ el avatar conserva su nombre accesible y puede ser decorativo dentro de un botón etiquetado (21.403558ms) +@metis/companies:test: ✔ OSUI-01/02/17: SO actual desde instalación, independiente de cualquier valor de fábrica (14.528007ms) +@metis/companies:test: ✔ OSUI-03/04/05/18: vacío, pendiente y retirado no son SO actual (56.125714ms) +@metis/companies:test: ✔ OSUI-06/07: varios SO, orden determinista y aplicaciones excluidas (24.38958ms) +@metis/companies:test: ✔ OSUI-08/12: cambiar de activo conserva solo su SO, sin aceptar compañías ajenas (3.947229ms) +@metis/companies:test: ✔ OSUI-09: versión de instalación y redundancia literal sin reglas de fabricante (10.83588ms) +@metis/companies:test: ✔ OSUI-10: referencia no resoluble no significa ausencia; inactiva resoluble conserva información (15.784917ms) +@metis/companies:test: ✔ OSUI-11: error con datos previos, error de resolver y carga no se presentan como vacío (18.337235ms) +@metis/companies:test: ✔ OSUI-13/14: servidor sin puesto y plantilla propia consumen la misma lectura por activo (7.249554ms) +@metis/companies:test: ✔ OSUI-16: presentación es/en y versión opcional (37.95258ms) +@metis/companies:test: ✔ SO global: selector conserva scope y destino SO; la versión instalada sigue separada (0.777906ms) +@metis/companies:test: ✔ REG-SO-01/11: render global configurado, inactivo e histórico conserva nombre, versión y destino es/en (70.503921ms) +@metis/companies:test: ✔ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (198.174064ms) +@metis/companies:test: ✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (62.585363ms) +@metis/companies:test: ✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (68.651807ms) +@metis/companies:test: ✔ teletrabajo: consulta sin formularios y traducciones (181.803042ms) +@metis/companies:test: ✔ teletrabajo: formulario con alta rápida de persona, fechas opcionales y ayuda inferior (55.117307ms) +@metis/companies:test: ✔ teletrabajo: sin autorización no se presupone permiso; persona inactiva requiere revisión (15.311413ms) +@metis/companies:test: ✔ teletrabajo: alta desde un perfil fija la persona y no abre otra alta rápida (14.334905ms) +@metis/companies:test: ✔ teletrabajo es/en: conserva estado documental, vigencia y revisión como mensajes independientes (58.750134ms) +@metis/companies:test: ✔ entorno: reúne varios correos y configuraciones, distingue pendiente, retirada y revisión (3.960226ms) +@metis/companies:test: ✔ entorno: excluye cerradas, otros perfiles, compañías y correo antiguo sin adivinar relaciones (1.666011ms) +@metis/companies:test: ✔ entorno: composición vigente del puesto y datos actuales sin duplicación (0.854406ms) +@metis/companies:test: ✔ entorno: ficha es/en con estados y acciones, sin formularios; muestra falso y varios correos (110.819224ms) +@metis/companies:test: ✔ entorno: carga, fallo parcial sin falsa ficha vacía, perfil inexistente y aviso de archivado (61.103299ms) +@metis/companies:test: ✔ entorno: consulta autorización por persona, común a sus perfiles y sin confundir preparación (46.702105ms) +@metis/companies:test: ✔ entorno: accesos abiertos de la persona y sus orígenes sin confundirlos con configuraciones del perfil (24.243158ms) +@metis/companies:test: ✔ las entidades de los selectores se pluralizan en es/en sin reutilizar el verbo de acción (7.900751ms) +@metis/companies:test: ✔ perfiles: listado es/en, alta en cabecera y ausencia de formulario junto al listado (83.592544ms) +@metis/companies:test: ✔ perfiles: la cabecera breve conserva el motivo completo en la celda de revisión (50.314827ms) +@metis/companies:test: ✔ perfiles: alta en cuatro pasos, sin guardado intermedio y contenido de ayuda conservado (17.792316ms) +@metis/companies:test: ✔ perfiles: selección de persona explícita y cuenta opcional con altas independientes (27.436279ms) +@metis/companies:test: ✔ perfiles: el puesto fijado aporta su ordenador y no selecciona al responsable como usuario (8.887558ms) +@metis/companies:test: ✔ perfiles: requisitos por paso, cuenta opcional y propuesta basada en persona y ordenador (0.380102ms) +@metis/companies:test: ✔ perfiles: el nombre sugerido respeta el límite del contrato (0.325602ms) +@metis/companies:test: ✔ perfiles: resumen con listas, ordenador único y ausencias representadas por guion (4.749231ms) +@metis/companies:test: ✔ perfiles: edición completa con identidad fija aunque el perfil requiera revisión (12.063378ms) +@metis/companies:test: ✔ perfiles: orden y página navegables conservan búsqueda y archivados al abrir entorno (52.777244ms) +@metis/companies:test: ✔ Personas admite actividad en listado y ficha, con los demás criterios de contexto (15.179698ms) +@metis/companies:test: ✔ el catálogo de aplicaciones de compañía conserva cursor, filtros y retorno a ficha (1.54101ms) +@metis/companies:test: ✔ las funcionalidades archivadas no tienen rutas activas (11.712876ms) +@metis/companies:test: ✔ el filtro de plantilla permite abrir listados y fichas de activos y recursos (1.457309ms) +@metis/companies:test: ✔ el filtro de plantilla se limita a los inventarios que conocen sus definiciones (4.732631ms) +@metis/companies:test: ✔ todas las secciones de compañía tienen una ruta propia y el índice es el resumen (9.042758ms) +@metis/companies:test: ✔ los índices de catálogos y los cinco catálogos globales son destinos independientes (1.802712ms) +@metis/companies:test: ✔ las configuraciones conservan la compañía y el UUID del perfil (2.329215ms) +@metis/companies:test: ✔ las rutas desconocidas y los parámetros inválidos no abren una sección por defecto (17.03921ms) +@metis/companies:test: ✔ la ficha de puesto tiene ruta propia, conserva el UUID y rechaza identificadores inválidos (1.120307ms) +@metis/companies:test: ✔ dominios: enlaces a cuentas y grupos limitados al entorno de la compañía (13.88749ms) +@metis/companies:test: ✔ los parámetros de contexto llegan al consumidor sin crear rutas nuevas ni aceptar claves ajenas (6.105039ms) +@metis/companies:test: ✔ catálogo de aplicaciones: UUID global y criterios propios sin compañía ficticia (12.487781ms) +@metis/companies:test: ✔ catálogo SO: ruta específica y filtros, sin confundir con aplicaciones (0.648405ms) +@metis/companies:test: ✔ la barra comienza desplegada sin navegador o sin una preferencia válida (5.512536ms) +@metis/companies:test: ✔ plegar y desplegar persisten la preferencia sin modificar otras claves (0.375602ms) +@metis/companies:test: ✔ un fallo de lectura, escritura o acceso a localStorage no bloquea la barra (0.365102ms) +@metis/companies:test: ✔ la capacidad del shell fuerza modos sin cambiar la preferencia manual (6.06794ms) +@metis/companies:test: ✔ un menú solo libera su modalidad si su presentación pasa a estar disponible fija (0.338403ms) +@metis/companies:test: ✔ layout 640px: 0 asociados y 0 instalaciones (27.94378ms) +@metis/companies:test: ✔ layout 640px: 0 asociados y 3 instalaciones (28.888109ms) +@metis/companies:test: ✔ layout 640px: 1 asociados y 0 instalaciones (7.681957ms) +@metis/companies:test: ✔ layout 640px: 1 asociados y 2 instalaciones (10.564879ms) +@metis/companies:test: ✔ layout 640px: 2 asociados y 3 instalaciones (24.815186ms) +@metis/companies:test: ✔ layout 748px: 0 asociados y 0 instalaciones (2.74802ms) +@metis/companies:test: ✔ layout 748px: 0 asociados y 3 instalaciones (20.598055ms) +@metis/companies:test: ✔ layout 748px: 1 asociados y 0 instalaciones (12.833195ms) +@metis/companies:test: ✔ layout 748px: 1 asociados y 2 instalaciones (8.358362ms) +@metis/companies:test: ✔ layout 748px: 2 asociados y 3 instalaciones (15.931919ms) +@metis/companies:test: ✔ layout 900px: 0 asociados y 0 instalaciones (4.390833ms) +@metis/companies:test: ✔ layout 900px: 0 asociados y 3 instalaciones (10.285377ms) +@metis/companies:test: ✔ layout 900px: 1 asociados y 0 instalaciones (2.860422ms) +@metis/companies:test: ✔ layout 900px: 1 asociados y 2 instalaciones (7.388255ms) +@metis/companies:test: ✔ layout 900px: 2 asociados y 3 instalaciones (18.488638ms) +@metis/companies:test: ✔ layout 1200px: 0 asociados y 0 instalaciones (18.68624ms) +@metis/companies:test: ✔ layout 1200px: 0 asociados y 3 instalaciones (12.293492ms) +@metis/companies:test: ✔ layout 1200px: 1 asociados y 0 instalaciones (6.583449ms) +@metis/companies:test: ✔ layout 1200px: 1 asociados y 2 instalaciones (10.004175ms) +@metis/companies:test: ✔ layout 1200px: 2 asociados y 3 instalaciones (8.492564ms) +@metis/companies:test: ✔ layout: dos asociados se reparten por capacidad; sin principal no se fabrican conexiones (9.710173ms) +@metis/companies:test: ✔ preview: conserva límites y publica solo cobertura real de fuentes conocidas (2.374718ms) +@metis/companies:test: ✔ WD04.4: acción estable de presentación, fuera de las relaciones y contadores, sin solapamientos (382.145055ms) +@metis/companies:test: ✔ WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría (2.236515ms) +@metis/companies:test: ✔ WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados (0.550203ms) +@metis/companies:test: ✔ WD04.5: distingue instalación, producto global/inactivo y licencia particular (0.860106ms) +@metis/companies:test: ✔ WD04.5: producto particular y gates cerrados no crean acciones administrativas (1.53801ms) +@metis/companies:test: ✔ WD04.5: SO global utiliza la referencia pública y su etiqueta específica (0.609404ms) +@metis/companies:test: ✔ WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas (0.895506ms) +@metis/companies:test: ✔ WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú (58.990385ms) +@metis/companies:test: ✔ dashboard: ordenador y equipamiento actuales, personas por perfiles y archivados separados (34.985262ms) +@metis/companies:test: ✔ dashboard: sin responsable sigue mostrando usuarios y un puesto desmantelado no cuenta historia como miembros (0.318502ms) +@metis/companies:test: ✔ dashboard: sustituir ordenador resuelve perfiles del nuevo host sin trasladar los anteriores (7.968059ms) +@metis/companies:test: ✔ dashboard: referencias ajenas o principal fuera de composición no aportan relaciones (0.378103ms) +@metis/companies:test: ✔ pendientes: solo pending, perfiles activos, compañía correcta y deduplicación por familia e identidad (2.287217ms) +@metis/companies:test: ✔ último cambio: orden cronológico sin mutación, altas de miembros y campos realmente cambiados (1.794414ms) +@metis/companies:test: ✔ equipamiento: principal válido primero, miembros únicos y secundarios en orden declarado (2.428319ms) +@metis/companies:test: ✔ equipamiento: activos sin principal no adquieren un principal por su tipo o posición (0.304503ms) +@metis/companies:test: ✔ equipamiento: principal fuera de composición se advierte sin añadirlo a miembros (0.232102ms) +@metis/companies:test: ✔ equipamiento: referencia ausente o de otra compañía no inventa datos ni marca principal (2.841221ms) +@metis/companies:test: ✔ equipamiento: vacío y desmantelado no recuperan miembros del historial (0.406003ms) +@metis/companies:test: ✔ equipamiento: averiado sigue asignado y conserva ambos estados originales (0.454303ms) +@metis/companies:test: ✔ expansión: todos abiertos inicialmente y plegado independiente de cada perfil (1.893214ms) +@metis/companies:test: ✔ refetch conserva plegados y filtros individuales, incluso con error o fuentes incompletas (0.401803ms) +@metis/companies:test: ✔ retirada o archivo limpia únicamente el estado del perfil afectado (0.405603ms) +@metis/companies:test: ✔ cambio de compañía, puesto u ordenador restablece todos los perfiles abiertos y los filtros (0.429203ms) +@metis/companies:test: ✔ orden estable y numérico del resumen y los pendientes, sin mutar datos remotos (10.508678ms) +@metis/companies:test: ✔ incluye solo perfiles del ordenador principal, distingue inactivos y deduplica personas (4.891236ms) +@metis/companies:test: ✔ puesto inexistente o sin composición no hereda perfiles de otros activos (0.850906ms) +@metis/companies:test: ✔ persona: responsabilidad y uso son independientes y solo se consideran puestos y perfiles vigentes (1.164508ms) +@metis/companies:test: ✔ ficha de puesto es/en: cabecera, retorno, bloques vacíos y edición modal sin formulario incrustado (109.937674ms) +@metis/companies:test: ✔ un UUID de puesto ausente muestra no encontrado sin cabecera ni edición de otro puesto (3.507828ms) +@metis/companies:test: ✔ ficha de persona es/en: distingue responsabilidad y uso, y enlaza los puestos (6.437451ms) +@metis/companies:test: ✔ ficha: ordenador destacado y periféricos sin repetir, perfiles solo del ordenador y personas deduplicadas (103.085419ms) +@metis/companies:test: ✔ personas y perfiles: carga y error no se presentan como listados vacíos (12.5875ms) +@metis/companies:test: ✔ ficha: no permite crear perfiles si el ordenador está retirado o el puesto está desactivado (48.707887ms) +@metis/companies:test: ✔ historial del puesto es/en: revisiones de más reciente a más antigua con autor y valores de cada momento (9.981779ms) +@metis/companies:test: ✔ personas es/en: enlaces a todos sus puestos bajo responsabilidad, sin confundirlos con puestos usados (56.689251ms) +@metis/companies:test: ✔ menú de compañía es/en: totales en badges alineados y cero real en secciones vacías (37.959202ms) +@metis/companies:test: ✔ ruta de activo de compañía abre la página con información, historial, software y solo sus perfiles (107.194951ms) +@metis/companies:test: ✔ equipamiento es/en: badges de principal, técnico y uso conservan su significado (7.153357ms) +@metis/companies:test: ✔ equipamiento: inventario fallido no se presenta como vacío y permite reintentar (3.050324ms) +@metis/companies:test: ✔ equipamiento: principal inconsistente se explica y no se incorpora como miembro válido (2.375619ms) +@metis/companies:test: ✔ personas y perfiles es/en: expansión contextual, enlaces independientes y resumen cero real (9.934379ms) +@metis/companies:test: ✔ cabecera es/en: responsable largo o ausente, contexto independiente y mapa con resumen (74.884295ms) +@metis/companies:test: ✔ perfiles: lista completa y todos desplegados por defecto, incluso con cincuenta perfiles (76.186805ms) +@metis/companies:test: ✔ perfiles: carga, error y datos retenidos no publican un total como actual (7.775261ms) +@metis/companies:test: ✔ equipamiento: contador conocido cero, uno, cinco y seis; error conserva filas sin publicar total (12.473499ms) +@metis/companies:test: ✔ configuración: cobertura desconocida, revisión y notas permanecen fuera del disclosure técnico (2.841023ms) +@metis/companies:test: ✔ perfiles: una actualización en curso conserva el total conocido y anuncia la actividad (1.593613ms) +@metis/companies:test: ✔ v2.2: dependencia sin principal conserva mapa y resumen y una explicación principal sin tabla vacía (17.465039ms) +@metis/companies:test: ✔ v2.2: un vacío confirmado de perfiles conserva el alta y evita cabeceras de una tabla sin filas (1.18171ms) +@metis/companies:test: ✔ v2.2: soporte distingue perfiles en carga, error, ausencia confirmada y persona no resuelta (3.466628ms) +@metis/companies:test: ✔ v2.2: referencia de principal no resuelta no publica cero pendientes ni ausencia de perfiles (14.662417ms) +@metis/companies:test: ✔ v3: Software conserva los tres estados documentales con la misma representación que las familias (29.893937ms) +@metis/companies:test: ✔ v3: estados técnicos de equipamiento conservan principal y asignación en es/en (13.279905ms) +@metis/companies:test: ✔ responsable es/en: avatar y nombre abren un único popup y la ausencia no ofrece acciones (3.79863ms) +@metis/companies:test: ✔ mapa visual: aísla compañías, deduplica miembros y conserva software y estados reales (15.916626ms) +@metis/companies:test: ✔ mapa es/en: principal solo, vacíos confirmados y error de software conservan navegación y gestión (39.806416ms) +@metis/companies:test: ✔ mapa: composición vacía y sin principal no fabrica relaciones ni instalaciones (1.553212ms) +@metis/companies:test: ✔ contexto de persona: rechaza datos de otra compañía y no ofrece acciones (0.639105ms) +@metis/companies:test: ✔ mapa es/en: carga inicial y carga parcial mantienen estados accesibles (21.41307ms) +@metis/companies:test: ✔ mapa es/en: leyenda con tres conceptos y cobertura explícita sin totales inventados (2.099817ms) +@metis/companies:test: ✔ mapa es/en: revisión de software traducida incluso sin referencia navegable (1.072609ms) +@metis/companies:test: ✔ WD04.4 es/en: acción autorizada, vacío accionable y lectura sin permiso (6.187549ms) +@metis/companies:test: ✔ perfiles del puesto: configuraciones de todos los activos abiertas y destinos accesibles únicos (14.788518ms) +@metis/companies:test: ℹ tests 317 +@metis/companies:test: ℹ suites 0 +@metis/companies:test: ℹ pass 315 +@metis/companies:test: ℹ fail 2 +@metis/companies:test: ℹ cancelled 0 +@metis/companies:test: ℹ skipped 0 +@metis/companies:test: ℹ todo 0 +@metis/companies:test: ℹ duration_ms 24934.748373 +@metis/companies:test: +@metis/companies:test: ✖ failing tests: +@metis/companies:test: +@metis/companies:test: test at src/web/companies/shared/companies-page.test.tsx:1:6023 +@metis/companies:test: ✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (128.318234ms) +@metis/companies:test: AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: +@metis/companies:test: +@metis/companies:test: assert.ok(markup.includes("Personas (1)")) +@metis/companies:test: +@metis/companies:test: at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:229:10) +@metis/companies:test: at async Test.run (node:internal/test_runner/test:1404:7) +@metis/companies:test: at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { +@metis/companies:test: generatedMessage: true, +@metis/companies:test: code: 'ERR_ASSERTION', +@metis/companies:test: actual: false, +@metis/companies:test: expected: true, +@metis/companies:test: operator: '==', +@metis/companies:test: diff: 'simple' +@metis/companies:test: } +@metis/companies:test: +@metis/companies:test: test at src/web/companies/shared/companies-page.test.tsx:1:7439 +@metis/companies:test: ✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (33.427217ms) +@metis/companies:test: AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: +@metis/companies:test: +@metis/companies:test: assert.ok(markup.includes("Esta persona no tiene acceso a Metis Desk")) +@metis/companies:test: +@metis/companies:test: at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:259:10) +@metis/companies:test: at async Test.run (node:internal/test_runner/test:1404:7) +@metis/companies:test: at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { +@metis/companies:test: generatedMessage: true, +@metis/companies:test: code: 'ERR_ASSERTION', +@metis/companies:test: actual: false, +@metis/companies:test: expected: true, +@metis/companies:test: operator: '==', +@metis/companies:test: diff: 'simple' +@metis/companies:test: } +@metis/companies:test: [ELIFECYCLE] Test failed. See above for more details. + ERROR @metis/companies#test: command (/home/david/dev/metis-desk/modules/companies) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run test exited (1) + + Tasks: 7 successful, 8 total +Cached: 0 cached, 8 total + Time: 44.756s +Failed: @metis/companies#test + + ERROR run failed: command exited (1) +[ELIFECYCLE] Test failed. See above for more details. diff --git a/.artifacts/account-usage/tests.log b/.artifacts/account-usage/tests.log new file mode 100644 index 00000000..8e49b241 --- /dev/null +++ b/.artifacts/account-usage/tests.log @@ -0,0 +1,10 @@ +✔ modules/companies/src/api/domain/access/access.test.ts (476.749877ms) +✔ modules/companies/src/web/access/shared/access.test.tsx (3623.123324ms) +ℹ tests 2 +ℹ suites 0 +ℹ pass 2 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 3636.831013 diff --git a/.artifacts/account-usage/typecheck.log b/.artifacts/account-usage/typecheck.log new file mode 100644 index 00000000..13034a53 --- /dev/null +++ b/.artifacts/account-usage/typecheck.log @@ -0,0 +1,29 @@ +$ turbo run typecheck +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running typecheck in 13 packages + • Remote caching disabled + +@repo/shadcn-ui:typecheck: cache miss, executing 3a02880bf260fd89 +@repo/rdx-utils:typecheck: cache hit, replaying logs e660b2f14d16d88c +@repo/rdx-utils:typecheck: $ tsc -p tsconfig.json +@repo/rdx-ddd:typecheck: cache hit, replaying logs 315b0dccfb6d76d3 +@repo/rdx-ddd:typecheck: $ tsc -p tsconfig.json +@metis/relationship-contracts:typecheck: cache hit, replaying logs 6ecbe82d1a36ae07 +@metis/relationship-contracts:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: src/components/calendar.tsx(165,12): error TS2375: Type '{ day: CalendarDay; modifiers: Modifiers; disabled?: boolean | undefined; form?: string | undefined; formAction?: string | ((formData: FormData) => void | Promise<...>) | undefined; ... 285 more ...; locale: Partial<...> | undefined; }' is not assignable to type '{ locale?: Partial; }' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties. +@repo/shadcn-ui:typecheck: Types of property 'locale' are incompatible. +@repo/shadcn-ui:typecheck: Type 'Partial | undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: Type 'undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: [ELIFECYCLE] Command failed with exit code 2. + ERROR @repo/shadcn-ui#typecheck: command (/home/david/dev/metis-desk/packages/shadcn-ui) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run typecheck exited (2) + + Tasks: 3 successful, 4 total +Cached: 3 cached, 4 total + Time: 9.779s +Failed: @repo/shadcn-ui#typecheck + + ERROR run failed: command exited (2) +[ELIFECYCLE] Command failed with exit code 2. diff --git a/.artifacts/account-usage/validacion.md b/.artifacts/account-usage/validacion.md new file mode 100644 index 00000000..df397167 --- /dev/null +++ b/.artifacts/account-usage/validacion.md @@ -0,0 +1,53 @@ +# Edición de Uso de cuentas — 27/10/2026 + +En el formulario existente Editar → Uso se habilitan Personal, Compartida y Técnica. +El dominio acepta los cambios compatibles conservando UUID, estado y relaciones, y +registra la revisión con el valor previo. Repetir la edición sin cambios no añade revisiones. +Sistema y entorno siguen fijos. No se necesita migración ni cambia el contrato de guardado. + +La conversión Compartida → Personal comprueba solapamientos de titulares, incluidos +los históricos, mediante la política de periodos existente. Cambiar entre Técnica y +Personal/Compartida se rechaza si hay relaciones con personas, incluso cerradas: +responsabilidad técnica y acceso tienen contratos distintos. El error traducido +ACCOUNT_USAGE_CONFLICT conserva el borrador y permite seleccionar un uso compatible. + +Archivos principales: +- `modules/companies/src/web/access/shared/helpers/access-fields.ts` +- `modules/companies/src/api/domain/access/access-item.entity.ts` +- `modules/companies/src/api/domain/access/access-policy.ts` +- `modules/companies/src/api/domain/access/access-workspace.aggregate.ts` +- `modules/companies/src/api/domain/access/access.test.ts` +- `scripts/account-usage-ui-checks.py` + +## Comprobaciones ejecutadas + +Correctas: +- `pnpm --filter @metis/companies typecheck` y `pnpm --filter @metis/server typecheck`. +- `TSX_TSCONFIG_PATH=tsconfig.json node --import tsx --test modules/companies/src/api/domain/access/access.test.ts modules/companies/src/web/access/shared/access.test.tsx`. +- Prueba MariaDB `apps/server/src/account-deletion.integration.test.ts` con NODE_ENV=test y DB_NAME=metis_desk_test: cambio Personal → Compartida, relectura y conservación del historial, además de su cobertura de borrado. +- Biome dirigido a los diez archivos TypeScript/JSON cambiados: sin errores ni advertencias. ESLint dirigido: correcto. `git diff --check`: correcto. +- `pnpm build`: correcto, con el aviso existente de tamaño de chunks. +- `python3 scripts/visual-audit.py --account-deletion --check`: 8 comprobaciones específicas de Uso y 17 de regresión de eliminación mediante Playwright MCP Docker stdio. Edición real, selector habilitado, sistema bloqueado, selección por teclado, guardado persistido, mismo UUID/historial, cancelación sin guardar, error por relación incompatible conservando el borrador y recuperación con Compartida. +- Diálogo a 1440, 390 y 320 px sin desbordamiento horizontal. Abiertas e inspeccionadas las capturas de 320 px y error incompatible. El cuerpo mantiene desplazamiento y pie visible. +- Volumen sintético: 15 compañías; principal con 50 personas, 51 activos, 66 recursos, 50 perfiles, 50 puestos y 62 cuentas creadas durante el recorrido. Solo metis_desk_test desechable. Entorno retirado y sesión eliminada. + +Se ejecutaron también `pnpm typecheck`, `pnpm lint`, `pnpm test` y `pnpm check` globales. +Mantienen fallos ajenos a este cambio: locale en el calendario vendor, dos pruebas de +textos en companies-page.test.tsx y diagnósticos de lint/formato de otros archivos. +No se modificaron vendor ni esos archivos para ocultarlos. Logs de esta ejecución en +este directorio. No se han cambiado cuentas reales durante las pruebas. + +## Skills y límites + +Consultadas `rdx-solid`, `ux-inputs-and-forms`, `shadcn` y las reglas React ya revisadas +para este formulario. Influyeron en la validación de relaciones en dominio, el campo +con etiqueta persistente, el uso de las primitivas existentes y la conservación del +borrador sin duplicar estado remoto. No están disponibles los auditores ux-*-audit; +no se invocaron ni instalaron. No se afirma validación WCAG completa, lector de +pantalla, contraste global o tema oscuro. + +[Informe MCP](../playwright/authenticated-g5yiyswy/account-usage-report.json) + +[Captura de edición a 320 px](../playwright/authenticated-g5yiyswy/account-usage-320.png) + +[Error recuperable por relaciones incompatibles](../playwright/authenticated-g5yiyswy/account-usage-incompatible.png) diff --git a/.artifacts/account-usage/visual.log b/.artifacts/account-usage/visual.log new file mode 100644 index 00000000..474e6a6f --- /dev/null +++ b/.artifacts/account-usage/visual.log @@ -0,0 +1,4 @@ +Preparando MariaDB desechable y servicios en puertos libres… +Edición de uso: 8 comprobaciones. Evidencias: /home/david/dev/metis-desk/.artifacts/playwright/authenticated-g5yiyswy +Eliminación de cuentas: 17 comprobaciones. Evidencias: /home/david/dev/metis-desk/.artifacts/playwright/authenticated-g5yiyswy +Entorno temporal retirado; las capturas se conservan sin sesión ni credenciales. diff --git a/apps/server/data/resource-icons/7zip.png b/apps/server/data/resource-icons/7zip.png new file mode 100644 index 0000000000000000000000000000000000000000..99ee31a41ca9f765f310651df925149ea66d5e02 GIT binary patch literal 13036 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. diff --git a/apps/server/data/resource-icons/adobe-indesign.png b/apps/server/data/resource-icons/adobe-indesign.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe863f2ac43cf771f5bf84cb31b812204adc8d3 GIT binary patch literal 16245 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/adobeacrobatreader.png b/apps/server/data/resource-icons/adobeacrobatreader.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3b94277036da228cfbcdc69322d7b5c7e700b9 GIT binary patch literal 16497 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/adobeaftereffects.png b/apps/server/data/resource-icons/adobeaftereffects.png new file mode 100644 index 0000000000000000000000000000000000000000..566c52f9eff9a2a0e13693c7feff31e97ebbbd13 GIT binary patch literal 11580 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 KDEi&{>Hh&0!thf7 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/adobepremierepro.png b/apps/server/data/resource-icons/adobepremierepro.png new file mode 100644 index 0000000000000000000000000000000000000000..958be301fda2e613640bfd94f32d36edf55fa704 GIT binary patch literal 8511 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 D?6@Ln literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/anydesk.png b/apps/server/data/resource-icons/anydesk.png new file mode 100644 index 0000000000000000000000000000000000000000..791fc76e6ea02d4a9bb0061166c265efc7172147 GIT binary patch literal 4061 zcmchae{2)y8ONWqFZMz4FAAwk9BfQg(G{9hg(O--Vi$)5wN3d^I@Yk_LP1eGh&NW6 zHMBmHDK^w0QGcLmFs&PEi`H!du>lfX@5k%JpR0&=f}PFz23RJvEDXy)>I<0Eo%s^Br@UBM2ZD3U$wq}4KGt74d35N zbg!NNq(2||bvu!xYgs7xaO+23e7v}^|H+cN3(0qX^!MZ)rH$`2FWVFj#V8m{JhAuc z>fcT2{@~oDYtMhVc>cRTCVDjQqJT(1P9haoGLa825|KjR^41OF+{r|e|Hl3=_%}6u zqxdHFt#z_VR%FMGA6Z?x@LWB=8b7^(5v;nRQZRP=weIVFV} zJZ&z0@%E_0kAdynP-Z$2|5XAbly~ac!BerUMIVwqD1_kF5_}aqponijyu8sSd6NFlCM*-SfRx38sq8l3VZRmh4BA?CU&r&yx`CL`PNUA-Wl*Mt%;_?P$mytzRRzZUwF`Nh;Z4 z#;tCbZrcUiUgp=DW&roB4XKrP0I&LEf?8H#N|CTj8a#mZ^@D!XiPc^7c}bp}K{N&6d0c8`li54iLPIa2kqUmGaqNCVV&u{sI$4_NJl`UI<;P(R0NDI^;f zE-mhG=}o-VJk=o;V*>q|Q#xs5D7Hj4mI}xQNMu_GXemQy0F??8pbkKqaqrp$4ZVmo zRcm~v?W<6@zC5O6F(*my(gV2c#HHFV`!!4oJxm9`PeGv}@NIt7M{`Wu+Y=16E7=9R zsPa+Lb-ekKm;z#(#T2LcwaV{shx1|hEjRWmARd+8tt#0s0I6mZpnPWE?uWJ8w zYFeGrmK~_yI3JXc*|>hQ)uk`x`W+>J=Ag-%W09hTHKtVqYuamd8Ywd$k04M z0}RE;uXPGY0@TQm45*qR1<_|BSDobKs!oN)PAMeqFU_;t&~rJ zvVgk7v|iGKX1{iJhIELs-DrN>E_DsHYOpS;3(TkLwP@otzpt2P&qvCKUCx`xF%!Bs zl|+$hoeJF}LdWB}Q|Pb(&dy|=6S`rcQ=w}Yx@zd&7CH}fPY9h2y2C<;8(sOR(3zlH zAas&HASbvc%*-i?rA{B-<^?=7myfYNn#3@*2~4?;VQk}A@H&RM0SkYvWQjtmO*D#3loli9m2NU>Xlx z{(A1^#`GnxH@vxjt(^w8MxEE@P_j4YD7+DT-bv|}eEZnyZm$L3uVea{{gguv=R2d> zsQh`{R9;Bc8e^1em)y~`H{Tn*c4d6&VQ*fg)R18v>wD<=hH=UJ^|kZVTxFpz`pIE$ zvC#Eq`W(}QZr$)Faf{HkJo{C<*&S_i=0B(&y&@%hZHdmYPbFPq-{FFh@l&P;<|06Ki~UsveCTm?_MSpt z?iQ-S<9o|5b6qEk(wTlrXHvID@pUFAdj~e)0WB2}<}~mGLpDG!GE@bqj-f0di-2Sd4jZV9wkJ@nC*4Ka;Evog zPbF(n>y*?`=iLQ-_sqkce%rW-wjTgA19Y|z(EZ6?(&9H^YIhe*uX6I#Hj5`!TQx^~EvSmcKBBU2t+W zLu+ucg6oU*8KV_YQXJLoT?nPe1Ns8;Mp^*{kyn%6GDe3{9K{tt_b_xDptFENYX8r2 zBb~QK@iZ(-4ISNx!?=B>J391ot{x9*JO}Q_*!4&(H)7+vY_dADgr|X4Ep)U^UvL!@&bzIMivOj3nW;PyaiPlHg~1a{ z`_|`scv9Nqr;N5VFEj7VjT{mEO;2YYEa4=t=SKGMz4bJvGd4tUsrXUMhhm5haIQ0+45cctLx4hsZCm&he zQ70w%Oq{G$aOe2&?3M8-<%6=rM0`kAIWwQGHPjN|lQfTdLZeJ-0RR91 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/autocad.png b/apps/server/data/resource-icons/autocad.png new file mode 100644 index 0000000000000000000000000000000000000000..1d5a9113af691427c4fb5e93b52093317f3c1c90 GIT binary patch literal 7605 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 U$-LPDuU)|Lqh>}0zqwrgCqX>|;Q#;t literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/autodeskrevit.png b/apps/server/data/resource-icons/autodeskrevit.png new file mode 100644 index 0000000000000000000000000000000000000000..d94a324a71ca6c6d335b774502176d8f7e6cd79a GIT binary patch literal 10432 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/blender.png b/apps/server/data/resource-icons/blender.png new file mode 100644 index 0000000000000000000000000000000000000000..132b9bc2fdcaef1b897bd70b80f632c541b041ee GIT binary patch literal 31415 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

*hSSyONMUkR zi27nu0Nl=fOCtm&WJpE}@s#-ZYZnjTqfV+~v-mdKdJg}7d#$;d_*6~A+QX|(;AWV> z%9ItIjxG_Ux9w-GgYYVT2bKr^07v>$+;aLtvvHV{2lSySEWjp}oXWLxBQ^VT=>oN{ zZP-FLnWrCBCgaD$;iSoig9u=_%lCyQEj*CaU3vHA@&W#sgcApvS@_Dv_vwXT|Mf17 z7e|cpj{`mY!pz-_W6kJ)lswo0o_xL1VVPy`6!1Op++%s1^ZkueTV+Ry=ydXn5hvNg zL!IYgzK)L(#V@VaopX5~`=;2+387xJ-7hk3ST`Q-JfPAC#)tNH1ykHACK?Lv?Hc|9 zlg2!aei`d9a0CA$rS$+69wO}L@|IH>v+}pG#=}rvZO&F8UK4?jowmp2Ua&kd|KyQX zI`ti|i>SqjShBn&GD6|lPa>l$xnmw9;aCrY+@s$P#)c)d zj8NDyx=ONNen*>-p`E*5jIUt1U24TLLLuB$Kw}riiTS*9GNW;i=H~`qA*Y_fYsoH` z1=&|SjV&~dwQ?)Rf$fe8&PW7>=fgDPEtQ5qt^m*&p9^?pdoA@_{u?_h5lA}}Z>A^2jfzc}kuo}( ze<7!)rmal72X%2brTDv#m}z;#w<}^s^I`sD(#TdF#GK;zR>te+COKl4vRHUObmyJ}yl$c;yd8y#uSc{Ms{x_T zTS%%taZQYOtaX~5&27P^5f=b)5F&3rpieletu(KImKl^Y# zTp&&8v=RXMPf*b1a~)rG2Wfg>WlRC?t^=0r7^6vM_o_~1op?h{jiE_+C9nxvJ zQNsI1tYVhYBChCZSsQorYjk4waahWDt)ge%Z@qzQV|)4MfG4X<<%_3|a;vr^+th*e zby$Odd?q~l=N}EzbdoQY;;J`snhkA)DHAy#`PU%x$^D7KUb6kCdYL!A-#OGu7fTY# z#87N2u5b3jyUhkvHH=1e)Id&?WQ^Nw^64Wi5(dxviV_Q44=xBCJSuFO&|e>9{{AKt z^RMoA+Z`VH-g$0AScCpb6}e@Gl2DUrysD1t$sNFd6|9G)Yli1CXQ2G1lh^G zqm@vKvMya&4{F~wyqIDcU~x#-TW~NuO%n$aKO)K6d^P+UdY%eYl75iw4oF^*VBAG|Oy(EH z`xjP9eIzxQPsR=gz7hj|a_EV3$6fH62Ma{F6?7ZCKq|6dhKfR0sJUBHne>J-P)yCb|fITdW_WzHx1T5 zxkj4{zfl)rWq@_Dzx));X%JYdj?#r4J-=cZk$`#{K8&vjmEU|fW?z7x%^@S^?6?Mj zEuFpO4(szh9HVK#(R787e8)bf`gm2Wua<{{OFyr7sx8QHkFyYoO3kMpF@CwjED2~q ziZnZ0shTUgmf`0GjEb_UIOzy0UP3=?P8;G3++Sc4>bY%Il!S z)ljS32-T!Jvs84()z?gS>~z-0m}?|WaQ|KQLvr^?5%}u2*YeCKEHj$YqNB@zgwhT$ zm9A+QMh=cLBo-l8229+zql4^fNP2uS8}`6L3in6&8!UAj2;=e7Dvwmuti%%BEq)Sp zb{s!mj%KZU*oiY1$Jho4pV8$v5?X@!zOu28<|v4C=&x2$6<*H;X54_~XTf$**PR zz6dH1`C;#uX}TY;=SJp;VQ)?l0bc#Oo*#yU6jw)VYj*D?WdkJ+|ElR-?mQK9j-P^H z*aaF0Vf2Bnf#jRKVb^Qetig7id8(tF$<vL&#W7@cwP zSwWuyh1B?Eysn}WpA;U5&g9qMNAalXA7R^ixHgoT(mzrc6@ z>DAf6Sf4}H%d>x^fWV7N@}Px~Gk0?WR;!uN3-;EwRm#0>9ldxKBaC>!Os7U+z7}`t zXcbH}gIhaEUHeF{b4~)~z4+7Ch>DjyA5i#sB*OhrU!v{Hpt^J;71Mj99=Y6Wv6=$Q zvmOsUl$!{)0@lP=Sq*KKF!q~NlgBl>r)A3m&JTgcYzj^MRqnuw!K~-e${-Qa3jUS1 zpXHveRz*ky_N7t={>=-x6|@gY-blk)AIf>SEB#$!f{N^_+#ZTZ@e~+;hdZy;4M(J0 zzEAlP6<)DQ_5$pwiRwt@^oYjtpQuv1P_t&-;TZby38S1(j}3wJKvh#E!dREdPz~EH zFd}fMtq<)TxSkl|8Wt~u0tF0<1Vl{KmX}#CQw~$N`$BpLXUX5HpddpW>j zn@sxvcNJ4!s2b|}CZ6N;gLQ6m`bSSToQ&PL;x2v?gQ!Fh^AUcsPrQ?`$0M1Lj0E@h zE1J7B9DT>S*DoNo=wqw{#&A#y!sqZTrM6j)yu08!=itkVj6Z<+vGv#?-KL!8?N+w@ z7?^v=<#UBn%ya%i%=v%QF->nBwk1r6bF*J%ZNu_%@8;`$I!U;&I#<8{m~k)YuigEh zTt{R|+?m787Es@kvOs1lq}S=$O}>jGYWibELqBhA>)NyB$1p{Sm%YS=i|;wDj}7qO z?(cE^g`X5ZT4&_{${D|N^ODCTw1;th-}GRn0swfT{9i^u=}#;aTt~b*ddvsJX$m+H z+Q}8BK`O~D5i&gEi#fGVh`bDq+<`{^1rEIZ@Fmzo9J%=PdED=dSuLa9Sa;*wE!!_~ zMd>tno9{oYk#Wo0Fa}$1Vz1P^GFq>`_NLzy%p;L$zBH6R(xxPXEsD}ANU&1PASfqQ z7*HDmrpSo{SHx?AXTk^%Zy0ymqROE*x@FqVC1>OKXhZghzo6#Oo^oqjCt>6+Xe}Wa zA}fKdj;Z*j{5vMCqS$-oRsfV_MW*#${feU3lR>@_#Ns+!>jWh_n{8djDUYp2dasQ2 zrl7;Zm%LFJRmM-3Fc>#QhbfaSvP~VApIpD_8HxOcyL-9tqK?#q)WCFs^l!oZoJzo| zCGG?~;|ElT8W3=RU;oMat8UXq)$pH@&t8sVW62wQ)*omfCNEO0y8iJ+dhL;q+XZgT zjFX_1n&BSJ*%=joXBk~A-T}Tz58#<;3ukDRKQFj5X5=0wOyMQcWW)OcUtlch|M{cT zEtU!0UX>RST%IcaHW{p(@<}A&qNcFHW4DBW zr`^|~aTyScOPaL8Sb`hx%r#vJOyWQ#z(g0UOyc%RcJTg=(hFQXqEZYK+BgVzv}WYmEq?=tou9ttB9%++RVokkTx#b-d#I@ zfPZ@cXd!Xv$C(6)Duwl#ZDFSCv(Tr@BRS)ZSnkjW^fhcdslp&h$iHU40&D@`9-v**D&}`mV_vbSHadJQnUs8)GL_ z6S4r9MYbzx;BX5Q)jv3cy6|Lh9**+UlXa1q)6QbL^Km0jjR-qM_ZY8`Z(hi$d<%Gp zY;Jk?@`9ZGj=>^lq{zc(v+ZHY$}r{LCGy~YKApg*DW`C*KYzw?XowWhhNxTxTSIZ! zpKDpJ>9`Y=0b!|F4%0mAv*dpKQ^kzBGk?|zg^O1f<6H4bIhh_(ME@N{8kI_U>ij8U zeH>6V;3eWwG@lYopW+W5!Pq&atZj6Ts25!9IZu~k*TYYkn{T=KF!a~e2OaCnYReF49lYWNlcrH7T*q$-@Na%dDJ%U&WU$7|XaZ~FyEk+v_I2{IsjABy(x$(to*4? zIYMqKyxiz?Yo4YY+5FVJX@iW(lDpKi^?9N`#_IJ~`%Pgp)|B(pb&&#OW2Bkdh70$dYyeE20dA{R3M)u8D^rzY3} z2FgBeO7Jcl=qoG4Dq?&ZXzrpvS8-G8#IS>6t>0vPx%^OuU6$ZzX`J&Gdsx0{7VAN_ z><;~?g*GcXE`xzrq`H+LgrUietJ;S#SG(D8i}YKI&?*nckHSc0b=0A24LusA^GK9} zn9*LclaZRU`3bmSgPZ#7`@`8UX#DKAk^M5|M$|OCLi#fBfT^`9XD>H|cn~8y=DPhp z2Hu^z_JQ~mwkwt_#m*fHXwuE%G85=B_G8TL1(N6;idbalg*ao+4$nPjjcW8gQ z7TyblJI~F~+VQboeTme1G`1y7gl$*jE!|>7ANJvkyU8`K6xF}tH|;h}<&Nq0hKl4z zSlS;Q9KGV$2FyLB_cJ0mO5$<{X__4Nw>lj#OfZMpRaFMJ(6AAw7G>2B-FWZ$vh7sI zyIyXJcW21--rAEEbEj&=w!9lR*$QxO$jKR6V&bI`apbhh+=X`xWUv)oJg!);@_s>aGoD#>P3q;%P75wrzWOcR0?{h8c+CQ zQDUgVDcb!#>T@+W@7nrN8{f?v=;Fu@j~Zg>uT#`2{OF{6+eP7*mtkH(a zENfv>a8l)EGeu!d@dCDE9KB7Hd5ET5vigX6$#1p8zVgjjjmA!e81usLgfppx45_p& z%|A-N=6l-IYcZ@bb!bKR43X{4Ghp(^a=}!rO?q7DQ%$}0VtZ#4E<;g!D27^ZkEGLg z_?5c%1t=WJ3@(+IFY94}-7{~Ug|DY#)E3_`o=V^K5%Q(zzG*c(h!6!sVA|T|N#dIV zFK>p_@z}SaOA5maU-pY1$hs$&#zi+-ylPTRR^wqAj=3^()%n`}uYljT;ZI`gaTin; zyv}io3IqeFuIab%Z$1Pg$o(f1APP|jQFnOZL6`HSlyI}fbu|Piy3;q2YqF3SAdk)D zsC43RYRtGXp{!K!^*xhR2L06MdQ|w8)Aqq!H%cNET{bIOxp<}2KR%TXkqm5dN$B?U zuaz9?*s#}lWHe_NxHo08j$W3&qaQuGOn`7z5Js`aS143w@&r|qYrWPeW_&GXQu^{I z&l4JfsEJx(=@(ABfB&9(JEx)E2`xNPpDAK9<77CSbWTVac;iVM*Fvmkw%}0fbUMG< zo-b8C4o8Lqoq!2VoyWqNFP!9bF1Pa*^G&m|KlGfz!=ZcOYk8}saSC+=PU#liELJCw z+MMT+`_Ss33Gi97FZCOlN|qVO;aQ-TbEu8cYSIu{H3x}7^r0ZQ*uj)shS#nLaapoq z|4`(Bm0w7jWOd7;-t1n5SWumFpN59C;!d@K2&^5Nz37LQq0X7TWZ#ApLe^^{ zS2@l=rF!iHULqo^syRP{<$S_Mr~9(W=q$suM^UT@$PM8~mb~ACy_?K%x0Xc5Sz|jp z)~Nb9lN@!DJCu3x(VnN&ua0H`@1h80uiTUU(dB4l4n}*l%=u)#(Ozwg z0lo7jERCo?6v(W(eaH^q$6}3Y8Ay2(@B1eGitn($M*Jnki0@0Qt1t*Hh-$;SPkT1^ z#L{@7kq@9`!qsK;>K7v)e(tF^ZtIuXe~`Ga!yri<$r{C|mDrJKPwJ2S z?Dc>H00Np$Nu{BQrCf`2n8ANe0qYy)2etx6PylyZ%0i=Ft9>o0m!Emam3}JnMU=|J zCi{+#4YX|m;!=R-^8_2w^&V2-c0iJ0eVJS8Cu@{j<2Ltk*W}!L z3$Zn-fBAycXuymLCHYuI7$oXgva{@t{lB5K&hJhl3INXESN#*f4h~1dPX1vEtI(Ie=ii2~rSw0ZHUo-M_DALm`Ok=Gmb~#0oXW z*hR0}$`=Lo(Y2C`10T(sb8d%Xyfv~N3c)YGdnzE0@0SIU{ru0^)#_ut1 z15LgS!)C1x^#Zot-{hjb|3&oY$pf6R-Rp-1GcQ!hTKmZ7JRlI6932(pH^P+{_kjWU zeJlVK+(@p%&^F|-^ABXiXFMhHx%^IO)+fk{!f5x{Ehio_lN^Bs$T&gYh%d4{7GK6G zz;zb2PWeUEUn9ROQI%q~irAw@n6I$Q#C^oT3!ptNth7!K)rQ56eo=C(M{$zm{Q`^# z?o?&#rYh{P87LIq!jq8R0|3#a0lXePPv$p~1>UROJ5P zsC%GRO#_7s1b~>l-U!QbgnVc8SoK+bT8sV#?+?9gNWl-)?_d&} zg=3N$Vyh!xC)GnHYrnly^Lfrd^@a{$QzPm!pPqF5c)U}^>;yXl1^^gEBPaO^%O?fj zv0Q8{{xh+hQKKLbjB0tgy9bx`gWtVd`&W({usnSn=p%u7PDZ|`)qzoulc4MXr0tu3X9;p#{tX{ZK(Ln2(9}bU^C~hW+ptDqy%|y?JrA*W9-3K zIosjE=BKwkpYlJqlL4$>(>{89(qR09^8BV=dqx$n5?A3T+p~y>tHAHz*5KRGmA&c8 zV(#ZaOm0py?xw5F&C?IQPozZ`wO<1I{qs-e;TppM2i|&@Xf3Pw?p09~QywN2VVP&T zu(q~@vrxTPdsUs8Y!-0CaX|v|_K1$KyadN}Fv_Bjt-p8tC2*3*_-(EA$hKgf+4hTRsBPeN>mn(CI2NGA^zlMAJwc+xf*Zc??c+qEjFr6K8d=UbtTL60 zDBp#VMO&StU9_e& ze{XRBhpu|oZ_=>G#Z9M8)Ci|Yh{ z3LOuH`N@bfPnomnjX-Nr27jV8tbH77Cg{C}XD-tWGC22L9oh{?VzGVJT%KJXps>n~ zo&JV}ya2eOJ>M7fu}+QAxl4E=tY2Z(LC(V0IQQ99>GK37J&&m z(ZIEBZ`yP0RQT~3{WfOj=Mm0lvkOwt&E%f(MBURxx`c+)=_5D}P5Oh#H5MQl_otfh zH0{LwbS}+3q+0Kw-(Hm`J;PKKw{5~h-ZZXsuctPU>)=XWWX7H)|K2<_*uM-C?<)@g zn1t{+rjOf6h31k@u^h4r1dscPvHaFIA^v67bCDTVGJeBPgi>7R_D6em*N&^H+M2Fm zGF$#s;Fowh9Uz*B@%+E6NffjlM4PvG2(yryQev6tlVb1%!TVOZ#Ow4Hc6fH5W9Nx= zWPUnLZ_z0M0F)+7*(j-G;@(C!^5mwI%0v7G)Rc+I-WK3l6`Pb)SM|s0cH5u|#T~CT zCzaM@>@ZNfa*qYDPA`shF)XY$JwT}}R}%GFRN?*&1sWzPy3=^s7~rjU2p#&UPZ;~C zYS7(1-Z=qf!U&pi-8e0XG5Iod8H9Oy9%MYc^zO|Xm}9r*S5SabEQlC?)jpa+>E~Bu zIC!hBV#bOzw%ijD!W5xrSea?;1z+1LpCJPPj$Vi)&k|n0TpW1y1+5kHq0Q@E?rP@o zJF-|n8jg1&3?8wZv{e~%V+LnHgfXzh#O)-UK8B@5`CYY z6ytA3!J5^VCVu9l3^6wpqU{GiCfz+T7d>x3Op*KpS((8kp7yHbK602V4WK(dUUTd; zBDlHpcgxMsl+@@sGPI*b;I50{g=f#Dn5pmls^WS(2`pT242^kpeDddsDQ3Ud563D5 zq^JiLce{7}5)=qAWOX7)Co$+!UYF=F=pLiS`XqODBCU$JnWU%=;k)p^AWpnI(ThLG zyM9TN2cOy6Tg4L%1om0ZL0vly=8)NxpC~wSIOmC?x^WKANH_WF1>i8$ z{*NGJSzXfJ^##?Y{Qe-i!(CpU2j+8%0{{t>Pz`-^nWpVq5D55=z`az*jo{4P@Hsn! zrDpiq5DR>Q-R!WaQ+DHVMx;;Gd}nViF`CqeUcOxDCo@|eZW=+rfio|DoPX{0^@oLCoD?>z@qMN&w~Zk{q^v ze)|%jn23)k3ADP58ViM?;2$!34odo8a7F0PP0io7E+{XGr*KE|?_oldmW_UV(WyNC zi;G=HEw+4sJh^pj?|jKqvGOCz+RX41r87){aogKmW0(zwq2>1Smb zfsOHy>!2jhhfaLY#t(N+kv+sP8H$qMnDw^2?0Ij(CHR~QVp;1YLAG;D5OT`i@Rm$; zO^`4S)4OP02+MlT%CL}Z9&sIzWo&D7Tk>}l*7vA!0RN^lNEcGRJitdrdpzT=11+-A zq5CY0d52$HqMS?Ryzg!TTCqn%OBr~EsCT)EB*%XW98Y;Pyh=XiMKxW5v(d+0Bcd%5yeAs* z4J8U_bL3yhs|nZnBR3)A&Rv>Cs4?5WL;WR;qjG&~4L10Z6&JhTJ>jBSaeiGx<0yw% zr*hxHvN|E@=Z8yYu`T#!x88c&!oGG^LK$Z$G3~Uurz{u#EGzWMo!IZ5@RcfK+Qmz>m0MitE635_wCmo;|13o`JkF zCcL~-EGaMHdVJlK9}7Wg7X7>1b}|45s-2{(-XH^lm6fs3;oabRrho*HW$b96lAg-M ze=}Vqj?)%XJ#CvWpbd?rjJ)HUc=;ueM-rurb&e&AwvyGp-#6Q7Eg3&~)V~q*!qW2P zkP+$U#-+%=KR2z94xbY(GQb=-VFtlgRYpRhZNXllntxKexy4c8{M1FZ@=nU(V`tZh z%uQL?J&UT@Nk?CqJpWFeSPMm};4bF&04&hHU|Ry_x%OcyAbtiai;~;EPHK+2cOYZ} zftqZDR&1Y6{Mc=U+^PQh`*YWi(8BP^$(0_C1(?SYP93zKy9i~?FX~LL$IQK74oOlW6JzE;kb#G*BEepg|Oof*9-Rir)dqpXNSKX;Bi<|Cqp4R2t^=tCI26Vo*S+t# zGe>J8@w z^|bFnAhh5|S_tDw@Yi0*#1Z(5$w%*jKLm17g8D-f@(CIQfrvu%wQt-HnZ{k~Jiqr*`Q6+{ z0(HkL6|36Wp$3y>rf(j?3 zl?v?t3~ZsB8UuA|=6>?)=Zf?ydIwGztG(!|Ob1}?BVlca;jM70C_TSo zx`nMn>B9y`^{R4H{}8<1-2c#G!om-oXrfn$A72l$=|A<8`MWVAwfQ$MdjP!_)YQgD zOaU$|etqypilssRM^KmZwDCb~p<2awP}j+^T(M~;s{7UifB73IzOjU%=F(E7tgdJ= zU^m{~$#9dgEyunPX)7s+#l=rEacoG49xJ1_a~<9`JN-x_^6XE1+X^0^AY7j1lU2_X zG!fJ#qI)a47W+ErCYWNhzC`bzTe;@(ej^R-RTY-jhIKTraoCqxG75Q!X2Okk^&4`; zpJ!&E>aZ=lYR2#rFBcjb7(VU<=~%nZsS{D^P!wLUvHGVWF5Zm=9X1$l1{|7v*>T|B;g(l-WL z-f-V*9*sJo@Q`_z;9>BjIHVwZTRDo}rfL{!E;^Xt#$fk$QRMuu~ zjoeg!B>W$|GE?nE1s=0EICRm3dWFt0={z5w(IZ#&JZ~dKG>@0M*j*YBtPWo^Vdy%1 zynT|$9-6`Wp2ITfO<$>WU6#+V_V!o6f<+N`zLw|Lrz}n|W1Hd@yyk0hZHU=UeA~m) zt!y_B8QY0IZ_9vZGpFi!rn@@L&I{3l9;jzN`lpQz%~JT4xlJg*hI&XZp06=g0V8Y{ zH6ADtj$TI+e{oLMy7WT-<< zdlR4Ksz1C~-Q%1Ke zm8EoP*5V%7n<=eMb(z5S5|;MbH9#~2FJNC#8~1q4*W(`Mbw4`$rJ>n}cuz>sg3Q}F z$F?*&8Ps(n$u(kC$=*#yn-zp!)B+o7T#4=#BpOV#%YcK{O&K4I!Fn#=idK9Vu+=1? z1BN5=3h&;}^R>8#5}U~)ajg;{K~W*g7v9rzt$QQ}`kSv+P@SaQj4%oB+Zi z0rbC@%;V!`C1dTu?i1}r-OpMVO$;5T2>}e(qopdceE#^WJzjMl2y9)b;^of?)Pg{S zz!95=KdF&LI7e%7SgUA>&Nn&YQ+3v)CgI+(@;4))mLBSh=?rR?2P8UL$d#G)q7jr+ zimTOVnx&-e9FlJs<+4eI7OxmFk0ie4Qrx)YNs8>$4_{drgKc zb_#`AoScy4FZj02c^*rcdM9b*&3r?gnMim01^U)DZn=LRXxpr8Wxi=9lPCS0q7YFx zZ0J7L>+4!@Lr4lBeJG#f+vQ|s-rF(4w>0dTccQvEt7`pk)PL|JPmL}sH}GFA>l38B zq)#BOARk1>M>nl0(t~6W|2x4DJWDp~@J(&8z^g(PrKliTK#? z@*=)I;*r(RFuLeOBe_TT=!F+bDO8C)tngTTVtZ`g&~haV#$lX;0}(*|XpecMpUCWK zFGm@2w$2Srf>$Wi5wCHAQHbo$LRs*tYj|@8_l(~qo<$Qb$!YL6*PBiX?zfUN(d@L^ z5L%=_#C1f4*RAqDi1g>0tb;f2Yc+U&Xrf*5H<_gVReYJYL--&$n^{aoBKnCAJ$(gy zQ$!nFK8A2zX-ltMJ`A!{jehj|3c^^Ocvxfza_WJ00wwe8B+pS_)g6Aui*e2Lo_9qt zVjv+cNf`FS%Q9loPbOwMlU|?Hf@n$05Yx9%(KOX^J)!<@M!ix=bNkJ1-k;>@2VpjH zd7ECBpwl@S_R4@g$~f%3%9Ew)w4c+7d(v#6d1X<663ON0MfKb0kXenOh&zo>vxNoL zUjgO(@HO%Did6jyvMT<2r7M1Tb!+l?lzBnm13X-YNqM*qH6JD-_h~eiS*wT`7{xc2 znZO9?zeC^g^Kj8>+IX+^4*~Xz#(1|k2VY;2+-7v)Lyn~C@@fV`*H7N~{7`&l=%qam zcr6sFbOfxd@2$)3>DD~|m2+gm$93W4kfdI-&OMir1>IN>DN&n6K>7^DqjxQppCw$d zox}1K5A2}kNOL`OX2T{b<6+weqnHVtS>95IF#auj%4w$p+I+9aRt7&HS2NZd7j}zJ zfJj~I0*c(HaMlAb^7C z0@{hn7wK&8Y&-12JY;T2Y|D^)y_0LpUs(D5fC##j=C)eT8~y;(x!(SPy-P=AW{AFO znh}mtsJdiAO1TIdWAh$H@y(l-ABLv0(~@DZ4FxG%=tFhx`ZUA|*kf)*XMjQCa-V7( z1j!o%6p<6gFaENF)+S!HRqj>$L6@j>e(}LBK`|=UT5*+qawOs>Pi>S>B=&xXW9G?& zJ&~wG&X3^YB>Bf8bkeO6#$WVMNPe%ZK(RdNtMBb_qKs4sEc6McLpiYHdw0E=7|JCp z%OJMbG}t>W&kb3+N+q{@H*g>58>Q8iJ(@JA3PCo~oxN~>FDJ8kI%Nh`7ga?NR(n## zl0{c-L^q>*1`M4wf6BgR$Y>7U#JH)kZbyDY-ng=`zHUVA+gsf{KU|nu=Ec9Ai#{2;FP=XEDHn3)q7!MD0U5s}7w_vBbx|P-( zG%*svY!uPh4VPa0pg+x2tzY?(X4LfaI3$Hqg6aKzjBWN7V9s5UHMC~&?eFz}9bF22 z9y&nE*zI<0%e~Zk|Jg<>Wend% zVMk#rof=+?z0@kO)4D{aUBmiLp5_?;&G#Jd#66#kve1Jx{=sSO6;JquHRd9Lt;$iWeatNjh#Fhr7*Ae9A1wOO^qTUrC+t(nu+!!xXoD7a+18fadisc!-r3WFIL)W_Us}Y#gJq?NtB9=Fqzc)8maWuc(W$|gt z8&sAKG}EZI;oe>+|1dxMThRN1gfU^gX}c)!J(7zSXD`utbh^HRuC%M~X3N7N)tl5F zam+xD*jyv9LSMQTK-k3qLw=#NO}7wxctwfiUCZn zV~mDLam)>f7B@Sz#wL7dFw?d!5c1F6x*=)h20H7OwJ1{qT-a_I?voHrjM?7$WpSpX z?2C7}+NdTiWJ!dA(th4cr&{+hXp%Txt2Jrp6@J1k;*=VkuiY4fiw6coq;Pjh)}?G$ z5*YN1NBO9(jtxDqx0%`@Hu$;oNt~&2sVh8@J-+3aax>zza=z6IB05KQE?LA7zJBxU z569~SwFhHsfr7Ktj==}0cC})RYIVFYrjlprw13$NgvJ|PQEgApC1jmE zMb3ZqWvfgAB3i!)81~vvB#oEwHi*wxqank|r!z#PZm1-8x6+61x zo8u21kChAD2ijj{T72TAReztLyywC&PCJtvKQ%5AMV#$~PL#jQ+1+|qE9+cPNaOuU z5OnYMP*nEq15~CPjqsJ_5Bkr8qArXfr#T496Z-H;gT@8Av-N(TXl`FG#p#A?U!;XN z3Q&}HM+A~tJhCF^FiQvP|%lS>}EHCPVpu zPTlCj5{+FqnwDxDt8jH#6#cH+mQT;W8*Eaj@M;x0kvMPi$0|@*_ZI4O?9KyA_A>3+ z5=Hq-+X`caH`qd56y!O{p+<^5f`^&2t+BnUhpa*^COvEUkqGO|A=Ly3G9(&Uj|I1W zOu=%?69!8+T72uH+i>zPc`H)0Y!NNd&DA&y^?Roie)6~xVjHa^AFZ1+9)h%)>H8^;y%l|2xQM6KMOPqf}RQKp{pGIv&>&RJ5!kH#bCZFZ2Ge^N+khmb6yIVli z(kQln@m>7g(u{z`Z-!_1p$bpNe=!5>HPx_#tJY=BAC%R-S1e;Il}^=by}OG#4sbx4 zsm_$a@HM9u;d5hKMoG8lTaqi1jgTW8MYMdmH2i9|yD$pgG8wN<`n=laK2RP-#7owkUplf~V}1hriYl!d<$OK zpcWJd4Xm|-HF}zDI!J93d5s$FE-u0jzODNV(`b}-C{d)IOPiTYEkee zo*tY$Sz|q2)y!1cr_0ED4WIt}ewJ4Th!~W{coI`&_Vv>6D&-GK2>*K@65c1r@mg&7S`C<3YYA@|1*?`f8%-PWf!@L9VA2wRDTZLm%(Yd>wg!9Ab#aNqM;SlSOom* z>i*3O`ApGVtr2Y%gMJyk?TfDy5JIW(z_tpk!@!l75?r>NjZ`;7Ro#_Np@ zR1|XWHVYfz!NL(O+@R?|ExnMfCpYXIVOVKL{-sL)M3F5jN!8~ z^*C20$8n$Xb$}~EC&As#JQk4yCyRjfx2cM#-X-`thnK-uY%qsm7--JXKVaWXb+3v? zj(PGGO#MBY_ukgu5T^HRby z;b27Gi2@iX9VOsMUj%kWaS!ZQvCvmHp<0l~GNj7#2iP-l(7#3_H&_RkxQor5de?$Z z_>*X8k_WZ`;-tF*UPdVT)cd?R_|oS1=Ny<$cbX3c3F&t|Ky*ab|7GZ|ddYj_WpmDZ zzGY&2Qi>{XBN`BlujFaJ#5(wVcha|=CDaWD9L^kpV;*jyM)t4mwq0g5e43ZDh85Xm zZX+Wh5FQHjfo|AbQK^QkipXWT;SoePt8eI>9t^}G7u>jflAG&8EQIx3()Wb{Gx#Of zA`USGI9ZF45GBz-r2&T7;;O$LM|*MA|PL7j^PRGA)z|e0_V0 z%Fy#?o=opNW(&`j?|d1&2dHb)RZZZwxJ*Kc(8B_9n65lLGZaY8-1Y>o~o7E*}hJ zpN%aPo+fmeqOO6N&sJIr_cQI5_2*djMA#fkBYGDjIzY??*o_Wx*^;Py8S+@G~ioN=PB4l(BV> z3L7=N`%R+|8lmu}TRF+33MITbBR_u3vCr^)kTyi?oeSWReF=r|P#d`+zsbVC_r|sc zW?{y-miN288vFX1*nQR%`oNYn%r%!#VvYGK1}r4+Gzl|2`92r;EL-X4}TVvp{axvir6oL+^7kOW}2eRK~GNIE@&jn@UdKiE}U zpZGDuRT*a#aUU*>xlRj7G$YUNUt!`Wn2bd<-eoz1EC0==RY2q2P%5P;`}#a*&(fJ4 zdnF4fD%Hg^5v3Mr*4pB?Q5}i2-z&3b1M6B>?8);O<8?(df4NOtKJ3-XwLDii!b6^u zbO7)LNpP}tI6BVRZOZ^j;hHteB$i%yy@ku>_9$|;v=_Q%H+%Kl*gXcJV9KWMcrdc-Q8?#47_r25jiC8;JrB{kOOVit; z**=O1P*_dLru#9kK-suv4LK;chL`WHj4fVgs%uQvgIJtp+1SNAE^9#DgQQ74`I&C! zxFV{OrEt7&cj5q=3`18Y3o*~%j+0jka-bAQE>B@H_xGnvPhFJNAhN$z?3WKV9AvX5 zUzZDdDdx}Qj4u}V!u!I12bFVLy3nOvlo<&HE#bOnX0GwCHz4cXH0__g1H0Fgng526 z*~;Kq&slMZZ1XOM@(_0easRg<#)Hz9r7$6NyTG`Sb5fAvDQ14Wl8=c2>I|+~ZQW=d z8T3l{bW=i52k6MSr4w2a`E-c2<6~?a*=t`_T|Klk)aYAzpOL-I2BFRkdH8Un5q6A) zoWm_STNrSL-w$5Q14acuQ6M`EY#vGeJU{c?ed!%jg7#o zs;NE1Rpl5XeCc+z!w-mj99aKZNZta1z2142BpPSUxOlVwJ%9AsgQYe(N?K;3 zb7y-!>L#lBw5R?rN7Pec5ArV05bmQJl0}~m?5%ZRPmJAFPX&u>uKkxLw@Fv#Gi$Y~ zDmTri+TXfDEcR_sSS(5+qu0G~s?v#v>HVwkY2jFtS=PFX{hrLn``B+n8PUD>EU(u2 zCbC10Dno=^v7=9%Ar?v)Ku3Yt`uNHp`v)5?YVPsr!a@{9D*dLm5Jd@|fu1Epo)FST z+dmjY&JXyaypsARICvRTRj`N0eRm5Sb*XAV?TFvgH492|M^Q?aL^x{DapT+1J>%s- z$CJKi<(pSGxCL%31!NUDn|{-+bf;O+=WduO9AAF+%6RDO+9QSn^L3Y4uyp!+9Scp4 zE|UQFl=nTp*uS#F4d-~AS>UJouM60$k}+%K4lH2KD8yTEp(Y=~guO;M5&xjS<S}RBqou?aX}7)XS>1f6Zm+91Tl zq8H%@JY-_#O9gPYt(^V3*PmhD^qHl?!ZTqy%vur`iQQ`($DemPFSmzo{(gJrOZZx` z93IWZp>eGss*q+x0^FweI~>?|+b^yhuJJ&cN2b<-bgsyR|4yfQC3TQ5^BT$fmpDvJ z_dpm&H+=t@Ano*zw_U~PE35JlZxQAdwLtU0qeb;Ww>{JVSK=7%{a5*S%QR>`jrbYXI6ju*9@kJ*QdM&EA!#)!{j$H5j^B@EH6qKqGKw zk_Wp8*GFt>?|AVdLoe&9Wg3xJBgfsGk3q#!~nB!aeWU zwINP=2(JVQ`lmV|yG;$!FT7>S?Eh@PSGYK4Eqh;ON(G7tRgP6(jlq+@9X-Dc9vs&- ze{CpsgS05U1xucy5{D{?Bh>g)2+sC1(0=Y(Wp1gmLmSDtN3f0Hv9C#yFgQ)nnwJHw!C9 z$t8JY3(&8>`JijBJ|$|s(4DOV@nnZwca`p!N#892CClsjMR)859yk`9-S1J(&~A$l zXl;rp64r)RVI*-1w4&jQK#)rUum=4Ru8ywzv8mGUd8%?aeJT71^_lzyuMtz`l5Nq^RK~6eep?Ixvgu2q`UKVT1Z3-&!V{a`h6{+fw>9ODa*eOk z)pevUDf4}H*F7<6O&W*o&afQk3K3~@cDd*i%_~iOMSRDvU>sh~dYfxxyG9KKH?a@QzRS48^k-rYo%vw$)7>$>tg0Y-xW`MGta=~Pw2`@_7B_U?6D_d&l`Y)>D|d~?1Q{#Oklz~$3_>QV4i%9(GoaovDB4EQc{ z3KMEoJ+EZFq1+dw_4p#)-hc>}-#8S$b6pg|Elio@@T>9*2;v}Q4fd{uDvPzqlmJals`6J-xe9J2IRFn8!`8On?ThA~KOGw_ z8P|ocU0rzT>a3+%aFtHc=yAQ{^mB#m7`m35Lzo`kAI{T?H&^fovWDusdVnV4$3)c zp-Q*Z?YeQ5nwl8L1W=i+)h`+ybLU9I6 z$|ED*7gj@dwU6dasCa+hLY)nm>qB8u!iL&tN_*CV6_|lb|Iq1Ni-k|muVaCmnc2#B zR|!8IQ4vr*(wX^u_pjTiS8BIn`NbjJ0+h+EcT7%?`aFPXZ<)-?N?WpN1FvhW_0ODa zXUGYjgaA$h@=9TlVr`viRRTRoLoNI1|8%r-$3qx zGR9Gle}lplRxzN!mc6Xe|2#N>y135Y_BDE&Tm$aBiopXqwYDU?zdW{COC7zDJ(t(* zmY)Zt z{gp-8vLm`hFW=lOq5f86w;Sg$>s0miY}}0ZI2w^e4&AX6w%c&Y#*jwL!&*&ToqNl|-p$71yMw`Wq1EuW8otGQ6)a)3Usn zvDD&7c!!a#U(eZ1B=7o=`p)6kZ&%x2ejoRHmWvT2D7aYUw*z0jp3hF z+Po)kA>9|8hS~Z9UFEZB4mdvh((Y$1h-)c@z81TF)E*zCK2Am=_}3_3(@Nm%?)CE zKxbP!?f}bEN%nF0*`pQNAF=N4ZkGEG-(thUh$s=?|3sITlVKri7K$Udz#bK%1 zZy3IXm&oTOza^62#Ldch3nFPqpII)xU=sE`p~+%OMb`Vo&x+GkwVE%!*)Q*Zwx}I- z^DoqliS(?#U_pxm$ZuAs_jz;11@&mA=*9yg_%*l4U5nuSMzu3^Pc3dJg1dF z7yMzV1Fgr@5hp-Q-ydwTn8q;4zTX7|N5FQydRh{EG!yi^KQGj4_eRLKcVA`rc@du? zq^{vZVT7D}&-guNK4(W-=EmjWp92x&8E%rufe6#OSJ{->h7JEnzVSm;90-FbZ5iXi z9xjtnM}d9A<{bN6iNY7W4_lP*#9vrtpdE0-%HLi9oQQu=I7kG>+4X1v#2FAsNGwv4mtoUN+FL=Ip|E*s^bQ`~ zbaNh;>;e}20WYdBcU^i?B+sYEy%7pk7Ajt=#I;u;w`Fc!`CTbFf;d9|0m*6VA+80z zUc&}4{$0o6sOR}6V}S)~(-!fCFg_ZbPuJTL6(3)O zJo{rmhc5|a<5Zskhj3{6hUJG0#8s-?cp2J@TJ&$LR4$>s-D@oxp9p88dW`TbraK-* zQv@#ApTpqP1GbB$|M*Gek{mC?+_x)vJt{y7_MJ{*XHSH(A;b z{@m|CHEMe!?y$c!ug>B3h&DX=yKeN<2w0Sgg_OB^MD4D-Ozl^Lf4)(jqb6onHt-mA zPYw7*jh-Gu`r3uZ7oPa$@~1bo!Cd?t9>@@t>ejQ)<7M-9b7pVrOzIrB)2C14_ylc{ zm$`pFfiCcikVn*@%5M`H<$D{J(^XKavwZnzrfU)z&jtD}WEZO>*L6wxQRcb8yKUkl z-q~%Sz^B4eF3yfroH>^Rv|Pk#o}6c|^@tiKnkHeY&S_VAfCo*&>o%QNE$?B#-O0NI zUyv<&FB#Lu6H`jx@~453lE2hp!OQS#^Qu=o`QrCUf?0Uh!|Xb6?87Xn$rHy+hgd`n zL<|P{M7VdklAkbmMKV~25w-@*_-C@%NMd=AM{nz#rSWI;}T zry5Q^hwnZFFN(SA(+4cPkk$2FI9lUnuqc`uE!$?ZTDCcIN0@B|Gf`n$V|z>I2A<=T7ONyB5PP>jVcP;k9^CEX>SF2hXd;HM*0n)t5oP(g77 z@T2nOiVUqLB8R8yPH#lSdG@j}g)6oj0%-$qUgEofL&8_;$q`ySS6$|js@$HWEwsGK zR?4Y2qHxMY*($nzDro>dLxtc8H%)3Bpu=I@^TmkW)*?+P?e$Uze_-tt?zViq?VV~7 zWstlOanW@U-B{(Frab|MX-8BMm;(OO=AT59H)LlE700FqLxOV^MpJyal?W_nvLQEmIlMPnI@YJ|$TswU78yt!dhDFd?X6R1kUV$wbi6#+U&9UxS6 zQN3NFKsz)nW_2BzQk%K5$q)NB&mu0m$?&wT{}Annde|ELH-KVzvSb&t!odhmF_P%( z^6a+Pv@`2n`Wh~F{2`*RO}Km#0W}Ds4956U)tq?4_`O@wO6^5T9k@Vfe_()Y&=mf`pwTNL%O{o#54QejKyT~T9dDJsPMevvG`c2goKX|ttd+H+DX=mM zo7DoZqVMDCBEt~BVU%0FPXYH#Y9arW_=0=eBi6qk<%#;ZRj<&z#sa(8W_s)FdtI?w zZL6c>W4)WJ0tGgxi^^T!!gu?qmKuoDM*A*(6+5%A`Oarqh>sQ(%MPz`Y&4%0ZzBY< z%%id?Pe;KbWHx!XX}@oA1uBFAO+NP;wC1ajnw3z1mL&a-xJibJh#r_J5Be*E0`V58);wnY?!fj5m3Ieg#&;8;?D zeLZS()Z42?qpZ7fieG-S+BgRd-^c{M-96TgRlCDLTWjM)gxl!Vk(s^K49@lz8NaO+ z-Ch6P^>!yToA1HpV2ZtQ>^%)?dvLANePxMciSS&%Og+9qo{B?yNLeXG^PK69f1KBL zxJ+fBFE7nAm8e(7U%lD{0y9i7hm*MIjI4sm+-Bpk7eaB`h?EC0NWR+0qM_nD+9pn z4Em>}SRf90R=I@n;4P0xH#-}V&_iX+6$#oxza1y)&_567pHnq^e22a)Cz_$-%Q{JU zn2SJ1Wg~ zjvwo!2Dq4aC7OyMMCB&Et5U#OF65{0J2nFGXkudIsCrH)h<2C`y=#af>WSuAI>V&h z`Fg!9gqh|twM#pr%5bzk7Y#T^f`=~Yf`Yc^X*Ihe9hibB2@;t3_)$es@ZA|2tJ|3X z_pz4laxYud`+iRPlQV$A|(-*_DJQOh^xgj<>t%ISPILqfzZaK(>u zoMlb(KOi-OOBk)98M?kk z3$zvsudBG#faCCiynRStdz;?jQvk)|7~|Mf#zsSyFQ5^R5MXiou?hViO7}6w;5wfL zv0fKOA>#^ua)2^?6X`{1tEK}f>&Hgw-F~z%E3TG#qTAh*cr8JF;YJ{3|9C*X7mTaH z9N;Sa1O}iBq_7>>($GRg?~3OFZP&sQ9{mia*z^d;QeCL^oP`d@^SkA2OmtQ*xa=1hFY%Mi#L2eH_Bp*l3$0}(poepG-q=_0t{ljkM)P<2; z-T$;IW%NT)+Idz0f zYU8c5$CEY4y(fK#I13CQ;YVdszqcBMD_IqjV}=11la7t+Z)H5SSEUw(4Y_^ndr_P2 z=Vx5SrV9QE)h~*TXH&ByNR>oRnh!i9mKz;rg=2>;D=UE6aq9)E*GQ2PMp5D93&)&> zlzdU|82fd}o%Y8clE{BuIca|TQbK(wU}+x7L)|n;{va{?#%O%TEw8CiJ=DPz4{?!U zSGqd_mD$`X+9Rt+Vorgq^;r_{xbyNBz2v|l^q~)xGN9L#HrRb)G{M(}dON>rP-i|6 zkBJIKmD%Wby*l(ggcX4GnDVBQT)9zCmayH6UxyEqLijNpp#A6kK>Lx$eI7rc-{_-B z{duT~rco391oW&gfbo z?l9qhf!0~T+80Qp;>ULBl`yK*h|-1$g}#GPQ2z=3Ax>+jO@F_0#f*ZEeZaL zv1$Ye{;%0>*C_CR2-;)Ckc|ClyMV@jN(ORmxfg093ES)cp(`%RO@kWfAD&kMYL2Bs zVzsqy*>I+==pmK2NB?UiWKJKpXMI5jsl2A}k0c1LMM157h5|YcCV%`T$)LoV@UN!+ zF@OLfEBR>&Ob{f`%>Pq=cOe6gDl1mcPYV&Qk!S6g&V)3FP3t;KWq*OtI- z(+(dxrEW~Q!Lar9=z^8aeboGHiLX1u@jB znP;9=Hn`MqtF?f#s}8&~kAXA_hK+w~LZV2)6`Zh{(xrfQ zJs`Vi%Z>)*L2i&4ZPBzymR&;vlq@`;-tukza8_e!)K%I$2j|gtGm;Jg1t%Mb*5!M& z@_X-R+pEC~z`O`&{{h_my(Mu}*756S9U^)a-AzXX)$}lGqJ|jouoVlc+68uaqlmpZ zM;uJbLvr2`^Uxd5V;42;LgzzpnU<tqMpH64felSXY?Rk;oH z9?}MlfqCE+#b33Z&RGgo@<(?O-f#`utNN&lq?P@7F4%@Fo{+H_Y1_A3P#bwjnK_{P zlXKbehU`h>c%k}VEGiE#n!CW;RN7zy4Y-FNt~Hw6Iwa^q|BVh;3XUxVG|7EiNB4K> zpC}sjq6PFPD9RJhTLFuXEiBca_+5f}$ zHvjjkYEkw34}kx*s-nk3Q%6M}fBIje;&ToV`S|vYCJl+Vk}5!7$5^}Kro;393k+?O AApigX literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/everything.png b/apps/server/data/resource-icons/everything.png new file mode 100644 index 0000000000000000000000000000000000000000..652cb3ffa59c9b6602e01a998846066a3147bcfa GIT binary patch literal 930 zcmV;T16}-yP)78do#9cN` z?|mqyki=^VJs`N}W_+lg@vr9@|LbEsbzQ>*{r&9%1{miz%rO^a{KHAcyK6)dKMB>#CErFEd*o$&v?VvOir-flf3jB;F=@L9dF>-0 zpSWh9d=W{%Uc@M&!cGA_5f|gXE@vj4@@wsQwx2}j((rU2l zjCROt-)i9oH-+7+XA%wRIledRZ8&Te40{zOV+@Ai&~qCie*SoOdXDLKy?|D;K=``o znK2kjhu~}!5JaBYV0s?3hCc5w3-p^5&}pN9c2R&LP?7&KmD+-3gNjHmQ)J)<_2>oc; z_|+vRX6wr(x4;;(B;oxv+kvx$A1UFQddF{ZsPj}IT74ma; zohuglk7SNwHek-p9#UXF(!|CHn+r;w3vknDtsqCcYL`vE(82htp37^; z$q(d3K3t#PYj^?{3$E8_GMICWnn4?hyslj#$3w><>~m>I;&V)dv{wzR literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/filezilla.png b/apps/server/data/resource-icons/filezilla.png new file mode 100644 index 0000000000000000000000000000000000000000..e93650bc19d9e667f4602804930fa2df73332dac GIT binary patch literal 18872 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/firefox.png b/apps/server/data/resource-icons/firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..bacf02c94fb6d2d9017a43d7316440183f6d5fae GIT binary patch literal 138935 zcmXt92|UyP|94BSjgZ_|l#rCoIU1=HN|IbTN;x)jZOna6MCDtm4N-BoS&gbj(PPDQx<3D`tFbfL{|D}s2*I8ItS6Eos zSPpS9{|W0gbY=eV_+GU0XJO$L`txP&90}iLVUcCIWMX^+Gq^ayjd5&z3GvPIo~M>4 z`J6`|GLO9D?ajSVhH8if&w;X+j`Wo8RDbNM;WKQJ&NJTJqg;YPvrcb9ukul?qC>!6Vu zW=%51q*|-(3=|6gUa>jb@F+e^x*Ae_s2bABYpkfeda_&V&E;n&Z3=Igs#2CM59C53 z2J?JPbt%WjvI;!R{$43~s7-`5A7#A{c`bNPmX~rW%=-I#kAF`UJQO9t2pbYcJ6{wi z(576{yG%9a%b0X{ei{$otU6%zA9=(<70lI}xElXEFY`wGt3QhsTtD{$lhs@WU#QGe zFtET(ka%^@OhM)ctl#~8uY65?=+AW4iIc*^h)Sf}(Y+TTqBeh+dsc{3zfmQ}8vhF> zaC8~{K;Yi-0uSr|k=Y!&`DGxo404}@N}1L!@VN2s|HBJ4RKhrmZxtuih!&oH>K;AE zvQy()d(l5iL0p;P4T=@WK-UWk(|H&+$7LFWz(5S!KBGQ@ha}J6exNF|`Xq$mb0e2J_;!|5%Bx!S-JjWBbx1H7?2; z(dUzUJEm%7pCHk#Rs2tcoTQ(jp2s3X2hUNy)wRxCr1GpUzW>AONt>v#Fz@+dR%@gQ z&G6fl??&2u-s^u4Z6$1)`$BpB;vg2Eq{?xSwvrR%TT)Zng-RFJ4asuzdv{vuKT}R_?GtWP3Th{|Q*Z}C7F zVfxO^;_ZTeo9(|Fuc-4TrU85VP~-+X@_Ee%SV30iUk-I4G(*;m&BTH{_V4(>(I?*} zW_;To1We{e*uYHxQW%)h8VsKa)7Q92%8L_2=#kdd_21mwQ~bAW^Q672Z>tcRO}S&$ z@jiUEiAO2m((!w?7^aD;Ur@f{LJlK?y z9S#u_m}~uT9p?CN(I8+%_`s$gzL)vFDmJcqr;S${5x=SV86ugzv1Z?6Y4=wtGwyoe zu{DP_dkh!%wX@WzDi>DxL5p`fL}`W>X6kobRH_^3BI{i@|Eht9;Fy`8Jv?FaEcU;! zDGW{?Xzj$?<%SRbmGk_m3Y|+-e4Fw+&WWaQjbl zge6%Hl;r=$L0Z23vd*9SsqsFm<}XvnUST%xQ3N*E1k@g(>HsGYh! z{(QW(^U22Nkh}k0pkg?oPv`u6|B;ad7g-@b=n(C@4q+*d-3jPcHTg@2>9}UW14zz< zHEGc0gv)tC(>d?^J3QqYB$}%>fs&jGKDME=e)-y8d0so~Z5XEb3!5d+m{ZO~;TC+k zf`hh7eD7VxjZd$9*I}ExGW6a_?XPrChOof?>&ZhmE_$BV*T9fd>CFQ2gHcQ|K)I(I z4A6zP$$w?|Fglx_?0Qt!OmSa6+(Ey6xL{`^&hu!A04LL5+Og*=?+LB{{I`5e0vbEG z8Q76BAR9jHO!h$-30;nC;3^j+*;RH46xgQz+msJjtf1N6K;AmFR~h(R74>8K$C7A< zsotr#1Aep-&QM@&=_BNux_ly;TB75KKP)dt~MHQ?Oh0(mx3a zEVp$h@Hm(q9js6XX9*nzt_`8MaS;2CUVJcD;IzYAr)&RMW=klWbmC{>pN)J8%5pW` z&1VOI8mh2%q|BoW#27OEox;+KkpDTqi+mX}%7?&TILHGtr*QtMcU5~cK(OZ?asC~3 zU!(M_NOptPR!g$-y0xAed(Y@$_PwVAf8I*TrlBmp-2ah(M+w z(z4pDy8d6lnx!EwS4pqWU_PFn>Q_LV@8JqkCf^;|e60l0$CR$!6?pxe@O%DQ?q3}` z&x=8S*W|}LsL2Cn(C%F(;ftR{5c^n_h9xc}A^f84b`vA$!+g*GZjV8~_sA3{uz)so z$m+(s_np>WOCkQy`@Toj;;+c!fG=h5$E8P|qLcV&4f722Zp>!aOjQHD zC`767Z$N>~)K~}Aht=?3kp#C-SE8J8GqMX#eqfJ>yWfX$8rhMgOKqpLSw*2r_`}PV>vW#XJt0yRa+KD0J=wJkt!Ve_80a2|cS~GWgC)L+4|67lXQmv_A z1>x&*{enF~31b7oB&Va~EkvtyWQzn#wT2a)Js|or{P&0IrPxSz$DV%8xBVA5I$4kw z;R$sk_^4eof_;fPyctRMe>}(X60Xx59H>kd6l5FR4;o=QmY4|bM~MeFif{iRQMZqV zxO8B7OL0mGQ%W?JjIb~nMwH;CT=%r0Nu%hCXO1jG$yAQOL*E46E(mZTpHl<+ou2QG z&iB0kV-qt$n~r83)NvN&R8H~_Hy)sfNvTU)$8?9AGuA2^T2*PR|KCM3A*6HUL_jY8 z>&ml%f~ddiLaLU@&~Ek-2g}^}uU=%WFomM_RQl-(BZu9=nBmPAMMC7Q3CD&<#9H5~ zdc7ej%3=lbs!n3%(>Cj3_rGtLxtXbqz8~qqNF|Pds_e<{cq!h~-9F& zU_aelx(HrqdAbXi1(D<0<0O|B^aOM zIVfoaj9Uj7y^7as4*m71SQ;Nx4L$3 zP}V}sYn`bCqd~_{1x=))4I~u@!yBaJNCVrk@npAok-tf;2k%%JYKM=+6h)F5VSI@V zRb!s67DVSHPI+zV1f}C-J{#{^DON7AOjp69Am)yt)ge89a^9ZD&O|P>q}SDr`mlFT zEXkKthAomt+;OEYK@i;LVdcv4_W_0m@Dxmz2Du`5^$r+zgoDBjPey0)k_PBb5_wdo zzs?fcj)wKw@9B2h@TVrbMgeoV^mPb0_bqT40-eM5_{& zzeycd8e|O^F`meH(1_n_DAW!Ay3KF(M=sfiF>ak6?)&&SGm>LGG^s^o;S71J5s`xP z&sumM78b8ZzMC{6F!13P?0yX9BD01Vug7y9T=8-Ze;>|!qu}uL)wOclec1Y`{D+K% zqR`c)Pt}LM9z{jkgPM|tuJe<{=WA|$XaS}3muy0%4mZeAGF&JL>P0~_V05W#wMI+$ z(7-ou8TcZ2wi2FLE;R=ADR8=>dBS{8JOBFBvc&9i5kos<^-LmFT#cxz@^UY&7i_t~TEP$G2K#Xln`WE0d^|G# zEYsQg0tYQ^%NYGC3IfFImn<_t>2i{nhzdA}xesYjftm77wfgmcYR`r_?P1q|sjO_k zoMqAcY@Im3nI4v(sbuqHp$54vG#t3d=gIZS{wY7%9z&M%Ii-y&uQG9PSUe6VI4>TL zag=$5PQ;}01K}TUp<^&NSA2K60`-85IqBt0zAgGKsW%%qrq0&dQ8qG?I^NixeZyu{ zwc=VQAunGO&|NkE^14V#pZmb%jFoU>)yv#CQzMd1GzPCh_KEMmi=#J{>W+KgUP5#= zqCNUQ++;3QoZ5)^JoG}EPigoGd5Ft*mvFN&-vB7QkzG}Uk9Rt{e&ROk{fQ$^Ijn6U zja-~Y^%Z`{f`?;38AH&@T1fuEbGf#_>5l^bllp)U@KsAJX@me;ep=_cl@KX|D|K^d zlnc^hI&Hf~DoMixXC^^8#n}3oVuK~yWV}H>hK#Int~DVwjOeVh(Mc@Sq{kvOb3Ssq zL(mNauR{4Rfv4Cv!WBBB7I38(K}b|-$0Kz=w|unkOd)-wLIF6RFp`0wJnfYWSVe%! z?_|y)8bgXxgI5hvQz0+LQxqwSTVz<%!+yPPWOAYZ0{^PATWu8eAV})=;rn6^xQ(Ym;@g$-e3L?zPj>JJaAOF+*&#H?qarhEsrcDRnTCJ_lSiHC}xPnWG> ze0EyrD?EGvl<|~j$8(ToY#XYKjYvoq&VDgsEDoDP~_c?z_Y4EzhkG=sp%3bzn ze5idwU^#sqy-M0E7u~` z<&L8#G{+vMNe}2(2$FYlnCXKk^7%Y*;t>B1VO#Bb;08%q+!N4v*O-V#~(7rJ}wS2<=HmO#z{1-Hq$Cx6jLg#~jeF+5}Xz!$wH45S$(X8X|`l#b9d zFOjEuW)jA)=+T1`>@#11(j{dl4x^Ypx>|iBjlOwCaQ#-+dS6=l@>`JJs_ivh!tz*aiHeNW-NwWZ-pUv~-ssAWkM^rT;gvd+NKei+a z*WwBmf|AhaL$rGZSM_;{Uyjd1uG$<4qMR5#zv&drR?Wv!8_mk3Mh+&UZX9|7zRRWx zB&qL@5#q4pBDH4kzlY(1SdJ9Ko!BLNuXs#|8M+=wSCSC>91vZDtIyFg~gNiNBA`QGIXPT7Yi=A-@ zNuc%V&SR!u_qzIAf#T`kVy#Tp+ck2ib$ew_#(Gn)sY|&Ef~daZBU9WIsMO{IB(U4}1C;KgNB1hh<1irlWJ+GOsRCt=x^nMCqVxOkg&X{(vUzCE-4#QehRxY2>cUbZ86p)zlaPx3W7lqAYp z=(TDg_zI!cV58QhUHy+6D8=CxUL@hV+I#3j?HuF<;YBbqAcokQefsm>Wb0Gx^A-@2 zAB39IuP}q+M_e*VEsgpWIE<06nK%XNvtpox+I&B%Zxd5?M~!Qbe}ccRh9&qn59%SL zW%r5UpS?qUt>(LVC#y`gWyWde?8%2ZF})4=Z7xjd=!-k4jLJk$bI0cC+TzixEFR3- zAq}B#!OKc$OG|>!FHY#H?;4-}I`f{HQfqGdXAVb)edfS2;|$Y7ji?9t8#xe^m!A@< zs9vhK^Q)-76Kd>|c>@!s+`zv1-bTU0MZ9B?GSA++eO||hC&wrpv?pAEh70+`SPjTo z);Kg#ken`X5aBW6zr9-?fqQ<1!SXQ`)Ed3hAHurx-gqo?#QpVjf z^>5(Nf^sCglWDMTkdAA$iG}t0-kH)d`yq`F*7)vhOWrvN57jme6^I*-{iFTG+vj&f zbpUgXqy9I&dGQ7z+P9_kB5&49te@l}%HTArocL?wI99x7UO&8aYz!(Q4+u3k_RRMP zk=Lsyg~$twh^O-K;ijn5y1=EIZ}IN^T@f5O$jv8mh;r8ven2V+hfPiyM&U-59DmDq z1SYsr?2o+|LMHt8ovCOhHsjc|mepkVrbDoh0ehq&wnj9XvBd@`e8kl*ve7t&$YMjX zh6nXu4SX{6V`;}%cXSp7xuNpB^Dj-9j%ut{H zaraMpyU&*5FYAK5sU>@krE#XtXfopz43uSF zOg{=JaFEUV6*4Ws5nBL0VUmvN`lRvN!%X9R()gERHcX5)e%XBgbB;#^n*XALEO^@6TQP{7~*Gm|tGZ;N-9g2yX9|(OQ1-@9&MxWH5^bRL!T{X09Q;;t5aecxBfyMW|Ef;;{!XBZAS4Fym z8(4HP?DBon;+y%SyZ#eJu3|ZQMd5-5toIEQ8x+E8;u-!&P-p(5veR_JWosV8LrWqV zrRfG|+%p@7j_>n^ge)HZqSBVMI?jKDz2?+KGV1xGVyof~&~7M&v~l;w8P+HNT?RFM zN~=Jz(jFc~gol0(T*f?e&z4{x5d(k%MCZ<9US{dj_Nd+!LWA0h16MD#srGJ}BKc@H z@z!I*@)YW6OX@w z*oU_H1`N$Aa3I0H&bV45aMn^R)9OzbOtp zk3(qFCm$tl;OPC_F+^wOD$XcO-f7FCQMuN8zwK=~XjDE{io1%`^~_yO&x+L+Ic!E> z@P5ybPQ!bJl&^6zBHMa;XH6>I9AC6E-9;(W6A!MZZK9g%hTBcFThg}*g z7p;yy(0{6zUE<$YA-5q=CASeU(?yAwr||g_*c0WduYo;Zm2@#nHNn@EvlA!QEquR{ zvPS~C#7Hn{=SR{Fm@Zr-9t2}rroX~Dva_$z?p+wjxmm7ly1~Qows^JU=4^ziiogw`j*b$b;(1?&J~`UkT*8Y*%S1DC&4UVgl&ECyb_lH^Cy8lJfNlrw1%u#H<> zrv!D?+E@BY?xN^u!F+UV>G;*99nFQ`Z+!bS_=qV)xY+&|UM8*Q2?Foh-EgUYY|}J! zqjBWg*08|CYRdo50_^#Fp9wiWtq{HW{_Obq&~dU?_xp3rS$!$X`b?^kF_^?i%n9r% zW704e?Q%Ms?gAm^&YF(=v8(kq?jo|gEyjy4^&?@oD7=N5B_h$ zhZ{<*_v#|uPxrWf(TV=9%PdEIFwPvb`E_K4#}jXOxmu6!94YVJaMXUd`1w?ad{$~K z(OYG2?#VrJRvxb1&nQ&DboZ_Rt%41pE8%KG!n=o`@a+ZdZq1JKe4I7KxZz{iks`HP*)?NV&?U!i1ooQYui)M8!`q0k(i2b4WSk;d{91o>u(| zX0vbn^pXI5@(fuoLFJFhhFuDi3m&l@4SiIOXG5eiSUf8<&8p2!cJQ|@P;4kLhd?2N zP_TRne0a%9_rk7SJmVtkpOns9eVB(9EP!j5&_P*cm1Bz!L_$vP^S$CkA~ZUP7xXou zWV)M0zAfStZ-0@Lz4g*Q+$vrvTR&w%d{i)b z|0Yv0qD5A>O~$8B3YZaZ-~6DweXE2zVRbY-oMak}dEe^5%;5z}HE}5AjI@;7rQ6Dg@^o79ZESMx3?LGrf zZ>)lks^+J9 z^oI!CvLFlX3?BdXhOb%aP2cyu;)^|+8@LvW!1s^RvgYsU`j6aGA2|o`)XyOkr$rW? z`wui?)AL?z{$;o#5x>t&4q!zj97_+Kco{I0@ zvIwo^2Y_C!xrc$Mo=SdTU;2D72ul)Bq?>E1IbJihk`i(%V9^w`p zw@lnJ9Y$e>KcrV5UV19BP_K67F2sU|10}Trm6)uEaa&mlfsIX>z4)YX)H2vAvB8*!SU=@oOyij=1}Vs zbC6j3t#Z7K#wKc0OB~4k=&@*Y)FpEmp%MH@1~Z58y z&T(rUgk9AR+0n(&tJ;#GiIEIxFsjmZgo6RyF_`3bhg=4?+cCq!15Cz}QmV+!kN!AY zUL4({$Srn#!rtv;()c{E2rk}?A`)FQYS9(KK+4V!M|sL|**3Q}5HeksqR9ktf5c~D zbu$HP&y0=6#dOui>*iwjjE9G`Cyscw6OF3VOaj)|_OfIczbCl@4&LEd+7zhmR+TVp zLt}P;wiuO{mM+PpxYS~|fHyBzaQTJ&8Vl*$ZW^2PRb0Dxt$B4$3}XOMv3iY-iKFPP zX{IvNrTqka!xmmfG7QCV=|mG!=;z=R5&=#+|2dr?b!b8qwLe*Y49|(mt?;k%?~kMR zGv_````L{hhC_Pm;TAMRpb@FTlDyZbH%zB|6e8JeybFy)H*ti2YFWF@22HYT&TAO; z*yhfs=4uq6(+>5#eEGxtH*D7;Fa!u1x8bNNfAefqv6n=_+90(je)%v)c zDV}F~jxYtzo39kKfUYI!YG;n*9R_To9)_&;c8FsUtKR0xOZr8sP(=wHk2|*)?^QSl zN3UaUMu3ojSXIdoKst%Vd zYLA%M>jA4rWzjVA0rF`;clF&eUs^nXAAUMN}Y8rhjZw5M z$+6-H3a{hG#|RfdabXMGQ%F}nr;~=qzn=(~llB@u`|ji~9K^R_j{nlMOQ1d3n&X%C zuW>N)i7aKF9o3sy&Ygten69>W9BaM)L^IOKvR3i+XkukS@hui+>(bJia(=x?DA&5d zVpMYIBI0^<1E`Nx3|tEh{S)V4Gm(rW3)}=@bJ-YX35$_i#zeen`>kf4X>QtZw<W+zGdG>i#cKx<2y6{`A#Jq zEaXRVbcj}#xE9+;hOgwF6y=IOrq4;oB{h{+ z8k7EuAzd*d5%fS8^!=-UA~N;W^>KYAdT*2tCwx=9Bx|W{_7Iv-egu^&$_qR=f&|k7 zw)>sQS}|lj6FMa*5@Jlb6nyTJ+Fff2D?t{D0xQA&7|BrwkP*ZX6FN0kkScpGnTe{xE_^rJ+*$DOGK?%^wy7j1wQ>g(!7Sxxh(?m_ zNwxWHOnAd%f3RF#_I_<6yEH5LF61&TjyMw5+$fRvV!BBRL6C<_!X18mecLEr0w=%} zbK?^TIgWT)zK`5Ej6y0@3{0E8p*7aZw|awpS(Hh>LWr^ewEXTNoX6o8X3WXOo|jH* zx98n!BOvqi>sAmhNh2zF?B1OJMSDtK{>1a*eDupZqi>7$w`%!!UF*4Lk&%!TDIi<= za>OZIc7Pt)L#r;BoZy9<2ww3}$7sBsxnJp_xDBu836LRWKQ@sA{NsXA@eFg#gr4{M z9cu2jO4;Q_rq>do3vK2^xu7nW(?aA71OcEM9W4@Oc8wop;rdX_&to$_R4NB5^c|+$ z@3Al`n5=ac7f6QV(9rm{M)lCtnT9%q-|cpG4us! z1DeYPw!x8+$i3c=vsYR42f;8|V-ne=#D31i<$l=H(_fex-Viu*&OwaXC=mSEBvIgU z>GgQ3Phb?rAOTa&LF3{99tn~0iZ}=_F6|JmywZs9ZbXpS5M7=X2`QPZ^U@1WsI8S@ z@3EeK#WYK1jQu_wJfCsgid4E99=9LBDIa+dcw}`T&dgP1WU2QIm}aLAj=0|~xry;e zHmWt(kJ^7ovoN}r$S^kqMV#1BSidX?TDdwJ5(D@Zi4*aF__j~mP zHaV7!_EioCu}}*=&~D${wSN@el}=g;b`l<|kyZA!JlDxSIto>=tsY|7$)sd#J&JO6 zLLc6n!XNQ1;T8O5wGB5GcvtmO5S;`alG!K6C5%k)^Y)&moQjDeE^?`qdV{hWEhLyE^su3MTn?B)-%7{lqpRcH4<05(wL|@1{+Tvvawr zaJAHZkwE=0vH9?Qi*Cq_b~kK!X0|y;=FNn8L?lIxkZ4GGoM=(~45|0+;Sw{lH+HtnNbbCuU_#~fL+ zQv}t9OS2-qcgJ<9e$%^V&R^|H4DJXfFL1NcM7hcKQXr&+Jf@WN?Dn#)nA5Z1s&add z(31&_8>8QFkg3APuZV@xUj?XR zDQGfSEXA>G*pi^`I|0sWmD|6b!?mTF$Thi{T1_P^<|JfmELNfHDAbqc)3us`HUnSR zq|ADis4yG-0#=c$-ilDMhO$FNrjsR7{bxSdR~))!i3m&Gd2AMLUBGdbzEfd&UBN6s#oa^i-55EA} z6x1}hFQI25c?D<7`4HMzrTya}Mk*B=S7jK-)+R@(W3ikn5^Baf$Wr8unYvC;dbP5_ ziBV{+S?kJI*?(WeTKx0lMv$dx$nJUlcFgd(#-vwgj;p@Qh;Kt)DLT*i;4eG|mb@&u z8488(2Fu_M_VA^rFb8MlWcI)ltwPK=I?hJ3lLR!blbv&LFkMgL=PSA z-uUI*QT4typ=~imN|9_QCanncNCJxLpkiT=2N+zOhl9NJbn(T5HhsZh%QqQ1shG+r zOcDpm`b-(02+8hi-t)>m1AWKmFJmg9byep+RTqKUweocA)hf%RblZPc3Gd19WgH~3 zQM>mWY@0<8*nCf-nTBxoYFF0r(9OSGSP?nnP z{;gkwr4vNwwTiIOu&J+*yd%_s7pvP$_B^kBV}yKhjpjmwP3;#eO^IRIOI+UkcRfCZ zHSSh_e14G07!}pj$c0%h0x$%M0<_?@fd0&{nUk}Y%| zun}U0U+Jq3ht8K$uH80|Z)+b8**g&pVRe|T&xr3l&~Ap$?YAYgfSNG1r-zdnd!vIE zcNpRIAAPNoq9Cb^>T8jVH$vnrAy9<+wWHT(KoOzW2du(IYUYfcL$QO=qon6$l|g}v z`&yh63mu1r*by}gqT}itJmum(c6q~WCoe+q+d}i+W$S;LV zglv&p3j8->96VDephPK}sdfw+J%!8*i$}g(JiPL7G2?n&)ro!spoet@aS`6zdf6v@ zb{AV9GMoBoW+(NCuQ(8a(v+dzQ!#M2Z*gc#7*g}3$3ZEcK}|%njtm~BGXeWeDyF+& z9>DT24(1gDZA(Li!I#!6m#Z{Jw{B0*_X3yRQKC_0T!U7uINpP{XX%dN{tJfqUg zY&b%$Ua10Y%q*$P9}MJuP!gdG?+fK+GoiY2D}_vN*?poEaKvw~Lu}WBrkqf}5ODBI ztaJ32V~t1PqFx?vQL$+YD}o)#g^uY6PI5%Qd5|(xF!7w<4gVYQ%*cy7fLqKNgJv+c zwVC3-!27|mV&eeI@BIPlJ0ld}-q_wzSJQtw0HB4-r@%|J<6M_SX|EJn{TWgP&t#pL zh+4?sG7QfQ-MqMRUmSNVnj^mLYUE6PJ7^zb8*;p2NH~-Jq+B(%u9drFjd7>}|IW~V zStk{8EUYWNZ5KKn79cq0FUaZ88#gKumA!VcH6bZ!u)mO*nO=(o|k(z{{Ku``pw7^f_bMH$vvnb>NQU>$xu zj25M^|2UE{!3N}}4ME8szpE!UQ*<*Vdfuh#U%Q0zipzIK9|z95dZ;h_G;L0r3nE_C zQOe(l^622kdoYKOVp(XH9|k@6z#42vU=3!1%cp{HX{X6LUrfmh=OZyOX6C2=2n)g+ znPxIhD(??-t3y#P>Wv>>SzT=9SW%a#^O4JPjpZik+48@Oc$KD?ddfkIRXRF5pw{96 zFFllqH}z@fM_&j{;h12Zqd&ML+Zg1b_5ySBa}^YMeePz>T;1AUJ#fR_60frH?c zUfIn!MhqK}>W70pd277?<*kGVe15ZOANtBEox5gdkqG(ByYVr30DEs>z30Ao-BNOS zaI+-bQDv?&IG-@4y`mN0#Q$aJ?Td#{doYzxRx0JdaRYtJYp7tT*l$KoV>(x`SsJ~Y zO8D{Uv~!KI|{=o7@YIOQ}p4vs$Ru`0N}^5UIcR}=A4-ci8&m2 zEgF*+iLs6sXXXZfa)EKOo*tBhnwOL4a$XrY^}OM92y@`Qh3QSC5v;!8)#r=tD|=1t zS4mAHep_`KO?;rbySM~T6$458mim(XM`nZ%mt~|c{Amu?#LCw!vMIF4ajqO_$z-Nh ztPo&=`7nWzZP-MZLfdrXU0l)#^uq49#H5^@iJAw!-BK@2)i@_wIzE>iMQmb{;M3C; z)Z=qM?g!<+oGH8O$V>;EJb24CJQhwlPw4e7m)6&`eTA31BB(!yymePayPVM4o+W$V zAy$2==r>(h;TSlxr-c%pqzN?(D~>=pNlz2>e;k4n0%m^P_N?$yGbOxBiFQnPC5r)} z7_tP0nG`+xa{}NvHyQ5(5)@s&GhHpg9QPM+5B^;^nG_l{9ypLS7m0q!3X!(_-8rGa zN2^?0no%56_Q54> z#1%ZP-Tc+mLSG$fAGLD-o(T zZ}LV)nfML2`@_k!ZK6dMxYkV4)meFK^toVp5`FrDEdpYxE^)J|T_M~MGDU@dY#&Lm zpkC(XLy^ip{1@F?q)5B{vw|ZDWAn7*nX^pZ@c^P|PbX7xc zSMS)Qp1ZV{@OMSWwPTnM#H81HE|l>@72etQCGRAVx$RyGx6^LNd&-0eg;i=Xlivvf z7)>5_fsUvFJqWPa#P93v%2&kM|tl4{P(%L~jv&E4%DmT%uQ|7z0mI{oTp&fZJ&T|qpm`-a#gtgJ| zX!hFaUkN+a`K?MoDYNZ&$~aUyff3CDcAi%TOjk%E-^z{_@s4|}Nq&fofI7iW<5BoayMZyTGZd^w>V3*VcTdsdWTe3j%rYOAhz1%udX9 z>oJcbG{L8oj;vgl_Djdv`r^_qf{Is#X~%egG6xg#0(0Dp8A6CgB+V`(hXnnWI(xx{ z04q#_?<`@w^|KaTL9AgmPqQ}^gdO&Y!Ibm)$^|~K%#!dQ9k8Csfw2suf8!##_5PDi z`FK|_&ew2w>F3%EJeIL*Y$TZn${eaV{cE4>&W_qkxp(O{q)0&^Vt?jG!Fc%6vth!Gu6z}ES^RlG!KXZDmZUBhnjc!rJ3%>JrzN8?KWprh~P0iJ0PNq7op>xZ+w1S)!cv-)Zjvm#bmGp%yH%QKZjPh1pMNeS=M268ZWsa1)YLqX3QbeP&TLMJ!4B}+0|VU z%tL-fl1M`D2iESaz4cOT`=$-7+I_4S#eTeQ*>ARfna58htYf+X{w2Q^Np4S4Ctn)d zay$f^$h%{?t&qqCq@r*WDZ4e7k{Z4yUxmg zF^B!XwYD4E>oHk2P3|-Ax+}cUcY7Zz)M5H7%oqXrfaqkrG~lSZaBF=w(-xg}4X|9=+X;kmMcUL3CP8hJtS zao=Bz1#%gLJo2ZKKuS+$`&+XNun(}$wxSMPHl2KP^(VwQRxE2%cbtW+%zHwQt7txvEnL&`;k@KG+QFz`CU_C-|;$uZ<7e%<0e@VK&si}k?U>EJh4 zKrT&3nUR>s?ruk89v!MMGnYbtoB$R3M`2I?QdlEKkF^g}yk2TpIPmzg zneIm7V4nT^QwvUoVpK$#rGMyi4w?@9t*{4w3r80N^U1;9m9rMr3#Re$Gbb)2BtgjkWGP4DFj{r0V-xEe<@;+l z-Ph(LhXN+@lUzrhd8HD0=#pyd4-(og*TL{lt|e06V(5_va?ROmzTRr31{ww?NrP;5 zFA?WMiAb_Dj}T31+-O&bpZ4siA9JP-I+)CGKJLM>qx=3<@Ij!xkgc>sfDg~@P#^I| z=J9z8I_1Mo5zkSiGkwIu5t53R8vf9w-SGwRmTC=K3YX%|INGXCE9Y$+a6$W^kezD@T8VhzT!879N+IsHx-t|6(TQ;fT9<}o z0G4n#RyeBKtv~{Xr^ACpn`nWdFXqC%1T|%Vh;Fj>2-fYjf zTA|j?3ywTk3mtzBEaJlPq`U2b#DQzdK@hgGnO{(&2g*BsCG>n>T-?2@_5w1^r?~Ko zo_fcYc~6I-e|MJ(+Xw?e?)v&I^S^4FgsH}p=`y77BT;0nbJczEl!vqb6>(?jEO<9W zXZYQ(pMAKsr`f)Azpn9AJLUYfH;sE1VrQWE1##TAGbHcd&4l%bt(iSBsIqqfXYQH%p=AWLIZYU$TbcDY~)v; z7QLBB@=F3+lCtE^pO*(qw;$cNWBWCGLxA>)t2GDux5c0~-5C47njn+J2!qjK(TR*p zVX9om5GoZ7?vKu}43R+_9slA_Yz_d;>w$7=V-Xw8;oLbELM5*TG<{!^Qs4E+lPe&% zCw>Vl*KX9^u5G%yS!H!6EB}7p%&FE*UrqnN(yHxb*XWRx4~mm;6pDo{CR2rO384x$Cl1Z+`$K$1-Q2A8(p;LBn6^klECu_R$D(rHNDd9OJ8}1}` zfiUgbJmCjupabxe4F&|Kiztg^tg9w>xEIqSC;*HRUL8K(QVqqdxHEhIw*&N0e2LSBRZVA4;q!#FD2FbFVS8>^-b00- z-S029+{|+B8oJ_!q7>BiRp|hEllJPd5&Ap)VFlbreW9-S4`Yv(F|Fr;s7*`xR+33%KNWmIu z#%Xb;1Par9X#Bp}cHOZ**$QzPMdPpM1sCykyo5$`p@`7#ycfwrayh?pS5E*!QKoqS z1(a>7?i>Hz9(`*}a3pOlFr`kG(r%PeSH?e+9&>{J)uQRgVXrfNZ~9|1eOR%EC?w%P z%L(^b2;P_FrtxKM&rA;0&k|}kvDYK2>vaf89d;|Dy%QF3y&d`fJU;m|(&0{)Zm%3ft5jvz-`ci7qU9P-8%qvPP2;&O+S`| z=JvrQ3m!M+$u#FNMd0F4ZQ@V0EJQ5$xaZ>K#o9d7iMLg!(~ezv{C56#C?2v?H28>~ zEJV+cZUr)i574fPP`HDDc9^U)DdNk@n3*bmw>y6{@^^3sd?gsj31C6R$>c67YkXh< zjG!sceH!>@(cCh)Ug+Q7SMqpyJHGvd%KW*@40Gl)A=3BKuIBt$@V(@F{U;q6L5S`|PaXn!ss+8bryc!Xl5 zoGce53Dd&GDX05bh!%Wusq(LkkU$v|;SEVh_YWP1vAt2eR_!Slhb`<%z}|R$lK#Jy z=mu88+(Fuj3ZZwNnBV$zbbl&adv3(RFnH5@U>_;t)0UMeOP;c`JI8uu(8^ij?d*Y- zvlhnY8`}?rtr+g_{>OQMXsk&$r`id|9{T0USI79dHDqnMMaS2<%15~P;TO+J0E(_~ zV@dtDm80qhNq}J?TF{|Vs(kwqd@@``)LVSQ5Gus$wQw^hahJ@pm^3g$pk(VyjyDY2 zM;v_NSqnP|T{v^?(63&s?$Ek14q_i$#Y$UwqSsPszB6}M%6BKeUVRBrllHFplvDI0 zkcCF;f8gYIvdMq*O`vgkN9kf@19{D3ypi~#)$r*_X6~)us3mr$rFfITJ_T|iYDF39 zt_HWZSyqF}+or^77!eXEj{R^aVD;N>P2TgvyFbk1hm`>xMKONz$bfJmigAbH$myQb z@*mGFjX8{|8KVwpkLCw6LUQ#luJWBrCMup`bbpjH`zXL3kU}Jwh)J6PJ z<2gt8HlPday<_&<{<7_guK)P2%yIb@=Srdet{eoY8QQQN13EB7Qj_RTVU8lqG}gKd z5b010w}0)q=tzi)STTl-{Xw{6D8U|Kq|!Qz5cAQP9c`TQ*BNT1*Sy*&YG3|!T>c%$uU!p(!s?!QaWOJN{;Np)Ukvms6n7fFQ6 zgm|$_2&hWJhl~A{f09{gB_>lPrXj=wIgeCz!1He)s)8R?tGz%NW22l>FtL0CcyNAZ zw#yE%wJQ~!ZWm{*O~w`pMqvfHaq@Leq4odJE<98d{j8qC;`XD zVb~L~qg&7xz;b3$f^T0ukTm<{MX&bdC!h~>rI1t>8$^tSOzFEsyk& z)hfnD;wqPBdVyJa)in;w#}@LOdFNgLw!2rW8}Ml2@wOw|jn|^EY0UJ8A^<@n8mrZO zjX0Giom-OcxC)`iwh`??VZj5SY1DFWQR9oP%LDY9MBHj-gKraO@I};&8u|4*4Wmy- z$-jqFhPNhV{z+_n%Orp8E<`t<(*@K)yf8|KCcaEEM(>f&Swhb?EWI;>T7BniQ% zs5MaKT$8qSBE@5~3e)G4bhejIiIP~DX(rDN4H{FKoSwiy0$8H$!h-$tpeoU5rrX@D z^Bb?V)HQDsxIZ)MeRlmqYW1%Byq;N!`+}+4YSnDmP>K%+yH~EYOe!8j9%Ht`+^zp6 zYo=EIjRbTUKr{Eqi8SdK`bmjG`4;HSVQduE73pgz)sj{Wclriz&M*qg<3gvO;=n!^ z31q^a;|_O7_i{M2c8JAlPbR4o6;UgSDRs%(asT`N>-6l{DW|y5p>p`q1zIROg&Y30 zQ4d7$^w4zosW^Mzv-{`kMw&P$895K664WauanV<*^2cM^KX^9%n8fXu0el1Roin=c z5B>D_s^pXJcAYNLoeYt_+|*+| z`rYad3nsvRGp*HrOVG0C(oRYj2qsb3 z5@vdX7dRkRD<=C64?}b1HH>$UP&+%M&C4K@z}N3NUDv#_9g^`z3GjyUlb;9nN)LW* zWKZX2C(Py1UWijm{PaCgfBPX3rm042`PsY&!B_3;ZWi^{WN>4M5D9CQz!XO7Ti<-E zT*E3*1C<5DFyzt-By+OQr-861MUc)+Se1O7D*%SL5H`TRCpMbZNaq#jts+>q2)2HH zFNh!}HIP=Pj$pAw$=f!MvZ9;=QH}%AR(B2HFLG|y%VJl*TKQPlPt}CG^%aTgM z8~&`JubFoO)hTIw#80OH7X!2m@TlI5!b(806O*w%AS|0&pp)!9qZQUs6ywj>?6p?y z?q}?DFOHC!0AZ5j?dj^afKZRXxzUQO;VnQog8zR7kGJ!!W(+WNaWWZ%rN!0-_bhwZ zuiORdzPODE&FQ>gF`rVW2vEr;o1O&DL9wn*mnylECy4ObgHxms#DiBPW?U_lU~73F zU;7p~)|vO^aE~h!92cuTvpV=q5ElcV0l>+5f*NJx40+?kyzVJx-w|(D(yywncrGpZ zx_-xU@u_ImrFgcOpU=FayTZP&DmnXpo&Ckj?D~F|$3Nn+V_B6LLW+5`-5bHb|Mci$ zHkCM2rww?B($*>t{VFV6!ZbcUT2ecI#YD$Dmhn%o9Dko^m3m~5eZk2Ptg@i0Vx<9f zPko^Xa$HeUm48z#Vk`JmtMS~B+H{%-(~^kYCbVn?T9%KS^h@2vPijj$q#}3_j4^PVXT*KQ$I?1?WGZCo%4STXW^J zCGWjQQ+EIj%-===0Q<_AHjedzFR6oN%Ow!eC;ppbUD z=_QDaOSc*UIa||wPP_OCb$+SJe|t-*W5`?R!p+VH*cXam!i$U1jrN0fpi7DS!T@pC zKx5{n?t!LQIT$7esmz1&qotwzv1%~q7;T?X8skDQR4aOtqiQc;N4z4eggt0MiqrnA zWBrMcJa+#hpKPgXtE(L$#71$L&_VoS*G}5n{_etOetCBmgG<{XBGAhtS0-Rx=3^jv zz*lfj+UILFB^=j<>cHdcSORp2qkXnf*oMOdush!NzA)~^y@$hUgXd(OWG@iXjYxro zev<%7#=A=Z0zd48nxp1;^+57n+A;$RTYK!-bd)fy;U(|eqwizc1pl9kw+Q>6sM0ga zC>elI8?fN*G52<{d!+{``2-4lflI_THQ@6juirq0gXU1K1WO-sEWx=!N#m`q2 zNxeZ9Rn)dQ#UnPH_-?cw98vP7HgGY>Xq`gQlqb%-b1$ALu~hk~_A(jPHN$&As)yz% zn2-C_7-v(ORC=<18wyjxykNztiGaZbzmYQf`GZ+)EWFfpV4*~I;JMqo*eItL62cUW zCZ0`~s@ow!9#74wcOUxQuIJkqT^xQ1RBMdNdXn#*f=v%Vs?!G%{yKm6|=mmQvd8aMf-138cJ=wW_}ZAv$< z+x59<0T-safe!oyf7Ee;ys}RYp@o>fpF(fh9dLUHRf0|{nyZqh7jLjTvXVhRr-?pW z32=F-gRib2)YaZl5RW^=`gzcJBkhz@)|u&3?465B0)tAppMpF#v5F~snz5?v9iov* zMqJ;MsBZ6f-`J}K$A(qjyA`e;Z22h?->6mXT~RMqo5ve0dC5KQ?+FjLiUNVPdQP`PCpy`!FoLzfT9L6 z%SC?k&Hq`hW~J0N8lV8?iPiOLmLciDFH{;YRBsS=@;IBrB>(r^BPOLM+hW11v;Mj!dwcMCH%R}4pXb!eKr^Fk6l>kWVn1^FJS`-<#N4FIDz-sk;`B@Y z@OJOV4h%^MroduVCm_Jq2UtG0<%UCP;czp@Y@q`P9do*M`4KTuVzs?G|0k2n4W!tm zF8RYIy8fr3p77gt#r@DZCF$lkqp&jIs^-z|u;XnP$LXbhbhOYSTAZ0KRE7bo2y8-N zBj$eSh|=z8Oz6s{^p{p|CJZtS4ws%iO$?}h5;|;G!bw1rU;96w!rb@WIjcB7wewvj zx3EKyYN_PS;QGZ_xEd2YSQyDzUz0kOI|2S%Xe1=by}OVPjPQN?6@IxBD}ij4Z3bcH zTCkR}r`Uxv*F$$@-yJ!j9=D6d_U*zgR7tq~k)9-=4>B3*d|=$`S}g#Yt^>xIGW
lw(ep;fA2g_@hh99-65XE)ge(~N-X}+2@s?1Y?w0Wt)FM+|zaS(eiO!s0%e4~%` z`Xp2yT=znwwRYriz2p~R53XdcRV5pj65N{R)~NR`!VJG3^2al{^U7rQaR zpWl9h4)DCjM4>6^?Log^971@ZUYN??Vf|qlP?#ElUFGrF+*_9$e6r=3X{TTE-e#3R z^!g`gvKwc$a^G4MC|ATeaw$YD>`U4RsfJmNTe z-aPw^z*HG)`ssYE{6T@07LxMw5^Z}@`ZDrjMOv>WL!I02X-JEjRBo&4fdu3*8oB*T zALOMv8Mj%V9F|x&Z{@G`)XOX<&LJ6F+aK?}lK*pjC%?E)9HaI|~u(tS~ z>3DSQl_>^bnCB!H4*eo|L)bn39rP!RD5!MvQ+R~S5Z?CpPrWLSyAr^t;(H=+_K?|! z6oV)zRI_7i=4zn2m4Al#vH>J$E56Hf7)mvaVFxNe2MD8vOImPx#XO6^^}B0GS0l|6 z@d)-}BXAh^=bDQ*}D)nkxBssA(yjXL2cG$Am;a!jBN7f_kji#SqpHGBTDw$3=JIXzk37ia(5 zl{C{m%>qP-1p{D8_jpt-i$D83R?WWS)aC2*zqd1;i?ERqx`ws>I34((4bW?9{mMjvxf7F8 z%~7WUS46*;q1B>&wnw($wNf{0O$n1K#12>69KmY(QG3pSMXmi%5oTdJO4Hxd&LHe4 zWuoAz(F{Z1rQrTT(H7YblMy8ss)n`~}B z+*-=^DgkKQcQe(AR+*+y-|YXoS4d7wjNGN)HNc8(pU~>Ci^aMbx&?Yk^uBJE`c1`% z&evW7@lJ(dPYG5VbI=nFgO}E)aEuXO#$0?a)LB8=DNy7gW3F+C(lb4D_*__=3(Gm5 zG-^_DR8K_E)91{<0RO2Cx(CBB&PW%CkU@Ir$;q{ zm(dNF2N5TT8O%6FLMznwa9ILLwzv!SYt@koo=0nKd58p(dnsrn$XAKkueA|04_r`Y z%)n3(W6ni$y3XaX2#n)QL(KGhVI3YeLq$BwoCq{IDZ zGtYtsn4D|14^Om-M>oA<4qmjYDH`HI^>l0g0OoNtDTInkIV6~r#(7i?yvCIj_^|%g zSR>Sfwe34fc|Tb|=kC4|3Qp0|D^Jo7N;3`1aXaJKT>bg`0!}F6LY9}k$i~-QFuf@< zlP#_Z)J;A0U|4MxI@bYjo&lquU+4A>>hPfMdZbo033fzbW>V$~b|~FoUX` zgb$A0jY9RZ?sx?NjjQVS8=yc;>0?BMgL=&ANjx6gie1%S?5}_qGx_v{eyCOAoRTeV zD{=M)3#kRKf90o&U2oMl`_-oSLkM*6cSMyat1Bg$VCwvgjrD5E;C1PMLgcX{_r{aaXeC6Fs@ zYpTC4h(ZEmwdc}ixJ!H&_Y1RXa?qw#3Bg*G(moAJAJnpanu_bZ^hn5;17(+1eX)0& zwmhQU>|cG4QHcp)So}qDhS1}^eF1G^SL5?#Kzo4Sbpb4#&^c4sT$k+jFpWGYYwc=? znoYpQGt;lJ5qm4E0OalpK@khU#lW|jyNg<(F7%YxoJTh*kVB@tkAox`Th!~FHT@=*&E!VfNOVtuQKa< zwfPR3a6uDaYUgd^GEdM0F6}k-ck=&V3jkPo3_ca+-BXHxd=M%cg)qrxrp0~|g!pkC z+$Y5sKWtyKzxMqLGA291N0D9PQgLf#$c}fBaL(aAG2*$zsn4?1;!H6#q@Exq6gM^t z_tD#o8A#MQ`*7FyOpf!=#JzyZ7olCsVQb(0ukU^@n9k`WuSmKV$x{k$77p45<$eX0;y^U$@FC7Xg7H)g*TOe`BqdWZ;5v3U; z9{op@7ukB$Kz=3l+`!tl!D6Lr*=YSHv15Gg*hK}ojX}EbRo)8T_&N0kMdIeTBSia?W*MP_7)c zd1kr&2N?(Lvfrbua1Hc$zEbCTlLsMd$xxo<0?ZZwpHN{^|Kat;;6P!38y(94qs=C? zjLV+27!*z1{1{QV+VB18%se|oE{wD^^@mgKCqcrZ6Bq=m=0V( z;!M(IOz-Jkp7ZpFyn*CX(_O-}Y5+*1?cw&2gI7Tgy{sv*hbAdttu>-97kaBfq&dY= zgP4-~DZTxd>(fI`K^`Anb34n_QTYC(R$uUm%$601f4La10NskdNv5z;f_4}Fa258Z z++MCtI~7AYEC3%nd(4D{%L!{Vm%folRKEL!v1o zj*+b@ol9k+|C5hBIO}sn8)nAUr@zU``)=N_U3gxY<~D>@iA&C6zWGYMm7Szuci@=G zk)yTN3>WstHJrG{W#C$8TO=_7@4}a{2Hrm3r$BjNYNkpGo8SjPJv+_k8!k~uNEkoP z3L2;1j`c0VZ`g7Le*_=g1ZLC?Vy&E1zM8AG-u=uM%8Tp+TT8kF+>nzDknI{$qs`_26k)+)Q5qY>(vem8 zFacfi)|PWgZ=Q$G_xVg~Za8xi&}h{l+JdW)E4cFmq7vxW zRjxyi7sXk+!M@$U&QCupmKcY1r69geie$E*)Qh9v&-BdEa?lkenIw-`AFIZYo@ztF z#AbtP9Gy2ic_J1XcHc$tuiWgeH}-Wvl(zTtL=RJ6uHfpvba=hkdaDU2jW;DJ#~*)I zlRgHnsW!ah%qTHa@%!<0w@lHr?C(3_oVHKIU=BRhQd9O%4L7Cn47m~82V^maj-2nF zN^ARv!(^2@9*m|OxDP1`aUDd!b}T(F5-k8V$e}^Dv1u5Gu|wU>%P>`5HL}e7QE~p` z6-#xp9@I1lKl4>dx|F+M)l`6%a;{jz6BoyXb_V8IttC0WnO-LC5~bHrAQ(LC3E&jr zBgR=ki_w5hG=*^pmX3I)OX=Vv+CIcT$_VFAJ7#E)gsiq_ADm+XU;q;kHO8}yhv5$* zNZ+u?Urhxg?vyO6{>O?<1P|T?HGU7sY`1SLjn$v@zi!bGB!?>&!M#w<20Uy<3r&xi zArVjCG!GX%ZjQfrgylc3RU?PVHygJwP1CTR>oA|kGccQ~{5@F`2L`0mf$dxA2dufI)}r5vF?6e-kx4CV6WLwx$aG9y+QcUivgI#Ahj!LX-&;<($q;_>4b$EFiV3 zMn@(0Ak-X^>vI7JTCee15)EHT!&4Vvm(^+aZ3UyW;%WfeQ)HJ9w}xY;^RZJ3`H27U z2Jxlk`kUQ~XGo`syHBr=rhL-=0?9o{51jK7Zjzmpq-p99)wdSM!qr3l}A78=S zg#cC~V1Qx)vDKkDPLOe0_gJ=@*?|ag2ubk_Ip%>~!h@R??-mD+&Y&hL67F+%WPx%^ z!=ILkQo7707C)Ibmb&ANG@mO@KC86OUJ`DS9M(az*2ii^AHOHZ`>Gp9hv^_LH!Hp3 z&QHwbbPRc3K5wWQ-Y)Kqw-BN5SS(_GfQhCQq);c;@ zvgS6)wWVf_2y<>^3&|Q8dZ4AW`637LX7Q8ng`CR2PrgMqf^xGG<{SJLo(9%ratF_A zS#-Y4pU^&d7%clpaSG29nh=XNJ!3U!B^-_(E^p$(g zMGY(W{Q0{%8yqG+nWloJM(kG}k&iYvx7{y(lkG`Yvajh%FS)2D8)t%$X|wz$8zO$5 zhd*!bX@S4>O=|&u|ABaIQ`OaMVs`XJbFLqatE5Lh;~&=TleSGDPrUxpkFsYvST8aO zv}hIk+<*aE^6J}M0Ya1w5eiQqyHE0ArywQfJbt~^CzuKBy8S-p_+2Uh{J^kWwkudac z1%i_10xi>&wwB!+oU1dfVoo=2)ga-q+BnBpU;!O@+7dimOD^5OyMD|+x{+_4eU0;s z>nYN$(E)>1t8ygW<_RK@^58$K2OQ|n{U4C-;O$E0!v}`hpv%=d^dJMm?A5(nzt1O) zju+KTeW|${mF4s)`S>M9;WZK2BUv8MyywVg*_B67CvZ2W#di%8NJcn99@p9(`hTu@JA=-H%|B_F@Bwa2H(kDObYspb=`N5%Z2cAVq?EO=2Bl` zlLd)aMtFqGq3TX49%W(~xmQ{XBnl7qi)!>{Uy=KhoI)Y=RSKT*35ZIW)sodyXCn4; z;WwUzjw`u9Tl$}3A<1LDLiQ2+rvm4{$4H$l971RGh(ic!ClEoi@;B~HhF=OIr#+B2 z#!M^hA(Nn&ZJx~rzh-in_^B?q#C>bDJeQ?z@S3iyn(w7WZN*W`H=nGJ&)$g94w`%T z(x*(0g0CSSKaD~yS0!n?38rXV(_b?Px27m~R?c{N#x?9Z9Fm^c>~HTeuXnEf+29C@ zsdG!Y zydo*ub;vjBoysH=f?SKSL%R=Tu|^GNmja*u2fF17jCl$)|P?-Aq-1FlXo5k zEzW|Q-566&T}Ml`kw;0T=Fu_CC`o+qBRzuDre(^c1|{+VzGV=a_Z9m0OB_Cfh{vXZ z>7oJh$s37-@(B%=3^r}!HYLw>^ec`Z4KRPAn9XB6WF+lLum-5a2BPZv5j<;WCrd)^ zJwZg3PT&x{`K7AzgxhxWnOritZ%sBr3CR*6I!U85?7m`j^_!-8iajrF1eYo$wAX%g zV{Cnbm*hp3#Dk)ycNY}8N|L
9@Cgd*{bGO{GwUfAYr+q!v7dzKj28=kh=mP2L=F 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%0DG+aThr+XtI#(L3)eDVq0j;If1qV}K! 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 U)EvUhlK=n!07*qoM6N<$f@K@*0RR91 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/google-chrome.png b/apps/server/data/resource-icons/google-chrome.png new file mode 100644 index 0000000000000000000000000000000000000000..e34a0e17e79f4fd161c44364cb841827c8bfe98b GIT binary patch literal 27894 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 BN)Z46 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/libreoffice.png b/apps/server/data/resource-icons/libreoffice.png new file mode 100644 index 0000000000000000000000000000000000000000..e922701013e43b861eafde3ee7dc03c696340744 GIT binary patch literal 3796 zcmeHKX;f3!7QP7q86;9d0TaMTfy9aoO~HTy7sUcr<8>+xF%BSD!%)#CR;fse6#_;a zP(h~qY>@~A8pg_?tp;f&2ui?INm-4pq+prd=4fKF>3~h>CYyyh zbn3O&MP$-I*2B*X-9zpEVTG60!^a!f8$xu&=ly%x&59?bdqPTo znykI5*yA-+m^yT0)kfrO+{A0@U^!kl**2)+ z6K_-<9}#h1r}Ulhakg#wo}Z+z&J9XKXI<%yJ;;AQUOXt4`C8BEJzjj~(5CK*nxzX} z1_v1)YYMyW)U7CfR#PbXWKB$2f@)(6O@M3}{GjOGE=6>csq6sR{=7`KgxgX*a78s* z7~;qh(Bq|QsdcKEe#Pyo%Dri0CfmLkV-z%`T~7LT5+xoDy1$>VcR8Yqa+%%he7FF1 z_wD4@sxJQg&91TxpOLetn&QTanXK_mZ{!%7mpUe=*u--i2Hl9t-M2ep5-M-hJlo|M zUlQ7vR6i0^D2={nqiEiJIa_z?!J?n4bCR-8F83L?-D386p!d*MULLIY#`y@lB=pIT z91@K&b$M@ioVl`zYXvr)_LB9RW?_p74-vO5LnZ%C@s`=J)9tUpqSmzH>80)`)k0_*s`%+X-W0=R%#z>f6~N2^w+ z42zt1#NTbD*s6W557lPEY>KA78sFHFEGu(E06z)kf{))iN(yb&5!GW$D@k+`O}jgnL>Jo9Qa-H`{9Rn(QtXorR5LdeRT02Xp9PT&zT=^R@T&8;zT6gXxT#aBl;K9M>jn z<^p1hAP`(spQGeE;23t9C7;gI9-jD&+`Y_bv|bqP<@uauoWX3kTa=s}Wr?K>aiU}7 zrNh>(-Bw1y(glL>a}@OuZ)wf~;}>IUeYT?0r?rPC*)upYp5vIDYZUA^;g`cnmP$*U zEsdHDIVTnWI266nn*l4gTINn2%l!=l{>M)OliWXydN%#6YZb%<` zZtl?lOFhhcv7Lm9KHwEb1u*)RIb9fh~b@srJ(WfTK@r0Jh%+Qgg-?`KD-cs%*i3a#PFzn)AB=@jXQAL#ZEvGwDHnqSI%DaXs*;Aq+)nv z`pJ1OYjE!IYm!VtML(u{YHH1@yeTaOB=JnY4RH2B1j>>IAi2ce+xwfCxDDbb`e6R7 z;kc`Ik^~S4TNq7B<#uk-6nX&r_tH|AStt`Yzs=@t8#@>VxaLVVUn1cfE{$L9(GU>7 zk<9f?vy}-I6RnY&M_nObF>!A%MsoX{B#&kfA9wzhzllPb&w{%4CFr-}^~2yhAE{Zn+bcHaWNZiDe}3c8)@L$sXhR@CRA%_TRA-^I0GWfZlG)kj zI#KE-e6zG;VS6ON53+LW>~T+o0d63u)|AH|TBOEwDVx`I+DXo2fmXDusX07Rc|dUA zWhd5k=n@lt6%&WFhJp=@nh}*b?H1`3 z==mJd42loenYU44sH(UFB8!I zt7`hp2~2zD#GiDiz_`)kAJe}KzfgVd{ACO;3>y*sP5XZb_{;YHGpPT9nE%zFpC|SO z{=b#2mx%c(5dSLG^#7#%TW`MH9xoC8N5lT9{hssxqLW^&MPKQDfSWol(ER%pis(9i z6872#kL{Tu0vl}12*8`20Uq`YM#@_=1KVJuuGqP}f%uI=QQN*#wA_bLmzWZ*wNWTM zZ~8xV{@OdhoWXdv-qfAdvBbEtT3IB>G4yWBFJONv6$MF$nQ9@nK5+4l;#<`xnKAM4 zexpCAaDDc~BWmz}NKtkE%=q~zj_+Djp-9Yc3KXpKOV4PP?}(4TTHg|z8I|$2tAE{i zu2V@tflezu!nLDtlQJH?BZ^%zR`OLqBeVY=(xpf=U#NcHe(Jyjj*JwWs&^=ThU0#w X8~kNk#7^)x6^dNJ3aehW_0!)0M@``Y literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/macos.png b/apps/server/data/resource-icons/macos.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9d0f10496abe26c72b27f46204f95515be7800 GIT binary patch literal 10329 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/manifest.json b/apps/server/data/resource-icons/manifest.json new file mode 100644 index 00000000..06ae8479 --- /dev/null +++ b/apps/server/data/resource-icons/manifest.json @@ -0,0 +1,278 @@ +[ + { + "name": "7-Zip", + "file": "7zip.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/7zip.png", + "sha256": "bb6940ab0408c719c97ed82e88b0d4d41d4a536d436c747f50ae7774a88d1684" + }, + { + "name": "Adobe InDesign", + "file": "adobe-indesign.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/adobe-indesign.png", + "sha256": "9372a8284f959230784d142a78333eb0f6f5145d032bcba9fb92741c63fd9e86" + }, + { + "name": "AnyDesk", + "file": "anydesk.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/anydesk.png", + "sha256": "6cf34396022303de5fbb52ed7ba14ef6d0b40e480cbf675227b95ac099fea069" + }, + { + "name": "Blender", + "file": "blender.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/blender.png", + "sha256": "ab3dcaea33bb48010a33f476ac887af4629fddb1f5feb3d37770aab9884b9f12" + }, + { + "name": "FileZilla Client", + "file": "filezilla.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/filezilla.png", + "sha256": "8e6aa2fbf1ed6987aeb20944d05d88cb4c9010a057d77ef04de58ebd5bc34056" + }, + { + "name": "Google Chrome", + "file": "google-chrome.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/google-chrome.png", + "sha256": "2cea3ac88ec832166c6932eb583151f086f19f74bd8ea65d754b68a8adbcfe98" + }, + { + "name": "LibreOffice", + "file": "libreoffice.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/libreoffice.png", + "sha256": "2d4468bd042285718fa49b8875152a8c59b5cad3171781891d80ea031f9645f1" + }, + { + "name": "Microsoft Edge", + "file": "microsoft-edge.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/microsoft-edge.png", + "sha256": "d54c4f7d824c1f630278915a631bbd8899d66a1721ce43442cc731e8f276ddb5" + }, + { + "name": "Microsoft Office", + "file": "microsoft-office.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/microsoft-office.png", + "sha256": "3d97a7d40a4cfaa9accbcf1db13c19581262124131845d31ff28161b2bdeda14" + }, + { + "name": "Microsoft OneDrive", + "file": "microsoft-onedrive.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/microsoft-onedrive.png", + "sha256": "7217923d07eb3182e60f156b9d3034ac6d0c45148085acfd719faf43ebd7e50f" + }, + { + "name": "Microsoft Power BI Desktop", + "file": "powerbi.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/powerbi.png", + "sha256": "f22933f6c2f26ed446d68eafc3f307a801052dfe304bc756d571185d2a70546c" + }, + { + "name": "Microsoft Project", + "file": "microsoft-project.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/microsoft-project.png", + "sha256": "93c7ddb9dd0a8e0c295e6c9173fc777a5f75d81f4cf67c277724ded6f4600070" + }, + { + "name": "Microsoft Teams", + "file": "microsoft-teams.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/microsoft-teams.png", + "sha256": "9bc11b6b79ff29e8a4f45ab04e6ccc984797dbc7cf5f32a158ac045bd1ce4793" + }, + { + "name": "Microsoft Visio", + "file": "microsoft-visio.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/microsoft-visio.png", + "sha256": "21d1f5359bf7339e1950323ade11923c5451cf69fa41a8469d58bd83f78927fe" + }, + { + "name": "Mozilla Firefox", + "file": "firefox.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/firefox.png", + "sha256": "eefdd01e671eef11c585c447c6df38593de0a8da52544de87a1509597717bc04" + }, + { + "name": "Mozilla Thunderbird", + "file": "thunderbird.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/thunderbird.png", + "sha256": "b843152c7decd1ff760d6f8664b1229a2d631fb83c24c7f1b09a41c1dd2de01f" + }, + { + "name": "RustDesk", + "file": "rustdesk.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/rustdesk.png", + "sha256": "d3969cd1587410dc6555d15b507b4cb9ebe1fd3c5cfeb6f31ec5f0a4027c3500" + }, + { + "name": "SketchUp", + "file": "sketchup-make.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/sketchup-make.png", + "sha256": "8071ed26f30afa52518b54f1d8e40968ce39947931b31f075ac5e9de3042f3a6" + }, + { + "name": "Slack", + "file": "slack.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/slack.png", + "sha256": "9b79e3004cd164098ac9904eb96ed152cadf6fcc7af0be0bfb3c838552653e5e" + }, + { + "name": "Visual Studio Code", + "file": "visual-studio-code.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/visual-studio-code.png", + "sha256": "f43ac17908efd0b1d2d42fe98acddf95c7cb4d41f46bd9ced5295c22d864f071" + }, + { + "name": "WhatsApp", + "file": "whatsapp.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/whatsapp.png", + "sha256": "c8df7f4c6659f8bb5c3153eb32e4804e7ebb1d1b01bed5b1a90bbcf20b2dd45e" + }, + { + "name": "Zoom Workplace", + "file": "zoom.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/zoom.png", + "sha256": "9bfb06b38c4f94d9e77154ee7925e6702c64c3ba7f33d1331cf3367d7b74ea25" + }, + { + "name": "Adobe Acrobat Pro", + "file": "adobeacrobatreader.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobeacrobatreader.svg", + "color": "EC1C24", + "sha256": "400306f6cca97d148a06217c20fd8ab1cb79c9e6c04955f80b3987568dc4e157" + }, + { + "name": "Adobe Acrobat Reader", + "file": "adobeacrobatreader.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobeacrobatreader.svg", + "color": "EC1C24", + "sha256": "400306f6cca97d148a06217c20fd8ab1cb79c9e6c04955f80b3987568dc4e157" + }, + { + "name": "Adobe After Effects", + "file": "adobeaftereffects.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobeaftereffects.svg", + "color": "9999FF", + "sha256": "2a0e3ddc7669ddda84923cda885fbfd29b5e33fe6c89e1c44e12b7f766edde1f" + }, + { + "name": "Adobe Creative Cloud", + "file": "adobecreativecloud.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobecreativecloud.svg", + "color": "DA1F26", + "sha256": "997e7b7d5df84b34260cd8d7e7fb1a47b0b4e18553afb63b4dd5140002f61a77" + }, + { + "name": "Adobe Illustrator", + "file": "adobeillustrator.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobeillustrator.svg", + "color": "FF9A00", + "sha256": "2208ddcaba56c5274d78b76c8a26ad112a9d96bb15694131062b755da3f5cb4f" + }, + { + "name": "Adobe Photoshop", + "file": "adobephotoshop.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobephotoshop.svg", + "color": "31A8FF", + "sha256": "dfeba8244d53140b190fb7ce9018c4c40ed06437f4531829b60b2bbbd0549f86" + }, + { + "name": "Adobe Premiere", + "file": "adobepremierepro.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/adobepremierepro.svg", + "color": "9999FF", + "sha256": "6dc7bceebc16c8983f5aa5c632d8ac79e768880960ffb8ec16dad9fcd08ef2bd" + }, + { + "name": "AutoCAD", + "file": "autocad.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/autocad.svg", + "color": "E51050", + "sha256": "4506c09ca1e1e814700c49eb082b202961cf509f3e006a8816da535401c51339" + }, + { + "name": "Autodesk Revit", + "file": "autodeskrevit.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/autodeskrevit.svg", + "color": "186BFF", + "sha256": "0342888385ffa42e9648bb5acd48d2bc00f56b82f5fa842af01f362047c5e643" + }, + { + "name": "VLC media player", + "file": "vlcmediaplayer.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/vlcmediaplayer.svg", + "color": "FF8800", + "sha256": "16f94058eb0e5a70d7042fb7fd4f04d4c372a5e8297f962fe7ef7bfcc1ee2f28" + }, + { + "name": "Notepad++", + "file": "notepadplusplus.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/notepadplusplus.svg", + "color": "90E59A", + "sha256": "88bbe31ebfd46a5d12fabb1970865e76d988a43e7ff745fe84faf8a033a27ac8" + }, + { + "name": "Enscape", + "file": "enscape.png", + "source": "https://static.chaos.com/images/assets/000/019/272/original/svg-icon-enscape-35px.svg", + "sha256": "d295e66143d3daf02cb7fe3a68c0d5a6d57973b46112fcc479bd2d0898030091" + }, + { + "name": "Everything", + "file": "everything.png", + "source": "https://www.voidtools.com/favicon.ico", + "sha256": "9bb027221fd51dbec71d112acb849eac7994a1f4b1d3484291171907a94dfca7" + }, + { + "name": "WinSCP", + "file": "winscp.png", + "source": "https://winscp.net/assets/images/logos/logo@240.jpg", + "sha256": "96191adef0ee1f1dbe93dbf8cc714aff809049e7e6dcaa711b3a9b99c5633f62" + }, + { + "name": "WinRAR", + "file": "winrar.png", + "source": "https://www.win-rar.com/fileadmin/images/apple-touch-icon.png", + "sha256": "9482736333eeaa0fbfd029dc0bf3c11824b852b1a7bc92169c2679f9e242501c" + }, + { + "name": "Nitro PDF Pro", + "file": "nitro-pdf-pro.png", + "source": "https://www.gonitro.com/hubfs/favicon-196x196.png", + "sha256": "775535d7ca765ac1f690b22a42fcedd156c38af25a903e44451c65c1b5476bb5" + }, + { + "name": "TeamViewer", + "file": "teamviewer.png", + "source": "https://www.teamviewer.com/etc.clientlibs/teamviewer/clientlibs/clientlib-resources/resources/favicon.png", + "sha256": "4a7b2794cb58bb7e2bfe1811fcaeefd15240409957822696dd2f1b79a3c28c07" + }, + { + "name": "Microsoft PowerToys", + "file": "microsoft-powertoys.png", + "source": "https://raw.githubusercontent.com/microsoft/PowerToys/79ceeee01cfec217b61fe4453940cd73ec22e8fb/src/settings-ui/Settings.UI/Assets/Settings/Icons/PowerToys.png", + "sha256": "a4f79a171db4bbceb4aca7f0273314405c95beea1e60637496e44284c6283fd2" + }, + { + "family": "windows-7", + "file": "windows-7.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/windows-7.png", + "sha256": "082fea31d1d82d971f857f2ffab5bdbad5f67587c5946f38b78a473bbc1be8a5" + }, + { + "family": "windows-10", + "file": "windows-10.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/windows-10.png", + "sha256": "f50535a653652a8aa59f3b9e9238c1c44cb4b0df0cd1b65a1a65db187589cabc" + }, + { + "family": "windows-11", + "file": "windows-11.png", + "source": "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/83f32e08257b66fbd971ac8d7645f5b38d52e85d/png/windows-11.png", + "sha256": "fcb20944c6926ebe4d47fd1b74a842dc792cddafe7f0a7d0ea2d61923e868322" + }, + { + "family": "macOS", + "file": "macos.png", + "source": "https://raw.githubusercontent.com/simple-icons/simple-icons/13.21.0/icons/macos.svg", + "color": "333333", + "sha256": "35658f6e044d87215847a28dcf67f6cd75577ccae09a678a38c76e0519cb2964" + } +] diff --git a/apps/server/data/resource-icons/microsoft-edge.png b/apps/server/data/resource-icons/microsoft-edge.png new file mode 100644 index 0000000000000000000000000000000000000000..191356900b7785d36ee34057886d5ff2888783c9 GIT binary patch literal 100208 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

e!~(kC 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⪚lN_35w z6N@V)i!~*Ak+ZCOt=4gGl31GYj%9>`^^%g%*F_fHN6wncsFXz)R*#Ek{`tqD zNtu4qGk7`EaBkY)QJgTbFX@rC16=c~aO{(IPMx-jtS8G=p>EQITsjw;-h0ne&|z^W zOKz`6lW0m?7WcRO&Hi9BIIY2a_|j6Y%0(FrQIMfZE3+%e#bQnOsxA>LH`b}Y(G&I`D9`H^wx4fJ4mCQtCZX8ADucv z%$*`UK+8QcLlBlx6@y_q3WDxtlUpp!@t4HF%5Lxc!m zYRzpIwVu>J+bi?n#qM8t1a2Cm%(_=8>Aoe5_YBtU*bUFGzW!_6fpz^VEKSjNNUK-HzD_>WS zX}mF5*KfC$+-`--FGTThwJu(g%qU(PRW5eZo0wV1bQd)sUGoseOGh}=?YucYM;V=9 zUn1h814i5bH_m$#oSq4J(ELF4m-e_wyFmX;xx=v^^z3Y&^Fkti_Ktz0Et$H0P~2Cl zrcGscKID~>+QV&kX!brI<$1RXu;t8yF z5?`)E5B^D(^HfuE;dGl(1SuFpR(Da?|v9z8#vV{J8BYVyUnop^0 zQtkza#>CI8)&5q(jiq9&wYm~Wp(lmx@;M9l5pm%jQl3AXe<QxX^s5NABGS8VDQ&&yFc39#TQtw$;&N`E{_-hR1lj-4R`iXk;|V=` zy@1vT!npg79Czmk;Ja-BYPV3i*l)ls{T}1P1!=w|d-<`~nqgB7zV8J67e8m_40%js zHln1u9aT323uk8b4@jH z;~8q|dZZ5M9$$pi1?8qKO;~;WTtc?%NamkB_Lf_gk{MOsbF3ee`ERqfWgOHE`M%li zzi*XCK3yz)NWq>wT?keJZV%{w*98W3TM*3t3>i?X=Z@p^y|TZzeRA;L(ARSFXp1(F*z$rGlQj!WihO}nP#%TRe;JD$r#$@dap24gr<`MvqUyp8Z-tr4rez$yZS zA>6-HWnrt&aN+i8kC{!^J;g;yH%q)fvCgEuugN%zTfJ^_vXTt;{t7)Lruv5R9)*ck zw{9eqB=sABoeo~VR@+oY17YJxrhP0IK2TC$n2L+s0#ymlHZVRB*S~Wfz z*_Jj?N3n6+e0xXKM1HeDRT$-R;^NmkmkWh&4vAWayS=-&<8BAO{odFc{K@-Puytse zsVeL`pm5H%D)y;0%`Wo-UdnULKw7zvRXIh=^&y)25kxY0g>PdrFDt9>{yUgg$nQ(0#3TnK|#=&m~Sm=EKsd zKW${-;ISWunIWvXJyZ1yu)Ux~XAMw`B({PO|BncGeMU0eqj>nzjeIEa=iB9+&}LnA6h*GQ!k8{%B+R%Ei~F5 zfBB3zFz7DK2fAm$Fp3S4L#R9w;}?plQPBjPxAAJ?m@(NePM;$iN#h08+ z@u(V{=3cn=nqzdGdQ-GLOo@J=QWCdsJ}dRjuOjsgzi*9}1;&hp#J9%Jm~&2zA4=c9 ze#u4|5<;sp1d1u6qY5^+J|pE`;qu(PMg;pCZ$?1!wCQRfD(sM99r0J;W2w(3o4x1m z`S^2sajq~PPaF>Ub9T{;{hY^RQ_E3o`$EV)a#KqRozN= zkNlXB=ZUY`b>f4Kd9aq=cw-}#y?o0bn*F#&#IF=T(gMG8lOrRkd+c)M7auBE8}Q`x zX5oOh!`mf!K2ch|>dH z)f@^)6+C|@e0I2$p?1M@50<6{)Q-;P2Bqt`R~GyWxD_%C1mtZ1Gtn+U842068O2%} zpXD!3)Pk_W$#s$HtFF zc2|k#y*H|7t^TM6cRHm-KY-=*gw*(s0{-a)j5v7)m8SwS#U_jLI!Ax%gY&jxx_wYmbIHEhkjjgiS7OJLa zUq>CxU=XZbv;6le{iSLolXY`LCe3KH*Rir>UyyFi-I;669W`OBxp{C^KA1qc4=#{E zdhUZeLH>QwNi?(8N1zfqsnTfAVXRDsTMphP10U`bdK~7$zx3>m{gkX8Wo=QXTGoNk zdDyK?17WhV!_>40l;m51n3w$PkoI6*ed`k^cjRiL4PHD{-PRuA`B-A+tuI! z;SS6`XFUVOmw-izz*5KG?T{y z81P1SF`bv?*At-vUIXkHfMSMs|HgPXsDN^Ln#Szw^J+eSHEQ-V%@*86VZW$wU1_7s zBNGiNtC3swfV7)m+h+NEv9`QAY2A67bEK&&$ZQ&7MQX1->&JCd1iSU$-R+K_>t#ev z-d$#Wou}hJVwe3;Eo*qYOxJXys0#r(+CcK*j=}g3|FKf;F48)m_s&4ztH3%k8vus4 zT?+mhEU%vo02Tw(`i-sSSJ~F|PS|AA$VXn4>k1M`z!YK%6lB|v!sS4Kf*ehNR`d@% zFR~AQc@2J>(j#y^^9;zM%`O57jdoDxJA!Rk1$@ep;#_3_`w$>-S%KBy^n|uKSy<3CucWu&o)O<*p3)@(K9B=0pfsf41tbTx~`hCAnB94B6ndK^Cqun*(ZDhri$e z+{;C{r${6$2!Ihd;fKS2e7I_$LfGhURwFrAXorX>$$;ZGd%)P_k@Pm8_Mir|geimd zYFrA~A_stz7D%4h%=9BFquk+p`e6b0%w;k9u&MoZA~^aTl(*Ufp8yo}H34jG5a@=_ zqzcxb7`@Y5@p)OjoqF0F(z;E9vO4kbpb9bG8VqQRd6$b0E(ZZrIj~Go?I7SEqcW@` z46FcG4xG*oe$roh_rT0^oBK3!`tI2|Qc}x$E}1U_y5GxzPm7a|Zp#HbB1xk^zQ_gq z^H~;va(Fn2&N7NyD|UO&Rr!BSeR()k-~afzcdjv6Z<~D?Z4@HgkmRC`HoZ|OjI4JeqL9V!d&x7 zP<=dp1^9r#vHttiza}eIP42=@fhHAVYWVBr0DjMtG8p*sk>G^Jld07ndBi!{5sqKA zGRfVA4G-gfX96MOI~-|tpoIkR3SzMivTwHo0QkYBFHe3lQd7fq-%=^Ln@5)ac~N|$2!bxNwbj2CKiUa$ z@&vIZs{sYi?t+p)jx<1B0GjsSRX4#W0T=lBr4XZ5%YhOjd2kU5j1xz|cp$Ox=$x%Oe#(cM-p-HeI*u;E&pM!A%Ao^G{Ar z7e{vGwRZcr3wg_NF9sEikFL|0bJ)FNNiw&t4^=7tHGCZw8;*u|34zHC&=Z2C0GA+P z>erjwIwtncAAIwLoSuBz&1-9y!N9xCe{N67#}3Vh`!v{!Um~-IUuhec4yRf%)^hWM z3fhaBBnYi^xk)^xASm+bAx>wkSlA&f_qk%bt5UuBdzkbrmu!0)G)A7%?OPK*5hj`3_M$9RswkaPk^pWoY_kxP&0=V8pb$u z1wtamN?XUH{Spd!Y-ZoBV5RHgt7!8(CulG@Gsh6gG%a_ic4rJl(aqzQ#l3sk@x%V3W@{JM2z2Fmn&dp3w zYIZG4loMiVlRz*TnC>vLBrRF0nChNmH#_ET3y#5S_UxAP-eqLEds)(A*Q$}Ihw@hr zhX6_!wkoS0<(GQ#R>HGh3LvS}!Bzbm_?fVFs#IaFsN59&YgWTqHvK}-+Vt#wg* zfLW~eHRZcRb1+BFnnu9!+t|G`11SJqS0l=5Rm3^9l zJA3v{9{aUvM4vyM`K@_l`Y*QI2k%R&$UAMO>U28GFOy@FHC1c_@l9| zsQA)g#n@SS0b`tm#-JgP&E7vgQ;<8rgXM8kNt_SdQ{fy)aUlQ^fN+i4`R>zJ(^DnN z=aeUu&z0k0+GFt!t+V^her5Zs4whEiwU6z#uN)wOxJd>D=t#Bk+_E(R@SW)CIdJEz z0jZ~9&yVY0^4zsX*AiLXp(y+24b>5mS{gCmlh3{lqUl4ZbpBME^2#6Uha8c|X@ zviaPzZRz;~o-(=5#gi7>x&*f-h{p#^mWcb8?)-9O*E+y4n`7jionsXGF7||cNv<2c zbM1ghZ^QLub?`tDS=V$C3p;pTFUCe5C(MEh7WGz_o-n0>tW}ulE#- zPjhRmy8W(Y<_-jZv`Y;&p`AXR5ctAQu-Nsbnf{Sxo$XJ)1}@l~oY?|EWe3l7Vv^@M zMU3hIKkmK?+>k@XtEq;2Sm)d_e)4nK9=zK(G{&0ZVK+o=>g|>|c{+ls*jw`O= z1EoW}{ry9{&smd1>UJbmqjG-r`9Ep40=jdnVVs>Vg{&KXhMN}s(i|dDC)7N&ev_JH z`G58)|8H|wVsirQnNGXzuW18i@2->=yt|UR-ng(=>!7#2ZR^j+3HMo9PFuTvWGg8R zdj=!~EY{n#o4WR#WxkTXF5>kX0YM2oPgfEco;FOm$rWz{4t!w&ubuag3M?mVF`-L7 zf0xbGz~z9}_%+g|T3~nH1vfh^M&~E?MTJ4rWjS_U>4507E2#rYg(Y>t-hOI7AN$;z z-oN+?K6e*V&GcP2TpBXeswrqz^6rs!|EA&MuzeR4ljfpUc`NVlRw9N$C+mISrPMd` z@@$59+ItqOEi-q^nORfzf2U+l|U3v$LMB0;%{vV=D=sVmt! z<5J_s3kSFC7+c8<+kC|4;M2^kKbwwxJ{*10@sH=Z)ZtAdTt#1F1zW*ulpW)Hj~+a8 ztALl6m+zOGndK*vJ|zC0!JFqxzjNkyxLw!p+~2#qT<$~;4l~x|{ZUS9c706(wtB?$ z0q=hh-W*~K)N3=|r4Y@D`}A%V|7v>_JIj+qQ3fT^a^f@qpIq=`=YITwByK`mXKTUg ztv28&am)yPy9vnbSBfY?-Kdje;};))9`ov)&Bo%?WsJ_nZEqZH79OQsP&4Sc zA9VNCLEbip_}n$K5NC8+jUSYCuwl@8+vlCNrhJ4pj#@H)hVq5$h2~@_^cOH1K669MGx>f5Suda}%=l1ku*z)QEdAjpK zODZ@@QVqqbgxMceNlQ9Hie<43I_H859F}DDxDpp1mY#Kn!1~T&k23{a=^(T~Yxz&z zj;KTLXRedy#%pGFuO+6w%X*5#gvm@=qCvYd0gE#<38)lk@gKVYQLO;Ci+CvLJaL;V z4$&L<9TLmFs7Uy%$v8FH;k+RK!w3|Ts~)b4c|Lx~Rgy}uR|U6`WQAo5nZK`wKq>kU zlvrud?y1A`(t>b&w$Wp>#4T7Ya%_X;M*7TYKJcJ7k^ahrlYC_HvvHS$6}gEYFNvGn}M584+_-GiDw^c&9p>Is^S4sLCyb!nEKO7t?GCY2`boQJMI zSdFZ+b>KV+vm}3FSqnVi1KP;oO{o1d%0WPY80Q?JqL!WqV!-+Z(Rhgk&j-G<5AM_} zx`*ycX-W&tz7QqElYcA%UG9`g{62If9y7p@mZmM9ru<)9=;r+^53sC_mU>;iPX|4|`U6ujzJ zgYcI3Y}Tx1GcQtRC(ZelWt=IkG}RRKkw8&-O3jNeFPoH^el|Av@l;oijwB)h0cF7^ zH_iVeCEwDK~k2J$hz|jCh&|^hqkC0Y1hPd@dBDe6him zgA&_wjKz@2&-F`(W9fMC;~P?ncH%)8I~ph8H-^Ec(x>g7(Yzp zWu)PNzv>o$0D-5oB~eGKeC8eGUn~+f)%T(02KoaMit15%`9iM_r;ZJL@M!QM8ZBKp zhs#ws#)rjN3CsSz4X9QSrojmGosc-i8xGfI?`~9@>gQ-#n5Ob8#=JK?K_L#3Ot>fB zc-QXz8zoYP0!{)dF3>qIS190w!e6k#Ix5KV<`L5umppJD{*Z0iBAfla`8w{1VV-+o zNt&U24QwsDOo+yJ8p2`toC@~u#XXxr6OBRme*vd>d2PH(?Z7%c^;*l;}{OO^^2-Jrt3#r{zY^8omTA3VRdpHo)qHU8#LM_`TFgCCZ` zeO)rTL(?SZIkDaFo9Ebd6-<&~w9`tMoc}+5t)PIb4L$20@>ILI1E;WRMzRsddw22kHUnpin3E2_C~?`-w^`z#2A@b|3#m~;8YOhzpAA(M@M((J#eBy~#d&082jk4>gBG>D z!l4lzkn~yv9M1js3e^|jj@)UeckQ3jsh|>hXO>kZZwHyDxOpjWw8e#_k$vv9F0 z2o)@0KjqW2aNI-gf9i4z1XfN2Hn^!QCY5}NW4;{T>*y2n@<#;Qe*ed7hZy1=Zf3<*%9}QbficjJDq>a zKU#~t&ec;tIa{{X23I|g=HPsgEJ5)Ug5p8{hqwknwHU!gjD(+F3_d?vE2oC_+*9y2 zKjo4JLMeeR9wGB9P~`y1#J&DMsMQ02yBol@ClUabG4I_8NMUQtMI=%MDVH`Q`-;yP zt`*EVD}**VY6`N*;ELJ*(P}w_$IKS_CL5AKf9GfNS0;c=^OXq+jQnMUEfa*>y^OKD zV(==!;)nhsNcRLR9p2%+XLvEQjnxhEW}1{em&1)-SprEPqFsm&DkGrMs)Z2+`agnv zB7fR4n?7K#(++S3~VXp0GC64=HDbTdH{S7 z2h9GSXHHzzZTlI{TxstJ1*5SVq@Ie-=+hAT8Fd3w83E}bmV+36T!S8|`d5@ch=TTXbq$6#aBtvQocliFqE1!f z+WJlI)0l39pc|2ReWsjtBb*4~-}m7Hp!O`4)g$(o3PXJ0S8fM8X_hwhagi1>n99B< zR7F~U{qSu0j-#aL2g=BfJT+?Y&?#c)sr)z<@jt1+ zx_yJM3B%a`Lxcn@``LK)g0$5MUW51dn_74H(n41pDf-#C!HI#Os3QfPhYEA@mMrIL zxcD<_{*DB7cp3eLV-7Sq(z#E`{Y3V5U}1kb^Yb-_@Cxj*T4UJC44Is@j}@qpBBJpu z_?Df3(s3hPj4(oQtqYnH!w(mJW-hHkEr2kcaYY($h1`UGoDxcY!+3G`j zbiez?Snl;@uJ+TYBBJH%3|XU1kC`|CiN+kAqknC}1ACnm#p;EkCVO6ksQ#5= z%`b}Pr#%Y1CA;NO8%m9B;cj`LVuD2m9Ey>G#l|u0?oJAkCnTH}3Ggv{#wv-iEOJ)d z>+_G%bJdkQSnDG3FB3JLysJ+`moxD>$8#sly(Qp&X=f-%fskccTZ(lJ2?`;jP1%A= zM*{l+;q40@tE<$K8JF+PGWt{7F8;b;E--XG%|XGB!H1%fl*FLwI_~Wcg`+7XZM3Nd z;I4vSLp3N$7Dkwlm(R;{JDS!Y7x&2!tL<40%q1D_-3~6?H(UD+y(jdwe$WIXpmZuy zdh1|6H&J$}Zc9cw$5%*hOX6-5LpS^eW&r-TWRReEliU@zM{AWXGA(dsf3=(uvLp3hqaz|0BWTxG} z6(F#6Up?DO_pCC1!4toNfG2EFG}<~)TpG#dUar^$(kBvo zkG$=S1jLL2yiV?x5oZG#8Qn+DUs{6%ukv1{#RM)oROi^!l-|wDmKGX=L0UY!ec`B9 z|AdS8Qt)tSfqB#p(fOzIEgPz(_lw<{wNhxFO)6cmxxqsQc z2ExylIRsC5A5LVK1l0*Xx}|+5G)$iP?a7o?Tm?I_rNSu`+%+7&FCPwZC~)G}P*p-? zI3%d66Q!yxQxeYZIZhPM2%Odf|Kx`YpZj}cw0LnuYE-rFi9dxY@kD-6N^-%-Q&`4n zLvL&_q3WZ=V6jmQ_c&obd-z#D=C+gi4dvLaSX$&bACcz_On$VG)UVdf<=L9&K1TSr zAxXE8?)uXoXNm#j6pqhZ0%HG$e_+@ZQaPpvRgqC5XeacdI|+MKzo4%>yx35?)9_70 z>^2qS@onNy8k~@ddg5dQKlO<;iQZD7-Ml_ zuvtBoWioI3MPoHG=uFxHC=r{HK^Ia$qRA3rIKlw>Dw@97(%Pr|_Fu|Qz97g5{m9>PV z1PKg!{t=X9`_I#gr}U$w3?I6(x0b#VXWm~wvYckb>B2!UHO99qFZS)QF_tC352&d9tp!8O|ewrK~WR@pRJDoRQ6P0O+AsjjGZm=@LqJB`13NVy*!E} z#XKG>JbJdKv!~(}br@A2s&bh1L!8`6WLweI(JUN~Oky;x!1G9Q(~lO8^= zP_ulXO|VU*XOCoPG=Rhu=q-+nfU`vcunu8v68T}<%C%wjo}gr1j6-CT(*;oE|^S+ z2hOo~4xiua+iPsT#+7t9TBYrmFsBt;To$S=U5q0>$h~H|Vj$!AYXP>P0tZ?Gc8_ zD9c^MG7PtI07;A!kA&d*T*w0*v@!;Q$fm-){Yf?({w6~FB_-G%cd}E*>UJ-#n~)C> zE7WKOL(GuF!9K`!Zn{u?(O z93be}*Jz)=_SlL;|$zzR{2B|*4N z{Z&2tR)Pk#Z;f7yVj|`gv&){G8s7S^@~?i-w^JxyA}Ru&B0|RaR%tXDHD@0rLS9R1 z%t8Ls%xOD!jF*vO{x)RzIw+oT^5Wc)J|OJFklb;CzFWA zdyH?>4XuS~hZvlm=h`u%@P@91HNOPiX%YCEsTcIP6|hh)G&{LvCH$fm4sEO}`r(Gu z&c9l&!AMgL+oeuuRyDAvYGhNKvD4hcD*3BotxtKHfu_xv{rmoAA9G{#O~Yb68xhFv zO74Xl-=*He`pAbc}C9W97*5rb)hx9z~YL z3iD8GyKK$uHY!I&(4X%WK*Y$#5M1`9mkilhzJ-_Sy-l=`v(_|j?|Fv%oe{>%C~5IN z>P1#QIrRN;7(e7GtQ84-!+osONU)Io7S9;rnn%$)DfCeMgbfuXdeL)sONI_Xe27FS z?mCs@(FT-{5;buMoPRiSpG~UBIkiynnfp-m1cOK3eJF5)h#`gPZc888u}Ls%9c4xy z!?z$5o}905Ormg10un^UZVICiYrPPBs}|lQK@Y_;95501i%=*T5pu-J+%RoB^LtAn zZRJrmU$bbWeMnEu%+UkpohBB_4zEJ_jbh#nN9>k*yAbVkCdV|a_lXJj=MSP2!BYbV zVV)rU_)RJ&PME?32H|$_F5(2s#fO352Td|aeU;D@ouhOzW;3AD&Y!i`T=dEJ>z+<$ zN%Qia^-cTva*R;tXI5!FtOTLOOQ08_a;Q>D(mpL|v7eQxxSBK-#?*!KAQjX-!3YG!Ayv&8mp3wJ8)y zH~d!&w;G;5vb(D$45rY}GN}JEzHLi9N>3K1gkmKs{unEN?`K_i z2+3D(S{p6{8?#*z($+FQ8S@yTu1KE~oT|4MOScPEr-i&6(;pfM^)pI&PUw?sx&uWj z6%g5|=~F>_U?G5=e=2&JU|t?3I7$R0yZ19gI*F~M6zZFy(DN3kd$Tbvg}nYRR0=7U zDB+W!vO=N5lRqwg{^TexE-@$_qykvG4X;YgCJKj~t~|oeCQ4UcbH;A$yca`lzx!_0 z$=Hts$=DKI9}x<_6i{Jqf^VeMY;Pq&XTQ=Zh(sK6 zOdY+B0+smi%|fG-;yGbnA99g&$bw>jT>q8?zPzQXjO59n&`=g@>dsP z`yB%hO?-bbMqtHwD!EuSW9vXP7FQ3IZ%yQbR&LZdb#8mk4yD_|H7RTxCNM$W3q@hU zcB}XIG!NI1NaM>*S`r;4rOD&p`?JN#>KvVKlwWOXc}@4crHqkFi?(Y9PA8yV$wEBI`lz| zV$p19s?AlL*el&w4J~!4)eYCJm3VQvo=ZDXrftp-ZxFb~Y%>^cOi#&2piOA+CP8F7 z4Tky=BkAfYBQc?jY9W_v;pw~7Ie2*ZZ8}|RmtyoDfIaS3xuAQy`290syUGEL5QXjc zUZmt2^i+kyM&_rVNj#fST}zB8Mp+R+U~Vy~hwxk3Doa)TSSk7rH&Ey|Gx8uTizzrdEJpkUFJcwkS!WT;)}S+D_AnyLRjMKmFa; zn*9Y3?Qhzan%kVt|EdXbUZ`&NJINA3YBXTIn;~M@UyD>vf}hS&SvXXcaqmzS6+!N7 z9Z^@0gcTPxYX|$T9+=4S9M94+%nW8*3D{M7AKF>75Pj)di1NJRmmHj`6y8JYJ!;x- z2veG>9vuBMpQl!Q^zaG^5+&yOCDgq0RgF--b)A5EwUC}Bc~^}2Ls4Q>*jO&*q9l-L z8PUEo|FoT+T(;>-GWW|SkKbxar+73OArwisIo#Xg=YFntGZR1f;l!C7N#qihTI#vy z(^_hx{z^ng*%1>(u2@m2=Z~!r+7*C_lPw*Tz1;Rm<`0+Vaa4kv-U^kcyl6;SfDh+? z7P69MKX^0v@L*NXcyZ=~^lrWE#Z@veis*d^Ifvg8Y>Am=->^SQx~703kgZbu>|*ue zOD#PX650S!K4mosA&#sJQvp69Ez>1;)-@~(oE$?1S4`sg4ZWPcsG9(gW0!gX=n-N< zuR97`^0#GfXl#D)h!*Fq`>@)*Z)KXz(GE3_3(;43{J;5*y3((TGO2qkC2`;gVE@wboxN(q-i;%#76p}|RE758O3G6QNkgKu`8Yvz|Rr{9h! zioNe9xmDR#HKLxlX{U2uVf&-#yXgbtnr3BsGf*Uz(#H&?<;hH~O?U1VjeX0A6*)>e zYeer$UjF!m&-(+?RL*9}ix@$-Z%z@RbZv1DoRd|J$%}mIm)#58-$x&>QoYNSNq1i; z$jtDK%gq12Z-Ht;P^{{svUzWYwB7b+7bdr8%r`<%ZWiaqk%goqh6?4^t+hh*C>PI> zzo9IP&FbNy8&oCKrG;9koRR`_>4!9*wB%Bo!LGris#9Y3huHfY?cGicJ1=mI2~BJ= zRmn@C(^pG!Z&=#PdMa*ckx`Hc`fxWdh$=)Xjzf;ByuvI1ocu~1ohuM?iMJMVWf+Z; zySGMsEPXHB{oqjJXoUQw*w(h8;XA)$_iM@$wSeBpl|*0LVO!1fw?1vN9_TpeyJqzf z{*EgJ#uL4aOWEt+*-w)go0A@|AT!sKWKsGneDXO3u5Tj2XY%fuo;4CvaN7J_s-eHa zX|zH~;5GB%LHB*WcT2KP+8wa^6DWH@Yr+Uc-Z*rpIjoa-;d!iUuo8jfA9S{2(kLn- zUv|@nZ8-d7_eT933k|=WBOEb7!hoFDcw;^YLxO1XOAdCjN%eNcjY75KJL5J5$mr%M{>NAeQ95LbYCD2th9upycO$aFK<~w~?2CDD3b!yLY*Ao2_;LtjKqPtI)cQfS8Vz#sWY?G!<+xBAB zuf^4yWR&GAYvhQ%YKLz1xE#!yXjs$SqkHd^zr2AV2|T?Qi;2I#X-lfd2?sxZfvMUW!7o(WKcRPyq0^lg?}N5#{FD!tcbKLf~u{_jaB9 zwxlytX(Mi(M72ZnRM-6WaKo>y4&^s}hy4t1`wy!f`PMmBFF6w>O0aEX!JKd#;t0K$ z>Zu~GHa>d$smD~3;(iH5D9;bbRj;~nh!JllfGnf&YVV${RLjU8%{Scp$tq{ujhm$` zH$9LQgqsQfne*FRTzA*+xyHq8H-~d~CG=hyn(#c|-4vbAWAhRX=Zh5=ZQ2Zn8%s}Q z8xG$RUr5TFzEhuN;J+sCcZ^})G|Mp0^-`}h+wkl45P6rZbG}Lw)8ca*o}P2u*{aH( z*~&dmoM|JSTqOI>avaXixq9g;*Bb{;6!j>fvq5@HuC(OIjq_A3^=As448y+0jNtIp zNW;1e1AmpYeok3ZX5^{H;t-#RuMvuxV+mqR!u2TK#$EQ&dd5p*q%On1i7?b_BzX=_ z%b=AXgyGg%1k9*AHH_Z4I>(zi~{si*J@^ zyXO1CE`k)$&C*R$$_$Gm!S=xksgXlxk5tXQZ;>2!m~ak?zR)qolJA(NE;0STsnz>D zMpqwjAGO==d(B&OsRK(5l_)iBJh+mvPyH3zYY-4C#EqWZru#nlr(#@b+MT%8@__xV z?QO38r=+Sn4G<$Dgo!>vwTP~G9pThWLB$T;t?*hYecsM_+%R1ivq6{_-~Wjv!=-8R z`;XD)_%;37{)%Wsqx2+v}K2{HHCSV_R+|Jr=7Im zxN-2X95-ZDwOn%kE$*G+T_X?OXf1thai4p%9y|J|D;h%oJxictQU_aZJ>2xdx>2APYCY**Sx&<%`!B_I)$ZH*AR+V~Bpw9akABp84YC zE7YA=GQRn$ca2ppy5e(Auf3a4{k73xKPC7>cQfn6-1gRwjdw>)oP?fsr4GGOslF#W zH1pKIsN)k#D(pLl3$o$X)p7ICGDVTb-M1>!O=vr*t>Lc~*j9qs?R%`JPrkS@ruc!t zp{MlLcx=)Wnb;t;Tiu_Eu=w6FPrhcNs#eOk>nfap)p!2!{>|933z9>`;puRz2st5A zj&UQvYutCbOXwMT{@%c<=JfFZlbo&8d%_t7uXzg6PZ;&zmM!7Pf8tKt(CAlU=RK#Y ztY2~ySv#0BOU?{g>qs(>BqxcG2|OPtyw}rJ6+ZB@8D}h#jw-COS8v;>FHA63w%zWl z)3>YsrCy4Nlw@yHI`j^4-^x$_Tn^>Bg7x=UKkg!ho`Z(hZ={??vrpJB)M%iEUu}^6!LpChVW;!J=uUKn}2m{d+v~TwNoy) zKHIEM9#*L1Nv+|~;~z;fs^N~cgOOcHb}mx)$k8NWAvg3^V?&T{xkFHBIb*e%85BN{Wvgm zd5zSls!*lvdof${_Zz95ut}G9rR9%Gtla^yFVB1BSo^M(o8xAm#bbq@YF<8m++*rWx<5 z?m+67Ri@^9oZlB|(+Sv_xp6T@CtP^$MnLT#k|HfsLI8wpoE z(R8XRM-^9T8Nno+z?zRRm@J&IYh1V=+LP6wX`}CNssP{Tn^8-CvS>iEUD=XvZ5KzL zEc{gzo@;ZwItO0Lu9w5!_WXcRy+C-RbGuq{Pl1YKg~boQ1IEfVERLb9RMJk~Do+;d zzHswcRgQ&Qmb<4nrFT5u_LN>JdmCy;j8?EBMvFegZMdW;F7e|oX3ShjP_jx;{^~+* zc|-5w9UN{$%lB5Y`cPxv%fX%%i(aMFo0l`zWVm`l`I1wD9)?}=_f76%u1uQ&P)J}yQ&yI9g)6rr`~YG+PS?zrBy&gVfRKy zQP--u`Y{Twr_z}c*if%`QEUarl&|V0;E_u!xZCgI{%4&7Bh>Le^q!&I`3bmq_|Z)6 z-FF5geg#)=#Ya}iMhPin(cm7Q8qLnezAlhu=*F>Btk8pBN%e*qc0F!f7cYBt-{@&V zGyHmpTckw@Qg8!;n=L40V|7Tj=1B*!uWX2%*C0Kj)opgV1#^|zXBlM%xNnM;UXDnM zGtkb%rO2aGDE4AXL7}W5ZunO#haDdNS3y<33jMf@$~ zCqD?aY+X*WNMY_Uq9Bz<@P<9ReVu`_G02D=!g!y0o05cXiCXC}FTec6$~n@Co}N{C zeb8{ee`^A{P;6#qah2z}?Fx%xw6NgkMcV2;CBLxSQtzB)b9cKDCb*Jn* z*`3EF>yVbZSbm}Mj=P<$Q2DF`h1RJf*miT!lufW;r zL4H}3%NGP zh!^D(w)rD5T5~RAu0rQ4L+`n-h`AV%x(W)4QD=-Z{F-Ny3~PdF8!jW&zdAbX1Qtvb z?>i0HYP`HJ5A}rfOQcsxAXiv9KOx-qGL?t-ybPUZoeCuU;$@vdWm zZAFv9YSs;c9oZ`_h@fcNkEiqkoH?(6$z})Och+QnQFVII$(<8u%RIjvnuNkD@w9If zAaJ?1$o#{CQkQz)w-=AM=U#BWM1H9QP^#w&y=&q8h1A}zBfn&ppH{q{m6|Pbml=sg zGrfi)5E?oj9vil~3{P9fkAGy`m^0o~Zv)w2do5DW=-b8szfZ8b)OSHp)MILdni}Ff z5aah9VznEDi9&g*D!H`t0h>!hmEZH!jJu4jjE&Pb2Fx6K6&Z}qK)K_Z6~$KReAA;_ z!yq0vJ4B7vyqkTGS;a=$t-H+K{zc~OZ*0s`xwWO`r;T#6d9R0>hFl7hxNL7bNw+@e_r9}9?)`FC^-Z^biFRkA(^lyi6` zm2|XK>o@aV=4VemZC3hI9r6bsYZeQ+{4lGSdF<1dlD2bFUdmR}QBC2+Fn-qnF%DB$ zvt|{Pe&%`NPR^rkKgW=F>H%R=4qhFo8(%sN*K7~-ZfBk|;JYBEWcD^HXRZwj?)^$? zIjxnXm`-leYvKwg^PfISbxG_T9!AmxNI{eCrSSBQ;rDDF+tdL19N6u zHG4~Qn_O-c9&F$+z3fLkx8jrn#m3@a{b6#-o z^LKo)+Tfk5rED@!vSSdkkU|diz*Ey2y|G@sJ}Rx;>AuUG(5hZkQggE61Fn_iOkL70 z)CqM=8BH0wqx_}Z8hxW6URil}jvWL=o28>|5q4Q{(?UB;?L5LJ60yzN zrl#!ZL(R^k3NRldt^rCH3&>|Oyl62gUd3c)>3eKimSyiyVr!R zQ3h5r?-ABg(Z7oqOC_H99_|}7%KVN!}1d(#J`{k#5q8+PZ%Fv|x8nX9udm%;STAZiaPH1iB@%u;7<^)9&?=%rU^ z>+amjnF{#N?-Dw>8BWKF);*7IbyP&8vE-xNfF`{cSGzBkzK54t7E>yWmK_wz_!LjT zSK$G|0gw}h@yL(%qkrxawO?ese^<+!?yjR%j?nGD^1^a=BX0fAt;>154x&mskpNEP z*|_jb&+hq6X14OV-^qrRguF?C@UpCPE>C-dg_qG-)FH;gIS>YCkM8sK3lwbdImvcH zK}7%XivYacS20>}aQbm&t$gN`fSIezyitZua>MvJGvul#LKt=7QP|%hJ_O!E=Y4tu z56@pchvLBq;pH%H%R@}`L8+gMVS3kEY*#{pJN=Ctr?c?XE_D=A-f(~ASW5%?FJE{7wYmYCP6C719nY`i~FV0dKA7h324;OvgE{H)K;9f!Sx8Sw1GRoV~*Pq$QWKBLU-SPSHUy?3hSkLZP zVrkwC0_Nr_mHVDQ+*sX~k*DeOuq7u;pO9}tUh;B<53Xm~jnyuEPCB6J_DK0Awt=l;cWw~Q>~ z0w$(cVy48>%#iA@3EHu?6*}YLt=@_IC1A7|b_Y(Y!7eThs|Z4{LCQFLGSl|8V z&aT=Hj+M2z1do4hf5}K!QPLlOLbN$30k=UxejUXJ+xb8A>>h7`!Ph+Ff@;8!Vl_6lQ2wNZ5LA;L)8M6(1zLp$V6#UbcCVH{qb~ z|DG`=AhjdjR;AK;#1qQGT2smPTv2{u+u}R5hQTmd+M@Ldp|YC)NY)s8OHAk^f-z#8 zg4;G}I00YthzrV``Z4s8<)n;HPw2go6)}Uy{%6ipJA=>=S~;t1RfvbL)|!UOTw5}; zzj!gH{*)H&Noo*mTsSifUC%6au^3PanA)LQ@HG7HN&Wi1R}YyCuGwa@z|K1QckKsj zYavbSJtIGYkB`=QxE0eOG-1d;T+{>6?tKx&?+_7D86@jl^iwk<- zury%%VtcH_JmfwL4EZG{wJUv(6h$X0okie!+8As-)Nc3u;oh)j7_W69YKEnpb`$4hZFji!)xSZ9MgxF+M%1-3|C zvTm0T%{W3>%YlZ=8^dVHak1+EZpVWso<4E8V97~7XsF!^BR$+(Ut$m1nZ%}!KvqYs}s4I zLkc}f8jHl54ukl;2R%mdl9!y%6CyVr9pY|?Y_zZox`Ed|ad03bYO1h4=YGDdvXK9d7*U7V#sKIqoK0RKNm8e`?cQ5DYvU0f3d>l>Xpaj@)`aI5_x-MqtZz^|J*oN zFW0cJH)TzA&HC^IJaJ!>gzb#T)#fFly@o}{6y}ZFKo(JOm5Qqz6ZR3={Ja~zsa;(it~%c9 zX00oF!T%k8ES<2UWOP}oEAKA14}UaipMn*|-naxNZGp6UL#S^)PQk^|s4u@hr}5mo zzA|}YVxi9LG`zY8WXVxwYU0n>FMZ^f$kMmXj7HPXA@%i?AlhuZGWEK!aJ2vSZBb>D zp`OiOPK75$mxULf~eOAV^B?mUM{1CfV8Y`otZ`)XM6`0;m}>Fsd6NjSFF zfbN4I;`Io3_skPA;^St1Cr*kBMP3JV2MUTUQdjEkNkxShv5O}StwM%sI0)i2#xqIz zU;jR$pkKT8CcJqe-jl@fj>yOGbbZm~>VJD>j@cfmE3F(H9^pl5d7Wqf_gZCnoBwNi zP?z)y&FgNpcMQKcee^kBI!PS8(wzZWx@gdc+xBtZIjJc1^y$;FElvAY6??i7fmwgtM|NZ-y#``&-=U~8Uq)K} zaMb(amfXGY^6OWt`>jriG^yYVhaXGYt2Mt^!#_m(Hsg5}eJ`^0LbcYTJ7UcKokA)u z*!>LJvI%Y?U%0P@flc`+q4e7~cOJaMp~v`w%h0YYF$}R0)9ylP9UGgkn3-{Wb1YZ9 zBVKU}i_SiF&Q!b3`eIqtmGjPZ(WLo3#&z-R9&or|DW#a4UiNt3G8mMfU~=V!39)eI zUK)wP>GvuRNShNL-2yLQyEU5Xx4sXKjgj9R&Jn+Uhd3bvrQDM-@mCAOwpS{KN($iY z$cq&6ew-IQN}I%nJp4oLYE9jzopL7fMe$=`d@jQ8BPAL|)>(Hf1r_|1v3tZ3RZ0DY zn{`z0(klyA(9$wzn+9=-rN?FM`I9U2j-b^2h+3X2RE8LnBT`L3aP3jOYR(%qWn}{= ze@v}z*mPtW7jN9xWU{y%WliV81zkCI+|HhrQ@S-JMyaP6gZhhbiOY4um3YxD!p{Ow#R|39A!w4j(bHoLP?1j|eZjND&vn zHqO?nc<_GF^0F|p#9HxyaI-!W18%}<|EbH%taQc299rIFy%Wf5pOj)0#d?&8md4gz zg1~TLz0k za;yo~FK!fV{dBYuQeq`|(ygLyA1n13Bfe~>YPg{eeV)nMb5k`DeQ#V=fRSinL5|$N z`wJ_Zg!>M86bYIw84oA^IO^-m8P*tJYtOg(r_qtL$u&^*`~G|te-w;JVH4auV}sOP z(bpdwlE>dwq>b$t;5kIJEZxAR5~nLlh0s-he}N8(ztS+?vP=bT8D)I&cNCv6RJo_d`S89qq6yAtAxHuVEx44w5-HHZqxr zd~B&%fFL;^;I`YTYtGk05n5WwPFfc*!V*v#ouk;7c6_2-ZE>6dWlrmwNB04kRQgM! z3#DW;(J*3|G}l4>-{;g@J#^$Hy=uJHBtaGB|74H9n||?fg%wPyYOW}~Sw9Jhx@B4V z$BGk9`aClWkw?GcD#8}IWAS+9qx{8-u^&FXI@(e$!bD`x0)G&TJ5o@(J&6WfV7!r6 zu)28K%y%mFQ^{Sq^sKC(%c7NF&`#pQbMyJS7-Du^1FDLUXM`B%G&1VZ@ISjTSJK^m zQp^6V5aAII0ZaFbS9;E)X<;GntE~cxIRnlIpo|*jqu2?w-(r7xmk<*&fj*uFaXm70+Pk}P1P@87jknYn zVb3!d1$cr`lZ2%DMS-jtD2)Y*Vb7j=+wohgCd}SZW+#-KfLnJ%Rk%C0=p6cm8M4Y5 zp>@*x)9UvTvL7EbCoA$|Gbog{2rZr5Y7SK(s-g^*3YGa4R%4$Nwyxju_dj8H%;^w3 zwoOp%2#?gk0bXzG%2WD+z<%c7@aYfwp}5m2 zcO9H}KPQYb>L|MX zkRV!v3lDDc|J?_r@#&5-BKtiky7&V)H()F01%y^<&jZn$V9_pEZg)aA#BDzNL)xPb@jL}6+aV}AGB4Z-1he9?nDSf-*LrrpuikIO6 zRShsp6OaP+R~`tOfSAM_6i|gEh5ZO#j~e8}bO;%_XR{bvxxEbMOwPCeR@B*$WLepCVp*+x2*tm)>_otxEcFRo-TYjk!R4U5cO`FBVRQp z7p5@^Jl2Lc&VrQ?7h#njjc%(;JtY3l0Dq95%^3(#L0hP{^}l61vLWgX9DNg8Y-8$Z z-mi*&d8=IfWhHgk z>){I+GaGLZYL(0!b696!b=2dSnfsk|Tq_0na~N#w${FAdRH&$4Kpi<0UK11n)u{Q! zeJC))_tuJMR+1U9$Tl?E2<)ILzEwJ7uu<{PIgpq9{gi`2Ko$m8nc&74>^E8Px5t9c(tui z8Ja+b9r-}Y(ey!U4b?|6G}bq?9JDuxO40e@JcRI-D4?27z_XG?(f1E7LAmSdr3i)- zCH&wa{P_PzynPyMhBrM!83jPJKN8V{mJ7A*(MV-FXuK732R#|scu}agMyR*+M9(0q z@oLqm@#jN*hrXA~IKEJdHmo3Rn=v?s#zg*#YUfKMc%p0Fp{<@sv@_ zpivF;Q|e+7)po@mB*8Qjbc=*_M=aC~uQ32eMHK&^RUHPMP|IX&Zbgo={u;2TH zjQ2S+j5Z0NdHVmtZHMhFI^zc{fRa{Nh#n&@oMa;;{6Uk7zTO_9nwRt$ck9Dh`}3h? zr-Grg8QKPIS_f_DKB%h0hJtY($)gW3f&@~ekU9UM=>Wi(f|4#|5Ew0M_bB90zJ#I- z4uXD-+HV#p#!wdmWRE8NX#CNv^IA20bqzxP0Iao7pn3l5*Lct>7%?OZB`y!)((waX zXiOMAK1sOny=llr>L~Q=%wOn)MORNl`IzB>iV!ZjSAd4NfdpG z4d6@Fvpel3Tzsn|GM7~6%8?ORr0Sn^T0JIZ|V&jVTv^6VI18X{qkAjH6 z(5blxg2RZjH%peS6XM|aELDtac$aFAVqQPYmp)m93=Aw+He9vZ$$EV$#D zd$0RIZ1|L(9wCj_1si|PuR{0%e8U%9Q}fCGEfpa38wD(&S${a8sF*{*4V^k+A7odN zzlUnR#G)+XTtzEn0yri5mrXOo-vYrkY6wVI158<$F+33{$?H{FQj^ye z>k;G6{^x(BI7k}w{gA)cj5BR3^nH-~_h9~;AB+`{h%`Ne7%$sf3y6KNUPdgAR|%$b zJwA%&P{-yASl7 z+5`T%aFjMg(^DSZbhnBUWmQ>Z@VxE+T=fP|eB&RFl)zY)!9G|&1E2&M z4mzjfa%Wrd894gZs={wCZDlygBaayrO6eAN|GUPH^khZOi=tB?ZM^wzN)J@>pLOu)ACE1bTnd&HuMFk$xRA0iTp(&CEJR29xc=^74|7a$>Rk&AD8*WBH!)U{A z2US2=uLDC|;-xQw9l7ZluVdgVTts(J!T-TW`LT>bVMCaj>v=@*e?YdZjnd<~Le!k~ zFU?Bt00QkQa?-9^_8+0O-8?QXXidT0h87<0yZma;_CMJ2S^ulbH9~a_^(Kf~6nb^k zn{&@pVR`?V{eqxR3kdxmH)+B@;FxOetwV0wsH6(ep)5qW4H1F)3IwIEw*G8}bZb=L z8cC09zS5vDj|qS0Yt?jO}Ez$vHGcqxlD6EeS{ zn#fVQ7wcfuf@~_Nqqwq4s`@Y<_sRZyB|RB?h!ZFB{QPPgZunL=#04R0%P;<`AY9;+ zDsVFK>Dd1Zx^LR{UP}wjMW0tI+7_YpQ2$lZM3{yc)IskngH``4Efa8m@G*-uy>|a! zysMLr*JM|LSgk%G)U!c(X4K{%A4fan27Ly0?-gu~1BD2-j=lYlLs@~5rgXtDiVr-= z1c4DmYNi{Sdtq;GK!W5_p1XEeKhJoCvOco)|J6JKp8ft0csVjDGvEebfN@geQYH0j z8XbB{aLNMY)mx#;n-Ev2D*dAu$~j#H-uOTW2)Sm+$&vL#|L|lj0>53;Mk=7-K+SKl z-iyo(=$HD>FbNhwYYg$|t~(M)hZFFt1bTV~I^MNe0(y&`c;{FY_yDHS3*y%-z#DG= zhONE`00|roj>@JedueeBzB(ZhHf3*IGse|dy%#|j)DOOmnsqwNUlJys9H0xBL=yK= z3XbH_eP;Q8)djg$7YA^^d;?1Bp#P<{f3-{s?isz({mX=-0@7%0NblvY|9h1knI4%G zhBktbw^>Y>IPgzUUTLiuxlPtXfA-Jv5!|dt*f{*(sOeqFaYgM=Hah$pR)o+E?AiUf zFp%8}dI(L3T6evFmYRyd-_=aaLT92(^`BrO4 zq!FlJ<_aKKCG-zg8_#^xaV5}^K_57l_BzS(&sii+9Irxy_)mYx{Wt#SsKGf0;FWwx zdo{d(RjUz{Um;ZDXbiEbjM(}m0nmsEkvBCP(_Gp|U zg#Fk(kh1Pa`TMbc1rE~^qzmKc?Bu(x8es1s;(%=AgiJov=3m4iV0ehpsRuNFsCdOa z?WqPgWj(E6{kDbl+|X&~B`naoo-n};z0lJ(lhg!ZN1;0Fw$ndNV2T55*8qI3uop#8 z_l2*;7AYyX`Y3_}GqJLNp{T^>9AEJZ{ulr)A*_6feQ(o}2oubTzV53`g)&C*f0Bl* z3OMlrWKQ8f_X!csfI{-w@jI}nwr0;Ce2FeE0Loubkk zsgpsX7yh}Ie+Ov~$j@O*U)99+BCcWrd94Ma!BFTl8N6MI6^5G$=cNP5LUOF6+RJ^w z`{cI{KznQF%wtQ$Mg-_*Ro}{apGx0*E5TKP+?N1u*c!;@_vq#VjkEgM6js5C z(21j92MuNy6)*(FBP>WwV5X89F6s%^O2X#AQa;as_L!~zG;aIo)$4ZM<=*Mz?|D6f$zZ(uP+1bb#BS89%epq^nsDkxZggEm%YDyfQE zgY;`;(TsE?D+PIB6u-SzMJ@gGqll=1X&OXLSlvd5i!R=zx=*==7`|Fsw_+~EU;-F z*W26cOTT`nS;Z8J$~%a5ZhinxYEq3YOa+ZGZ6X?BR(ncZa8^8Rxr#dD*&Wy*uZBpa z-#kau28yJa6tx&%4GVqSfF2v2{b42Q1l6Q?Fgy4r787n)@y^zNEz~t2P8l?14ih$x zOUFl*e_ZA9@8?KqH+Ed95_tXt6tqY;P8b6?6X2u#2w9g6ygWc z+#3;$EZclF_tg2Z%3iwch1y@GFnWcBcR1(6b*uoCufelPV z_+bOT<)Kv`{YomLK^(Px=9iy~W(D*-6Hd}RAe2v@rV<58ZE%`Wgr`zxeeKE>V~boNWD^|c^|sRPL7YMS$7I$eQUcyLWGM2 z%Wn1lS#RwF9~<(3Q^XxZr$miEkzsrV58a~T4_AxdL2H&AgHL|uF|VXLXgF+) zJ^9n%X5hO3c6t|-iC&`RK{r-^wh~!Z2C`{YS*mug!nVr$giSkqC%_X)2Z&xmRc}I8 zf09~HDo9;d94&+GBK&NK?#&j(qN*S#X7<6WGKgUhVsWQ2mQ7=8*F(qsX+vc$YmxP0 zonS{0_chLCmPkscwSnEu;|0>rD@5$mH`6F=)IL;FzX*9SWFNM>kBFJDPtiR>QTv*s zSW%WYSTGw0+CM@pxNuM5M(124IwmMIBT_7*IhDo_XJ>}Dv!E&x6@DQ6xL^6%EKK3T zUsq>I45fP?(cI405gzIZh*JV}?_IdfoB-PKeyD|9a+1re`fXImB)$cm|xp$+iTK>>Lg;!$Cv9~lE3!K4<(dXZ?o_5j zAXo&CGf~q=ktai=uWqcL(RG%%Z>lR&%;;t|umH-_@t{7utH^oyRSD&dq0fsh=^T8M zr+NXj^w|m87!?7Mk5D63D%tqf>Q9*4O)o`34Nkk?15c;f#B2-7pD;F!LauJd`sG8Y z^*U1f^1+r>59>;U(`%TfruMc#b>izC!Jk3*Igm4~ zX6owS@FjYFq2AF!ENERrrjbdE&lbuCw53OKap9|Kyi=#lON-Y#WF4&Qdh>TnJdnJh zjXg-GWtYsnFl>L(YS?vTh~%>Sb=`~&&4%c8&C=-g3twV~|E|_&xWsFnqN*_h+Rn@51)}Q2NQGN~xkLVk+~DqfF!SF&RB9~ksx)f#{z38)UaXDBarjV5v`hE{f6+TEsF$atJ3nRmzFqq& zEUh@dz1f{`mDIieDv32T3U-;epw3OuFphI6pTZ7@VgT zCwywZ2%da{DaIcl%S*MYh@%b?S$6Y|o+|%SY-Jtc#7yGGD2owH*%MrH3oyZ2@3c{0 z7}*#JpL2({J10ZG4~os@nK26d!fte(Lsjs{yKoW@W6ZV&tX*Bd4P8xaLJ9F#E6;#Ddlp;%XeNr3kYYouza|IIi~=L11b7U4r(M$cc2fZLl9`-X z{H3L0;2g^8{y`iwKSrY2aU+x;v2Y{zjCe@OA>z6?A;iN)qjvyj!G z$I7|>TNOV&AYus)fr$$@V_d3Rh%ax(&^SP_nBXj^n9V<{&+e~nv!bGkf>1BA_u~q= zT{+=U)g&zmu7-C`EFt8Y9m7#oxd)*bI2ytP3Blm5!9ZOmc{7p=9-TpR4lTD1c`^1F|#fQHSz{{j9PjV0pKJ70eAMp+k0=wgmWru#~1na4>f~!*%DY!F7VY^5+g1^vNs3?B-VPKPu-O* zF=g#Mi?p}99Pk!a@~v2Gci9nZ+28p}PS|dLwN~RO8UiD6>UEjV;Pv*OqJ&?~jvOf6 zll%nRr!6b~dBH?&HhBASEv1^j=IuY%%~0vDn;msfx*(5C008&=&eJS<#AcVX{pSrQ z_t7~wOu0H-e4Uk04a|uzz~pek+r^2go}UgWYkxx7a&3vChCxy0ekuk>0szSo533Fq z_qvatzA}D~)SkJELGV znDK8c@NEP9>@OZPMH)>Lq zoA3t&?xYZ5?g7T;I@o!D=VpJ&pY?$2v+59ki=W<)8jhyv0mL~Shx>qx0g&Dg2j_{( zN{OB7-myHV#1kKQyjZe35e-wr1owg5>^PCLpFDJlsLcp(r>LXWvV9J>W|bBJ;%Ww} zeL;zvFtQg<@@w$*%cuP!_G^qce$sf?KbRP6kJQY`Vp!SX1*ck8%BP9LJ+Ur#lZnu$ zVA+G^y~WJ4_d6fPmf0Z-227a&a5w%lLs&=+c&EljMR zz806mKz0OpWP-Opv!+_xMejd9JLvfvjxpmUJZLs&Av^=0%4YbSx~CiJt55N`fcY({ zj8NUWktlIGniPi8)!-Hok#lWXF{%$H_6Ekdh!GD*`pBR4?E8=L?w9He-a?xEpC%@O z$kxI4YN#sB7QD9-TycYyFy5@+J8AXy{LcE&C!OQm&Ao)N?8qm19$KG0A#xQjqP49w zCKJ7Y59a{HqyWSkd*?rPv}tW@EA7>XPY=1GNJsXvD(4{CU$12ah|LG%ddIwvN;fu5 zMNQmX$2B`5P?O5sge{-+UIWr)RNfRX!TAW>l$mY$H}@DnEpk$?(VOR4__2?UvDfRD zhg}+O18-x;vB%*hVBToJjjZtYMK`NfMKQ458i&k z@~>0_LJg6}`^lrP{ESAL?nwO-SF@uwTwJqdqZO>VSvp6@XGQ@SP*E~?Rt{G zoHt{&qnoAsLDzp~Q0!S0h{EdAQ41b|OS$aR78MRulE(8J#lFA0{&;%?gp{n*W?h%G z67w1RqfJ~tK=?!lBpfBc%*JZT{4$_@DY3KidPj1pZK&69X;#5Cy&&*~h9IH(0cJdZ zff0VuzS&$>oM1iE7we)+JRD%A6%pixZ1h0Uv~G^{33nW;{>rzu zv(+~)P4jVnVcU_=P}^x(Y(CmNBLWXije>QbgsWTj#=^$cQ2EOY1de7N+p=bH%f-LFquI`6N2JOFQOt0134*=uk^bz|iXFWmH0OT{w&Am_y83!N%%oVPtR zqwlKoEjgTWBj`>B{-#bTEUt{p^!Z2o|mlcv8uxB25%w$)^AE^3xngKA!6Ev+w7?JO*8cz|lLNQ~oochP{ zvPw;y4MjUXi~C)XD20SmaB)yR&c|v9xIs0Y3}?oSe|o~6==+m4)5w^q5us6KU~sZw65Qqzu~(Im5TDGi zm3L+0Qb`<#5`5?ZCg(dNeCecopTzad{=7F_dWzzH;d0`BCR#VzXb-$yj$TshF#qM* zG~jMX;X?mugLx~)F~LLgFyk&ta8I5RTFd_wp{xQX$5uIkS?7KB4Y@TDJJ!O9Ewv!y z`Q59N^Peuq!{&6blX{1Ku@J2P(NrcIdC*zm$GDMDN21op(Dp8Ig@&2XlD3r`K%-;> z0~genBL~TLmBA(D4oct5ry~#Sx4P<0G1@u($P;!+QtJ5^a%yVD?)o6)0;X0k1*Mn9VJCXi!(R!ngwM*amT;0!gS33A3eQZ9cS$b5mdAHu8ognL zQh!qCs2HKrCxU3#dw(C1uiR}aoBDw|Mu(GVnvyEU=BSSt+(xRULNi%i$d0vb-LG-} z^zk1THW}GCKU}}5;7e3HBnnUdi?wk%4(|sps@fm+adOdW@Z^eN6;Fcl{4#3F>`#-= zK!C+V?1pBaHcB1TFMfd-7c1j8>w5Ng3ko=kAPc7go~*r}oI3eqE7B^87Ry8&);J)L zQ*9ha*XYJ;41}ANHE#kZjW|<1#oBzd+E~7@b+o46IO15&wWDH#cHL_lRo7a4)Y?$jBIb2e{?>7ByB&T0X~ndpwSpXFi2Z>HZUb`U zbW6p14C*P>)uiu`7YzIp^ngb3An(#PMChx`=jb;ofDCV)x{{U_N4rA8 zD$h*y4%TWaVlVuG_l_KI6NRc%EjW7|Czc> zQPGiW!={02NmLCyHfC-Iwos=KdtLi-)2H3u7}{B0Y&X!BfWcuCo=HO6;>Eq6;cP z!;Npfn-n<-iXfQ`jgAgsY!+F_azJVO$Ixt!5_^+Uc*Rk_Hy1#h6PANlP4a~N9-f^_ zY%C7nD8^&EcUQa8hd_md1l%=7RMn`WTSKX{ZzccK)epbr0E)2exo5*Wo-BBdJH@xt ze0;DQ%?`v9N7(36fVQ9Tp=95VJuR2BXxG;ZcEIPlbyh({0@nCJ+jgS*X4S=KSN~#* zeU89=fX)f<%lw70@c;tWA8V6weCZ0Dm??T>s8&?(8++S&IOl3t&G-4g-kg7#$oA5x zTOy3OTtlo6NM*-Zj168$vhnxqvw3g3?w!Vqb)2a$1E(@_ZAYf1?_-7f4GOM!u4D}my;MJ& zWuHdbFZ05Gr9_hwdY&PW<-oaZHTT0CRF8xWylJy~jTxU|K~}X8>lawaZ2KB@22rRl znk^M-5~IGBW5BPhJsVZ?4HIm znb$`#dgWu0TcDeOeS_JFDOWu8JLk7wnro9l0wjfPvJz94iExdB1na@Vc5ClHg)1i2 zU)wehd_Y~J7_FKt9BnZb0srQIHOR~P_cO%X-c927qR6)~w4>nNSr+nqW^b%Z#xr93 ziKK;78BiuEo$s~&lsLSxUU7RK1{c%;CZ>EKo(S1b_5iPZ-cKMcXSPpDanqkoU>*v% zP|fwda%+MQg|AO^$ppKW{&-sEn{1x>_Ng0kq5hFgJ-HwRflhYARB7;A9Or-iVC&Fz z{}8ZMcQRM>j{u<$klkZmxI9Oc%SCj|*vLasy5ql8D+<8nYo=Pqv2jxG`Nx#uI$e}Ob}IQh!ekaPh>0Kq$ju&OL7mb%V~YJ| zg<^$;hr`c5X4#>1l|OVaR9E*;>-RUm9W+MERtf@7eGqX9En%SlV$B(~(7!HE7QHF6 zUyho5Ed7Z7H5e{}_uTf5b-8NJaTb#ineUKkKlj=5Pi{k1mBA*Z>ejccj;5Ol*zC(O zQj&#Rr*-}Y2G`xJzDQB<%&n}&;?hJs99FykzTjwd$hF!WyHCCEmWK^KS^QVL?CJ2S z9oxUK-SEPYSjEv{@3%Lv&JxIz9s@rbOOMvAjpb*UWki-3%k=ItSIa~Wu~9=lf}bs7 OxM*M`Q9FXk* literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/microsoft-onedrive.png b/apps/server/data/resource-icons/microsoft-onedrive.png new file mode 100644 index 0000000000000000000000000000000000000000..bdeeccae6c56d842f4276bd638945975f90dcced GIT binary patch literal 24074 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 av+y78Z|14kp3ceu0000zoYjsC@ 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Π(maf4>Us&SbJ#g}vy27CMj{&F5= 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 S4O#F61e_^uzPP(B5L|=11ef5h`)%I(?yvVR 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 YW)Z!=?kqfm!9Olb-IhFD8oY$Yb{NLqB zs;lpx*v^-d`}mM;Uz%5#ihdqmS7#?Ebkx+aEO)D;LC7d(WB0TKYrHi&pWwC;ym{QT zyjJ1ErV!M@>7mVL9{C@ivS8jrHZ8j1rp=tQpjSAInN3FdF{g1P08(CCh2p*y<@bBW zD2Jz}HBJL5^WWo|EFZWS?jENEbWm_xwzJn*?m6fypH^m-D|9^KN1)nHQ|GjnKd9RAY?=K4hpR0r>119z13-k71OKb=!=o@%6M4&VXjXR0E2 z8N*~*yU5#${W zihrBTORO~Mc63lfOAuT-}e`ZMzH!(*= zLH+X4qqO1#Jwhm(&IsH>5MT@Y0$t#JjyrF_G0F7)x(v``%#<;#GXy!ChG zzrL4dn($a-|C>{m3_3knvc?1C{}FkJZD>faFW^5ogNj#m&ELT^-J*sXl{3lo_i(*t zd1l95SAzoJk~a@pvO^f0&(9+OxxL0UOQN^D@ikENSO20>*E}StNdRDd6WfGnfBVsl zAAmP{Y%`PRQ8f<%pvhI1vOH6+)`cH!g7dzmCs`tOQ;04Dl)FrO86vq?84sZE&MspY zgWX#s)ZboEj6H@~&M_avfWr%T{b!kH1n=_BC!2#Flo|3^83+bbe~wVDR%McqG;z)F-Fx{faGXL^)~8T1(iETL6_ z3;6CS0EI}XtVR6pdJQA#eeV_gIsX3-6(|356Z#KZKpnz^0uH*x3!||xbXE@+G?C}rC7dZ;{&BkD4s1SG&Jdq_}e;}f5L zP*MAP5tecBYa(s2QE$v|?RbmD38^RV&IYI82Fs+(7TTU(6PhFqe`CR+ADrGUTNh&Rps}kW% zOGM+eSzuoKe964Sp2-WRkGNgB4C6r@-o8fA@Bj24zi&S!DYAqERngO4N{+#N3T^BE9o!~RW<%Y(XVCUN*eKV{qJsieFQnd8Yro?$ZWB$br?O)h8 zO6PoT|9e^ARG`HfDRAV=+4>=)L^=8mZ9f2r!h=*kq2Ck6y?HAoo(+xPyOaj3o~;GYvQksoGX$=A-h+~E!`*yb4Zlj0n(kw95s$~MpY551ob4(zy0$*YBLQ>% zei}2Go-Znk_{OIU+v+d@I?`7RIZAH$HkLHapf7km!x&8@FaE*l4_c~Pm~S@uyw|mz z;lT7z#A`cWvWH@aSqC>#lkRF>$V+>_j1|P@xWWBVolMm{Uz$SJy`FUsx*aI;6 z&!~Jtld7ZlPuJ4&n}@5@%M{ai5U7w0;q9WVu^kwWHt*S9=sh9X5 zyh|~ccqTSBJf_AV9nV(bf^MJTU5GH;#U&L<)g;!$Zu)3trn*)`6zi!s27_Mj!wg269o!exW{`NsSxEK*A3Q4LY%X>> z)K?W9dqAlZW57|oXrHJWt;b@QWJ?MiK;ho(y;A<+R6@0#ZR-%@xLPxxukI>8s3!%O zp!43E=vHZJzNg=ZB$+-x*=vgbohGyUS%klvEE}dhz50{+qc@+P36#4mb==qpj)@ih zQyZl?c~y2O)E7?}@NXG6$*4uE&gon_@gyp(yIbue_lb*Td8d=v9$4WuG@mnXMoYdk zlBhoSm6;61@bWtEEc}{gfD3=Gu7B75_Lt_8c577NGWLVWe86514YtjF5KblM?<+PP zGCdHAkj$v6t2rNEZ6j@IxTCwwJJssloQ;rU1OA6b3_o0gT$GvQG0L7QE!d}7v#Xsa zcy!=!*k(2HyvRm#)MaV5Vfs8h>k$dcZa~GF`c8)#64KirYn3$gM${dBE<4V`8kAIT zSlBK}#L<5gT84tjY^gELtdkiax5g69e99^g!rL(!$^LRk5W6zcA-&8`8&-mN{w@%- z@cH8p(>*S!dn5zB-ptdGD(;_C%BzOnU@3cWHk^*xC?vML?GYrt#MTec`3)yy8@BUU zMVa-#J$_^?jsAvPexsM+g4%vL8CdmeS6q>3V{q1OTS<8E<6gHO)IYM5_D3_0|MckUL(-ut`$7LJ=i<}1H!*=T4#lm3;c6ZWLF2XE(` zf@Gba;9>pGMmtX@s*9w?q*ZCFnjM!?#$dpy4*F9v)zL!xN@}M26xUys5OK-ncuwQC zU=>`{x4O8XU1DaNOmm}TQ!C?U$NU5V&#q{MnO=%GsW1pv$P#aK=cBZF>!D@n>S)s@ zUm8eWp*}s%Z5Cex>4yn*tKrV$eV1szt?bg&7bO`=v0QcDV`wyOwCzQbfcO5xqm7ef z`~vtq1VRm;XaglvE{Wl^nSAi%kmMe?441}}mnkB3^`Fu@KGmFY4EI%zBqQaK~xS`N1^Nq}Lu9e!7IvogiP{HkI z^9+|4(-c zJar1io5}r}T?QrfW!$}Q_{C~#hGKn_WgP&y)%i**pNN1PwOAla)>!3;14q{D4)N5* z9*217Pg;ErSY{5}{CWQ1;W3T%qdS^?y)V=0p=sq@_9{}$&)!7Iyw;HoK2VI#$k|Z1 zGtq2k?U(3km&;5CF0Fbs8DmnaHM{+#PYj*XawD<$_NGl`d|+ui4$RDx!0Jv z*p~W9AhM5x*g+!hC;=ZdJ_!1cG9e=6%V2HA-?4&t`yT1y9E%rc3(Xh#{ zt&5Y&KYo9}MxC*wj0ae7ETi=>gzihG7iSeaQbJXy^u~|m)7o3B^-k|FoCi(Si@x54 zJL9)ug0o}>2Q{ZSy7zvo)YRm#InBkSvRo0>bI|bc7Vc@1$8K)^F-!6mY zuEN~G?8)>#j4jdS!nh|kJ_xhN$D?joiI*rqpftixo-FeJI~4Kb3l->6p82;i+v9(- z*1W^Q6u>IzD^hv=y|a;%WNDG+I^3}y?sSq$GTH4!;>xO|5C`9q=j624XCC{5n+1(0 znVUEC%HYcPCml3}gSt91Sh5a?T3rI=W#(2brIl?`lPbDvi#`5kt0IN?#!=FUc_62?%-eMi*4GeaX*YaEE#Xise zOWez}Wy(=pNncno2i;-cK`0^O7iML$FJSu^9#SO}ol4PyTW9TsfkhfHvUzvKPiD;j zv*pa%`(qS6`|np$tzPdE32k4lm~ZXJt0HPh)O%`Kp4r}4^U8bQD`D2OZlS`1A0|`! z{XAfG4D&2ai)RopvsbqA$5k^lv?(xDx}N&p^rf@Mx%a&28LluI@ZmWhd?%5Ikkj8N z=?j&e|IvBoKmKv7h^GQ;o<6Eb2syL8?Nrl! zA@^`10_@5uuDHexW}{C2e{OEzS0~2F>ifXpsPS`KlV-kI@>J~WW8)&}neK_!lm>QZ_K!t2Ra zLPD_+9ay-X=iO=26c+JgLv3ksfB42bqi+@MIhw8SC>>-Xa32tIyr)ht!%GSesERer zZ+VdkUmvfJ6|nKyOVh3j(h3{^ucm%cDeZsJsd<`GA-{0dg|GRZUsJf@8nu=G9wup+ zngr!G!9_V>b`ds`RE=tkx-p3>~$G0sBj zYhLdMXN8FlP9>Js!<6-Al>Gk4#{)6%4-@@9AP6JWf6{IhE4ik8X3Ejk*qX3OP=eu9 zGm^yL=Zm=*32M7nzwcAknjM-mjl{971@p;3Wh=H>q$Hk0&CxfPs8R`u&OB$k=goM% zrs0OjrSqf5263#$ZwBrQdXac3A>X>}-(rpW&fgy&F%y6Kr*)Y81fzu|+P_OcnE&1% zW1u1oLjAszAf?7nDkQPU^H2Qmzux9zoYrC(05lGJg80t`9nk*Gg#G4?XS=i&@0z(o zmJ{-0>;ZAEPT}8utNDSt(ytOU^8V6p>|q4#8Nmkyp^!M_LWh(b_&oWv!B+W{*?zBL z?PnX!&km){5;+pcxN^JihbF!^%K-OBtnu0~*^5=hnL{-RTnv|p64L4wA5JKnvWGLU zi2jo0CKF9pN8Z_8$1r>}IguzNbZq61THkgg;P_0?pJo)-Qtl<|6b#oKXMWX^#o$-`@to%F=OHdrJaMAVd8FR@W+w^D{Y*^q$F}y=4K)5@|0?A zw2<d zA-8@S_*7)|@*h1H!oL=G3E$u|TW^Ihb9?i<{Z%X8ETVp;@#9@LSp=+RFWAX3Iy7fT zb4FD~rW?QWlRvB(7&{wkMfV5S1zs4+1_f+2cD{badZ1dP=f->F)S@k#4eUZKbH? z_c<42^`%w189502#$k0tzPpXO}fB4!-@b0eZQE=DT@D*|=OAsWtkmdKdn2HWC z;p&-Q3Y8I?s73={E>V;(OH;R*N=84(^X#_k-%;{(ywu+HdQq9wUEeCRqw~)*IXaLv za6G;#**y0qL7cvbf|=3WR>1NLDGDDo_MEs=^5*iDmc`gLwp3Tg=p1b*(gH?+xbq>b zuO!aiOCaVe+=O=TS)|mb(m}0I1V*JP^^HBl$SFjUJ(+3e_RCNTxi)--1Vv_MG9WRL zsMNRad`!f)kos}dse;Wrayb8j<=jXNaqGjB#zY)=m*eUg|NCf;-tiSabH>p5NqQen zpGi(|kU$`KAz>-Lhyrdhxia&|e**ibO?fO>1l!*UM=6tq4HgnqS%&H8MDmOD)W+Q+ zGG;2FQGr-hMgn9;$E30_u<)xDK?*!Ln~B2#eLX+^T~&*kLPik<(V5{AM(aSx%bq`vidSjZA7;T>- zZ$$cgDRi})%XbmCI!s7{BB0Z;+EUi|^=KI1s&J$(*~oga_`xs%Byf~kZz*>%(dp5n zG9-GfEFu#6j`f&?!5y%tOln&$PGBY0kS`jMd5^M)j1DACci^FmXdB*4fVF)q)}_RU zw9VXY!obD9jvmQpa+|DB6x3xHc1oDOOix{$EWVgBa*g+OjD-0ZSFwnTH46!5pTbn;jlz@>RjYNO?SJPO>UIOk{@Hl-snsV6Q(;^lhy zjun-gPj&2pj5$IQAs%xCl4IqObMNXf{Bs}jhkb_e=iU=_3bbwAhN@bQ^tMGScR6Jg zk)YMmiD{&9Xtvdt_-HD_dvNq(rXL)gr}inu?t{(LRYyo*pSBf(gcFYo0_hMWDD!m| z$iVZ}EZw<}9KJmFtz0qL>4VL|qyG=5-{+ruewo~D_7g*jlXbo>*9G_2M!+*h=(o0Z zpEzXm?U0C+1X(zJ$<5N{7}#ynn7wK6u{UOXV%d*LrC{|pM-BgU(fYQfY_tV_4} zz=z=U3tPsRRHeZg4>m4l)DLHhtK7YojE^S5d5eh)M19w#Mw!A`1{c7!(O#Ii=v0N) ze##G7ziUsqbaRwt06d=uBxo)e94?-}>U;h?9>ym@{oLbrU1-rXS2TxDtTP-!X%pE9 zx8x1ME3p8SNhu)F4Demj^=5~4c1HS9S`iTnA3eF!R&j9>a$^R;7LG&?IajwPt#Gkh zO<6mZX886`0$kyn1Zn>z$7wp9(XcDG<>&A%0O6SX($T{J_w21Un z?%M|RD0*1$G(Hj#BtdaLi;FYxw0r7^bW^Ok1x;V>ELjP4!5_H8ATAOsk}nFx0z^`e zI82sY@yO;IOlXl9Fla!-May+8^iw3cT7pWq;JVgF{f3ok-lhO7pIWiD8K(d(kI zAJAWwgloK%35-uqB^~;|V+7WPL%-|cfMJ3D!RCda_<#RT@XG9fJNOY*OoHlZuh)2; z^MAEJOH$L04w8I<1LtoNcUEG3JJb-^#3R59P{^E zFYc%h6U^lmnh5l@bP}y!cuZKsOhm{H?qGYRK%fn8oL$Y&QiHE>(2T$1d1&mv?$}bp zP3S9*GGCd5?*6<$)g0gC^L<)*IGnCL*_Y!1?;V{$XuY-7+r+|;IC;^OI5fS7<32+U z)Pz}fUqhdGFN!ke?{snyotIMV;p^eW0v!c`#MSoVrF6NwU3yF?N|;KBb36$B zLP1M{GA$^vL4UnQ?Kal6o?>a853liyh!MCXFlW6e8(2(+zGA4t-_)W$e(S=SG*)9D zqX#088+6_DpqUpX3^KW8-Xf^Eg~l#8i*DEiMI^MP>R&`P-%3^_?}Ks=rCx50Xy9G@ zLC{mfqNbGY;v#qlX9GQ6b}^`FHQXwt<{{;Y+B<5dGz zD7b$C36ig@+e#LoZ{#KlWVNV&_e0LD4PIP0U8QBcb6woHmKK;1a>}v&8d4#%70hbs z9DMr!`$)TsT-@zFBH2i0O*sP;Kd+~Scjmxyxh^MERsZD7yWh0cC_03`p6eY*DDF04 zr2}Q(QaV95H*VA>M}PRr+s`(WDJnaWGl>}zFg<8#YoJ9PEsl#q${QB16xp4w9!ovQ zjS=3&NdBg8S=t$(qv-CNBi6DNk%x9}_<#gu^lba9g4pH?L-%tn0@bN>l5Qs7#pA^b z3EMa-*xedomhXkfhD+Vv{@cyqo4;hg3UBVm(H#8byIpg?;8Nj&FH^*Jx-`~{Dd|9L z!*q1Wf9~mHftSVvV5xu zkU}#7TO?S#lZo|8C6C`ne6uS~&wSZoGK;p`t9bf-;|*Wb_we*g`5qvP;m`2BmDz2g zQv#FLVQ13Ka7mc9TcEOnrJmRdaefI6$7k-pO=gE`P0OFW+ez7vxAkNlXO7Kz`^s z9#U-J&WvM8PIizLOT#I)#qiCp(yj?7tg)D_81389S{(U}x!zUk;wX6G0!=SUjuIROY})1~sYR zC!4`^sO;LW_>zI_X&+gOn38iwX<9u6jlY{O2*;2VA_&VVG-%s9*tk^|e%ynV;JG@# zEZ#efnp?wUBy#A6smze{PE&+4<(urmG}C{SYpU}d4`e}Uu{x|HFQv=u2Cci`KPz{T zPM}lRx_;m3A&ikHS540c!7KBl9O9MxJCFDr37dR%r2n?WakW1a2J z&xBR&!4EOwXLUh5^`jAfFMN8rSOp)kKOQKR8ct4yywhbC?v>ed7BA~^guO=7FDFvb z*1Zt0U&gasjl^fZ4vQ4@WP*9v#lxc34{5&y+_1c zF-(>2<9<0V1w-TMZTtJ$#q1}0YDP-Vfx(A-JjL91k3Y^{yRkjdn0*iuI(&mfu07q{ z1h#KEz*pa{IU`AZ(=V2BwJezDeY5+-59OZ1caP!a(`2yL`_(y4tWMYTOP}Xc<$Wd_ z=kbi2Sj@Q(wup}oMczd5#hQRJgtCh2Q%rW_+uB%vQ!RFind3qPYId+0oFs?HH9#1o{Y%I(+6idSj?n>R=? zA=mhJTJ|DoIzZTV`IwbREJ~_b952Ujw2bWUyirqiqgY!!PZ2cJg1@Q9gb4?66=$KS zfpYKic;3KXgeOc+H=CV;vk_Zm$Mj$5#-p5nv+g`F`gA3iw8yWk33KPu0PBX`!K3|o z*a%bj{kprZdxm-EKDQ(PN-q!hMPvGw%YlC?EIp%yfoi+2DR>Ib-48)x~Z8#BJ=JB#&;_&lLDjk^Uq=~Jyi z=Wvk4@jp$rppJzR7QRZmXcSY^;VkAyM{1BpE3;!fKH%CU`QpwOACdLJ=pANEgec*I zOhcZ}vpd*~cAWHZ9#fi)%jpnc&iMI4vuB2N6!Q{><9pLHErt6Bqgc+fD2r#ln6Y6l z65u@aRFpF6Fd(S{w)=TY){V$1oQ$-LjdiyULb%-Nfue99tmscu4dh`mb|f>atm#@1J}xL;zPID8w(9MUBJGpPylGpI4DlNL6~XosD126L(Ef5)hET zM$W-8R1r|uE@F6U`ZAhhi}v-cto=ug&@P)nf!M6Rh3lala+~j$t8o5>l37|bg8|n( zdEm@{_2r|Vp0u2_A%grAAxNF~$l{NL#ZC^*JqCy^AU1Zv&1VBQ4!q> zS8xhsWRJM?llssL_h~wBs>8OJq{dTfDR-*)l;Q!5bp6MYd1TF5LBZ*>m;<;~0hKSS zhV?D=Clz%*UL(f@rA-k7Ss2>-4HYEtyyzc}dvk~l>HB^05mA;-Ns5y-@gYeOasbtY zp*66Bv=pf6!I9sgQ{~;U*$Dp3pt1wB9*4An%ebGOV&Atv6KU^`(ms1BbVp|+2nQ&d*KXLi@`>@S zF8{PJ^QZjKM_Tjw+U_m*)V=)LTNq)DW?Z)z*2XcH2KHB2hc(3};luuQb;75rW40gN zspe~fYVVF0`;uhs0ke*96=~9~A5k(#15v3C{FzQn!`(A;u`lyrKb$FpxxE=Z$1XIP z=I0<5?Znjb#RI)NgruGG*St^5(o(!l= zCp+U*FGGDYhB0q1nbpHqZAq*jFf;j#P>g>GQxp0Rrkx}pB4gA*S$o-v36dambU{4#bLH2Mf zU$ZEvH_Nozk{U_vHhr4PKu}UC)olqy?cAHs=@m+Oc$(Vu{aF(SK1|#Mqek#$;WMQj z%jD0k)#*(Rt(h7+Et<`aRJJzw3&f#AuV~x z*LxU^adFKZ@8yW4jo{2NqvhJk6xLOv;FKSu=0ZzEP&KN!HQZ4>uf5Y*fBR|QcJq#z zPo1Dwbo+W`@SO(Xtzo|~ce??&#+QexE^Vc4v*-_D>%YvXYy>ij5iX-4# zieesF5#y~tJR!ZgIKfGIO7po=qG412`_5$&(5&5L(C8v&N!+m{W>bGOCA$81f-{vC zqr~XgolHOiwq#*WRxEC^uqDvQb}izJYGcIi`xEXl%WJ<|4@yd%FO0-ofcY5lEUjmE z@p*+up-)yqkWKUg!*u@xCN2+c+E(~vfU1`2f17dXZ$~xNOyIr8iJqsse!a841?|xy zG+hum_U=PfjrsQszV{Cu1jg(7LNBKma;Qw#td?$AP2)r!Qwsy=#N*4#l2Iqs(R|7A zyS}oUGD(fQ)n~FQvgLy$1JYQUvJ3E=)1|~g!V^B7?^_$YD}qs&^IdA$uziR?adV(d z^{Mq#kz3wTp9v(zneX$@t}=boU9f08lt+T+LxlCEqlB6k4843g>jd=;XMUSF{zmWd zfNOmh^uyLo`tWClRe7;CyZCaiC=pL%XZBQ?Y`xqsx6(npmE~aJ@CXBU`9b)RrFsvC zZ*T*(i|8>O#z+sF_TSnVe3N08lOzfn?vilm8Ll7yb&NSNw%jen-11U2EKIqxrdUmn za^}6HneA#QcGFc_NX!9yl#tNS^c{EeMagl`!{I`v;()E__M=4_A;QW#)8OX30-Eje zh(ODEp#|&B?@F-#zzYtow=DfM6UAIK;QH?VP1_934jP09!ypNo7qZTewLZ;@t;~4p z4bnnl{g0PTZs_*4*_Dv>R!(}gPsndS(q2S<7%!nmVa*6%g#;y8$aalZpUF=ZPirH=dlrZEL-F>d5eO z+Uvx3eeW+-Q~G?-`Awm*i2HQC)-ueu9Ln{@fMPWbp-`aHu}+V&V>CrdRmU-3CD&@r zIgiXN>RuT^yZFZR>ZvQWajZ(|M}<>7wN%E4C#nRzm$srljU;u}Nh?hh@widDdToxC z%8+a~Fpe4%%2#W<`gkt8qhTGny()cr+wo;4=l$FVMb|~H{53Z0aQ+qC*oz_34H(C4mk=^&Ts{Pq9Q}Xi&z5p~=29^~iR!uH<(yMQ& zdLZ^?lw3H&ew`(0MdAgOq>^LI_ZuTAZd%V?3h%VFFcCS=*fo?MRr;OmgidU&z*af+ zTqJREE)!y^?HABLFvTun_5Cl>E=zkHg~BG260W;Kdw8ho%j~M-)5p%MBK@1=MvN}g zBmG3Qu^%T7j_-SZ^R8-dF=WZGGih4Oa$xmPwsFMY>JMg#(^*I-tV2MwGDqJ%k9c09 z|AT9l+-rIq!C)RG^(FZ2gf?+t*=Z~*1}xp=A!hdVueft|^T_{y{zVU@gB<{ihl$cA zQTGKDcn?3@Y~fX&hAS^b?>_QH&L!c`vGT&NKiunzc^^ll?F`gA7uN^?Kn(E2J#oBuw?7Y7k>{kpiEhhIJ8VWz5>ACI;CpHb<5{t@Znu*i0$T| zI+Jx5n0w9(F~lK-!Tr=RO$gO^>S}oOF3lvXHV>HMd;Ec$EU&ue3em|7ybvxNQYoZw zc$Iwy+)uz;J@=*kKZ3gvXTr%K#=(5-R%Ip;CRX zFTwL#c1D#ntL&^+OT7F7Dw^<=3lod%nJSwmqCsAyy^u~8p5s%8V;Cdb5RI0C~$y{Df~XfoHOz*hf#6x04c91 z#Jz9Jw-qc|B-{uXbM>VFwXykfAhF12gH5US3P}X zyA=Y!+@a_B5{2cj2_{s@3j}cM6|NLHH>Q|nS7dw;T&;Kk{QvFp$wRB9N-dsxn2A4% z40^)k%?Gn(u}T41!bizuL;#pB6m5=-v4p7A-d|8e0_H{KVA?n|yO!h59|U0TaM?Ey zy7oIy8*Y410406 zx91Ej-=aT2RJ?O6Zs3^1631DXXI9GFt9$hlM2b78KWbdt^<&GneBH0Yq<;s3dRb$3 zco?{D+ifv0&C=q%PT1tS3FJ^(-GP{Bwo19JiYYse>lA=lwd}yA{dj3@d2@Oi6_voD zE(%>{>+9p1StFYTyvF)16`2l`J#o z^2KDqhtIMX;y)9LX7e?Zj;=EUv<*(Tu2-F+@ohuk(=Fo}cpj>)R5s!o@)sQ&gIOCT zY_?>)=nE=wZu@$90MNVc#&$GdPV&=#C6#3D)}();3yB>e5M3-Ji^0POY>qA)#v%?L ztd^gD)N{LKyrcN~-71e3fCcQ;+3G32Q)>?*%WT_*d(U65F3cD*xf~D@kRjxL|7)-b z(oN+mTVmAHQ7C_|>)MxmYm=*o6=!DK%LIUD@N{8^g2?Q_{b0)nz9u{ilChf#J6)e% zyZnKxaLEh{6lthgwf%cXqXD3VH%k-cSS-;$A$J+dWx zZ?22qx&8j|^0{X`=l#6TbDr~@bDkIay6Uvl7pNf!qP?quyaz#W@Ck<~$-%!}zX3e> zN9Cbm_7s9>&J+J&eG|b12)YQ}Mcy*<8(o`_@G$;a*}C<>^yP(6o4lORu-B`f|BI_v z=hM$&6lSIlWxw@Gl}}%elsXi_$3SUijAVv0hN~J#3nPF0eQuB@&bdBl3az$`{9v17Au^0X=_tn$2xx(iCmgDCA$$7h-zvzjA zdTVnl`adBH#YiOb?Z?wY+s%`fqdDvU_NGUN^t#p#wARuOylWHu5)VHdZpa?)2A3R7 zSiiwyb8ZKi4o{s_OXWmFv4u=ny0~XTXBQ`?QyQ&Ztg@%;(O4)%xG!YC|IqO$iiwfY zm|LU2l@_gf>ohUrcJusElp~svpFho|)EUqGaN}icR?20CShvkVEEb#Bl)W^ogf@4^ ze|&SDu|W)U?%TE2=|8K=E+~=^`?R_D0-Mtc3!XvV0ZmG(2kOQYhY71}sz~HJDYR$M z%gzXEMn*<&8J(28kz&HTEWJWEvWz9iJNR1V0TB%(@~KvTV==|>nP$I4g@mSFfA@O_ zaXRzhS4gChj=WAv7=Dn%8ULLhx4jN?DC=P$5}J^02ve0R$dUOQvS(EN0Ms&Ds7 z4rPJaH`NbVtcWw-u9oyZB@+>7->w=De0g4nAXq@hpQf3>(_F$7p(+X(TlPs%zWMtB z-a4VdUrZ*O*@*!uqSMC!z3 zV*HiViNi$0+bjwo)gY#CH+OB(mOWOZpTz$@CH=}bX$20(yZt1Wm8l2=S%s#9tmwdchfaKQdkEp7WQtJ6^Q?1bA zFMa)SuRX7tcdVz@uehpGo{dlY?5y9BH}rS^u4gaVGaacXoIZQS`XRv!8+w+O)mL_+Xazb#YefK)@*jiRP`|ALPD zDJ8n;>cQvVZKbb1XdilXa$w7+EoGGuyg`0ZhraWs4sYBRUDlH0+<$BoFCK`le7eEc z#a*j-w_mHD#4KZ}RtDxS^;Kl0KF$A^>W7RaSf>)##)XSmW|C8 ztlx>WqsWh)@n5e2wkEXu)%5~+-9K$jT@kc!Ak-^=VaWQGwKUu64<@0i8Z_zKP3p}t z!G=rr&h+ob2FriQiYcE4z{c*-bgJm^lDYR%G^S(?>zzJoo)TWDfBaYd3HH54T6)Us zesNnbdkt9%=Kw@PL%d#G?!ME(=G)?M4==>g8!3Zk3^k{OWbG@jre|OckyLXyrHCWXs9> zpo?*H4&di!{T{*%d=V{;Z4%TkKo*#-&2PsyJ|{G^pC^&aWFvB0gs}Gls4?!=_ee*^ zLa#!QArS!FuA3bsf{Yq_~RW{1r8OeIy=4srsV75bcMI=hu}CiT z-6Y7K<=x?VpsSoajcxo*@cXx}ywdqt8V(v;kzA(fVmsWttaTW11hMDN?~|al^s5;$ zK~(%{$@eL<;qI*8p)A}(o^pH_pbaX^9teU&#M{*8 zyqI;@D2}>n&^LXg{o3b`@=e5^*B)Kk1RQ2E;ewz%YSHD$iz=lduNEqEs_$;32j))b z8EVwlxPfV|b>XY?tWloTS|*j`#RO!IjMzPkJ~*rwSs$!t{PI-NkHhjn4d^!UFfsg# zF0=y^?pP=tsY`Q{HcOq1*(&P&c0FKW^@CczH?XnwFX3MjSdt)XCn{HKJinBL+R8nz z45Ww>{$skF_eRSeU!%_ZD>O7SSNjzm;n_^nQxO=Wlhu5E>E`z3FIGA-1G4;W+2tqw zekq+t=shi#k-ox{p-EeBrP--P;O^vMr^eTo^LvnibLv<6i_3fW;^`G-?o;|ssE)+F zBcjVm&?pX?lugSm$ZqpHY&HT4DjG`;4hq91>cL#SXIyvKZIr3;>yG|Cd+g>FMqnQt zP96dhg7a*S-|%YBBti2eZ`uB)*E=_wD&Ik>b50Bd%ym3kWWcG)QP9|OVGE&=wv1vfFYqgf{%acA0kv@NPJ>YhHf z@-8IVne#z0J&fx&pwx_DlGrNt+;QM+yxD60t2ADI0+p`NBibl{bFlBg{~FD^Pr2Yp z>9>ZHPt?V%S7>BHvmIXPuTaIN!4}XOtvicl3B#{UtTf&AhQCrFm#)1icowc@emf8K z@{<~U3Q59n>`B=LYO{@>yI|!$>ZP*z`tzasul34a?x%mn@P}NRksIVRGcSS5Bv@s~ z!mxK8CJ57y8+5(PWon$Gfehy%W((s-W|Rv_OM&^B6<8v}c_HP!XotTAGVf5k0}-c%15s@90WLtsYl- zL(iRTQ=X*FsV|>P863bmO|=&f?boMHDSO9*lK*!eIf5w07WV_^DtbSs-o}yC+5tb&bnboFkjv`+ zYu!dYlN%Rq=D(twZZQLd4gGDO&d*a%f?7Y&Z)V1p1p+fr++_K4$I160U#IGQAw;(O zr4&wL2jP6m`1_O!xcw3)8+T>gY1?nPbL=;1I?2hv61#DFQdG*ItPN{J1&sekF+Ek4 z``6kw{vqF|6?WI6(vQAy=);bY3~Pbdb2G{nQb>Q1@1l3th`1=xQFy~4;piBV0>JHq zz`=r7{l-~L5Y)$KGc<1r-0B6jxrT>UNf0Ezoz?#A!I0cjni;)OOHokLV&^zZ*p~45 z)n`GLF0NotGxOIM*rxNt40}To57J?2ag(=TTVro!aR;yUX_) zZ^LJ48Jn*QL9OCBBHQ~&bUDN6{Q<6XK$f6KV8A14PUAq<@72~~vr~;&lUu~%N7c&= z2*A@lvHP5Cn4gLiB`sYXY!<%=uhc* z;gwqK)VnxxG8;V0VAqDK)i?LEsIE-myr|LFlF^aS*p}+hFc}y0-hK2Fl#`d`qB?lG zWalrP9Q>V)AAL~eAAJsGfqZ+Yk=p3=G$7W4(^*C;SX9FJ{crhU4I(s z*}YMgyeedv$pj&U=wbCKUx#Ka(Auj}7ul?6H|(8aqNY_AAWM-sC>6}N;vvIEo9Z_6 zN?mZB$MsV2*uLl)8G{L)2#Ln};<5%wIpcOF44B6qJ0bkH@a5%^LZ2;P?dHd_cj9X% zI@fzP9@niJ-4sF+vAEWpzv665_~O3z%&^xb9<}3JxxD{-@^zA4uzFmA)9*Ubyrd>| z3Q5QR>JO}V`w>EdRqN62ycMHv$A#KQ(Ce3xk@(M7AXpD9J#|m=&6Pof(5S$H`Px3M z7eR2|5IW5GLPEqcq0xx?RMfpYfmq-z^igO)$Ghf_1!i(XV5SzS-O~e-Lh0sjDOSJT zCj}}ZA|`DUWo@ph=RPDzr%4ldtz&iMYxwPh5hZ9K_B4WI3na2q4#~&<`wI=2&E2y=(BWJC}$G zP3L6Ib-=(dL3UiW+=LLCGTZwwUuKv~0Rgc!pQ!G?@I7o&bYACN-1Rh3$~xv0-6c)| zqUuHB@weNE@=RW1R zj%q}m`prD_iSSkn#bu1-Y6wAi$8|<~JKxr3x*}gbw93qFOd4YP>oL-$gyqN^esO0P zooDMmvbS5GhDd!{5J@;2(_cTng}^Ik7bJm}?A%ZcG8hEr4c+%5;i0o!P=bO_tWx;F zS6(uQw*6qda;Kc8=9He-L~>ELFg0n5t;Yo2lTDc!_0TI>8?!&e(Z#|Hi*U|`(GDN_ ze_|T3vb3z*oTSknkjC#D3K6={%h-mPYY7zn2j`@j$>1DYKj)A_5M5kD46Zc3!P=Vr zQ|UcW?#~8YEgrk(1xMhm3@++(btO!w3L#3Cju%7UHJCC}zV)ARP8q%81=pC01G-55 zsUExfnJHCv!z>;Ct9}>#^6T4%Y=f1|Jy_6H5|0kL&rBC(efIkgwn(CtO_l=j=658x z7p=`?agDB+;!!@L978I#(A$rxO05~X80g;JsX@qHtqr} z(^jtPJyep?5xHG8{$(i*F;#*~f%ljxy)K=k>^s(m>SA61E|!q^WS~cq;~;8tP#5!; zazULRtygdOFrAq!ZIce8?h~ddgp2Px0D-it3fkR{c~8d^W6X?wLJxtnE@CMOO1V3w z9yu_attv<{dH$S!293?=#u_x|1z*kFNNhEr;;u^B3lC>%xXyAm!1h=bfv`oM`-0DR z_kjnsOQRc&Wqk$EDfpCbd;$_oW+NSx?7g!=%6@VzUO~^F#Kb|f6qu%IaB=fhRGMxf zj~9G#?h;Ugt75++vKZe>#ULAE9l3aTVW`U;PKwtnbEr7TV7hpspuC%j1)4=fa^&9W z)ZEY$!c|s<5CwUBAVIXdS}Z9old=yzd)&ZkkSWY?$ePPCE~4VaXLBs`Og4$dI#L6) zq~x5=H}Pw9fCt&F-Zr{IP1-Q1^q$MQa6QlQ1}wuHo2Ab@qI_PeN9dfV!aZ^u52d&n zx?;3=nhUiz;^!TUX@s8ZOyRPCaNp&73P|JMYN55y%19ah{<09QDZT-FBmPC=j#PLQ z&hF`z!jc#`<#h=t$X5EGl*#7D>((2+<;$@5?$rEk$54-A<(uQ*RH@C+0IE$EHr#xX zanOKTy-6M>?>ic|&X)%$mj4mCOsc88d81`q(q!Y&ACDrGaDgXGVF(fb&S(h z-B5Z`UawSWGkowq%WohXfH_%Md~K*)*5;#H;({0GdY#Q)EV zw|Z}KwP#U1SAF%Co6O35*Xc}OCkn8GESy=HFM4<1RS1Vo`f7_0D>F5kqGOXdP0*eB zw|nx@#oj)p1yF77Q9$vLr3x?trGx+2<21ll7rpW)9n`V;Y?*kVmzxkIuiOzq^vUFudxzu~&Ph7Y;7QCTbei?}eBOwNRlF4ryFd>$H;dwXaO#9c$%Sebds!{{nWtwgHVt_IjK z6_@?|%RZZ%Ov!$BWvhBHiz$`e5KFmlu$LgRT0CGu zHkmi85Biuc!e@hH(4V}T_CLh28Q&aaUSoYnZS?xq0F|UD`EdSfWHxzrT5GT@$&KKc zdjH9RiZt9LkL5MrG~?eQ{ZyNJCJN{_O?1Ae2G#9P^_+b@cBr9(1}ke3<-=D^&3qAL zwJQ_JJM^=L<2kh+A0l~3>g{Ltg`VDygkMwPZ+hsxM0z-0yPaf4acpqh z-?!aGqO^}vQpY=VtY|CY^9@=$Hn`$upBZN|P16kFx)NR5)7=bNP76ugeDTRb_XheW z%it_z@F45?j97}ggU`zr>2B9pluNyefR#_7U_rKOV1!ZnzrAnO$HJ;9u24VU2NxvV z50ACn+mGFRTe;n61eAgERb*QxU35xW1kLO;rMc!wjR4~kY_wD5kzU})f4Rr*r+1Hf zV27p=GiBTPUwAKN%~!{y?3iiG`|ptwWEWX7PhTtZZ};LHQt$`n>y!yG|keNuZoN1i00+2@c{Sw zUBx8i%DHC7Q_NakMRIbFk_!4X zg`oC?)4}j--DtzkT5R&NoXsnOiqV_^$un6|Q&4$>BEaPlPw`jTdq+(*N8)t@v{kC_ zj}a~c6$##O+@I`XVb?F}4aZAeQWNXL=Voq6>|=N(K9$#a!x1zL+!}MOQXTc9+&3h8 zOqI>o2Dp_@WIQrw-p9BPCG*IL5ma_QX~U1yA}(2F_js^_-~Rh)gL|qweM3%h;}7f}L1z z$ipxF`VYMSg@KUu^yjbg@o!(3U=z+~EU_RUO-W=u z^eaULbWsB+hK~sqSmKysoD1~Z2=nT_ zF9boUS5b7h%m4o@C&9fnM}u2WD77|-`2~OkY1W=(-~E^dE`K0|GX+LUUyC`}oqRf) zmmjjBBg5z+XR3Li(fnX6g!ve!sDzyHSB6~@l2$=NxK1tV9CkBJzxHRlFeMB8suRR)XW0O6suVi+x>AeK~5Dtge~tsrXNN z|K&(S3kfM|W4h*W*i=V=YGp`0syh ze?sLkNOPhN+sV*6w)CIM*S=nDC-!1)0dEYY!v7$$uh2X*Oe-KFHwz*@1;zZo+z2+k zT|=3uE`*Eb6@zS^NIgy?p2`unuE5W#nf~K<1fN?iQR9%h`x$lo4Gsx@fPK9Te$M=9 zwmz}()c!B<&;lYxD8!z-TVB?(?r$P~%o3mJQna20c)c#57$&$uFZZ!eySj;O{&q)z z+r^{cl6tn^X)3|&L1!%Xxx=ScP(!7j{sM>s5_rY;kA17a+3>h|{(!hGb2WE9D`Ccb z)sM^*3ylr6Ff9+wGCFNyAHPPmqU)B45d!at0?i6VyeLLjA(N`*`E~F>XG%1ONKKgb z2V(>2MtMwC@YniTw?oBq;8EwqPHFxglr;|9)IfH1(@!_>x(@}tG>`7})pp8GqS)Wwj5w#YKE9sjzqjZNIZq8d}@>g=6wYrOV zz()V^$?u}G_h~ISUy^qFS<65(sje*!8zb6vit%un1m;z1uB?NG{s_z_{ib+mDIN6F zQdg?Wv&rXiVw}6r&ebf(SN(xgOOBadOq=M?QuCU2VRj`{Q&4wOagvq9ySXMa3_9COcU2-#cb?z(Cj^E*&Q9w{z9 z_36ZTg-%yuY?o*t=0Hdz@H4l>0Sd!TKHEz8 zeNgzU{vh(fLm0#*=7e(py;eE}X7uF4m|peXr0L5nsB@V7FmK}OQ?;ohRDi{XlFk74 zX0^`wMNjf+%bl{MBHqM3O{)5X*wXFvBm;2-USaG~=;@z71H2Z~iD;3bv5k6O5dZFQ zy`8nWLIdqeN4Z3-yhuw!@6si^ZJ^t2GA55b(nSjotXP2yD9iKSX`vg=?vgi^@ZHI& zJ*lN0v*#4-ku_OEp*4pE-SOHX*xTX(6UOY99({TM-#mJe8MB6}4FgR5u;yKK+;i^Eckkab?OQRiT;{9zgz@43gwbn;tD1 z>P|F&uhJ&DyG5oD1Zk{CmO= zlrXiY=7AI)cfnr9*Wf zd1~LQY|MH8$HO9X92boTl)9;$KvKX@VlIH=s)=_$Tc;q+7khiMQekj}7#2bH8m4&G z4&@Oc;ugIx_&(L$SgNKg&@Xrs@u&I@E7bOl>`V3I*1X6kZnd$+SM+xhB|iMz5OWig zxt}^qfnla!HJPjLb-3AzE<;)4!^|GRD&0yE5eEZ1Y{esm?N8kTV^?k<*nb^{{r;dg zQSuX>qzrwkFf?wiAesDQp#!-5{aoc`QeNkb_?dKVg2ObOA9$PeDy;~Zpfg6v;>;U{ z-aRvHuz6>=vefe*jhEO-<3L^M?dp$na*g;(i5yl4b2nc~mm48+>hUDg**oF+%0riH z0bk8z-CfHOLJuHbfTH1Jy-B?$Tv`7jb)H$JgR8B7E88c-ec=i_>O;ijj|-KF@9JVx z9tZzAgf>UnK0UyNSko6}znu|)@h(yjH{+68mJO<&x{f^x!a`r_K3O*BroClO*ZDbKm36vj=McF*0t$Q*Tw6{yHT5g08m zNibLYlYM6hrlqs2t3fMgmLtLPDE`5igPaQs|rhxB+UHsVe zFc7+L#kL8<$$4M69YT;iR6ao{KN_R;D5@Wit!yt_LOgl;G#8yv_VYYOxlfU8ZBeTk zBXK>L-0#vf2|^`V%ejSkn7G;K7M>l7p@*!W=(z>6EiH;Zv)iqrK7{aXUwAB;mKGmR zK#wm6TAqP3qyQ8DG|3`o=FRLr#&@6gP>uwWDdpuGxM18=-k2j`!O9nwAyzD`J~%u& zRI2MKZbjJZfvF7Ajxa;a-zgZQ>3V5<>VA!|Y`y>k7B1yVwcJ2lVEecg6C_kWHFbUy zHtjBskwD7geddm<=N)Otp@7}fvzS%kUeg-b%VaXlsUK8+fRvGUmBpc>$RYeT>6ajI zyV0aXlEGNZN(=4&rLv*E<2cxhhr2ufcxd=c;yeVTUKGAi(@yTc;xj9TK}IK ztg^WV^m+z1-AW^*c3u9LN2)Om6;wK#PI;%bf~>)r4~FpJfi{qm^6!V(Samaa`-Nzz zq3iO{z?v50%jm*GJ~MsjwJ~g(sW&S6?A(_T0_qkFaYwB304X6~NsMH~grT;dWFALZ zi)wNH#vmO0q4V}mg%Vye)G32~J^g6%$2iz`24myUs_ivb)r zz>WeT-0XYa_^SpHH9P-^4~64?9R7W;_fe7LoUYjy$b(=JTy9!BXK2+8d74*XVAC2^ zguAkHiPF+c<8)Z!^ko2SG()b^xX&Stv7dZ*YKDsZssVUuCmEOdOhA!~UjQ5u(cd=vw<2N)2haNva{B z;Pw^4hC1q=k`SMIDf2)9q3j^E?&t$-&Po=-)O8$pSVcGhCmztIUAM$J z^OftE107f7T44?PeapfmQJOL{iE>E^iS=R!NVBV+V=@@*m&fGG1c2GcQXBe3ZoHze zI7(jxcG*$`YR$|rIaaKc`aR+yU`tpAdeK39(>19Wo}Hhd$KnnAY{a(%=Qx6}eyaMp z1NWm98XBR3C;Vv=4zN+d+(0e{A9X)R*`WY9h|q`?m%*M9T4Xj){>aOR9dg5<>zMO8Z_85*q{{+vF<3qDIMi zkk#gYpCp^g5q{pmqeHK;LLm_x=_Kka#laH+?>Rwm`kBAW!G+>Q9aJofkTP4CX7>a}hQ~wo*YLYy(qT04@ zm@Aezr+f5{fze>F5rvtL#xw?Y=%qj1Xcbq<62w0O<;5(g+hkMQDe4LtV7V~9bD`d? z#HNCH&j(=R$LDjV)-Mp*F!~_#OX93A+aj3DN#<8YJP|Lp!Hu>qc|}~Mg)@7rT2>~c z&Z95>5yx7`d$(wH3H_tN!)LO8t5_8= HHevq*j5s<{ literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/slack.png b/apps/server/data/resource-icons/slack.png new file mode 100644 index 0000000000000000000000000000000000000000..1505043b8171c3621ae3f09969f7ca5169de20cd GIT binary patch literal 15964 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/teamviewer.png b/apps/server/data/resource-icons/teamviewer.png new file mode 100644 index 0000000000000000000000000000000000000000..c318fe4eaa09e35673d75423b7abbc81ba742107 GIT binary patch literal 2459 zcmV;M31s$(P){^X;5(znz^C zF^tzzT`ptpJ_k(_|-#}RRVboT~NBP$kdNXyn?u|9>@_bZh!j<^airM0G?XU({+ zgvt(GjJ=Y$yR2J7--%8}@v?*-po+j`3N_vgzJ9T!(@~j0i=h)y0<(9k0%8pA3 zYkpa_GgtJnzT<`Imc)^z#8Z=mYPQyTs%2EBWGZGz_^ z!yTHrbb)&BZD%<%PkOk$vCDCY_GOuqxjZ`=mbX5nb!$yC>D-&Qo{r9!WG;`JKTE4k zS}pj|1+}!`M73ygG$3)Q_35p)+o~W)TJwjeIt~%5@GM@sCnv+oFP2uS)|7CTCc4K> zs^w-#e_w4U!>X!HqF+Or<2Xc<5>}GJo0DO6ZAqdYax8HiA{X@M`n@%r468+HM&gp6 zrX`NURDG|%$0Ksz94_r-xFT_hRczrn0AEgq#rrfPaTLb^_;NBV-m7@F*R~7OLA}{3 zx#Xf75?kAAs>v+vBw$BoYuRXFv$-O1ZpQ)mb26GD@xH=z;B)i0)X8Xq#HzI*Z)`Fz zIT&(7;yHEC-GPd;X<^9Ic)^oka+H8%E3~D z0R38S%~)*c!(mWiC7*2%MeahxYJl08;eF=cwrp>w_$PI~gW!7jf1!A4f z<+^7Vq7)M+qwc0HXOX;{Dz*|$MsPC9LNjEEiw+jDG2Hc}5>CeO`Sgg~dxg@?yj@*S zD&74jckPAO#)!H02$qgR>F$`}uk7clg7eraHOJtV9F9ZSEBm!upjtZ_9$LDlnJr#x zI}W9Pk63<=QsC~F5hR6`9`@2L(`s)cE$T?CJ9?fZg@u&JaYxR>qBJG3w=U&NoeWQs zV#%l1>-aF2tzEsf4z+MHQs61|o@aSjZR*TP?0uf|94Es=bF{pJB93 zTS-?UJBdB`tAxL=S|}2GE-WWf=z^c3ByM3NLinqdC`#g%Hh6@O5xB)k?Dd)tk-}fA zDoSFqF_HUrdUg_%jmg5f`6ZAFE z1c|v^nz;1Y0*Seo$ALx@B&LWyxi7EuHr>@Fi6JrsZi2)R83H#!Vv2?QXkgC+;@y)N z*8&%!2@(%P=0K!RAGjG34<~yqb%{)YM?gU0g|!wfwT(>ZBdC<(d0c>s1p)Sy9r)^dw zUiJ2)w=byb%a2-Iq#M{CB*Q)uU-kR|b`jchh8{-rDsdwo5$7WD84qH2#he}nC}C=6 zY1OzYe_FK1tVn#sgP5kHHB&2@lvFvo7U>s2|J{0|*JN16o)NCyFtUK2V}1PdxCQba+z6hQfJ^MbiG&f{r5@G@X0Ib)IuH66tK(tE` zfB{PT+7F*Rp?xvlH@X!B05Eg?`vAumV#xr2DB$`v9h>mkKl$|0XQmpd`Fl>32w+Cb zJv|VkbmoN;g6FrXkPz5Gcjwbd zXjRL6RKO8xXHr8U%)>L(({|)IIu^E7ZPz0b)sBhU{=AwY0Q~=0MQKCp9h@o;g9y^U;xnT2MSUlV{U!zEYx{x+nCz?GS;|7?~Hg^2B@5QR;o< zD?78jhN|43>k*;xr2hI9tv=+LRqdl?)#)Tw*E^P~x3iKk6wR^O!0LJ;NyJg1W2*k{ zlfkBYv7RQ$fad{D--oa=bsnEkg4Jgr|1Gh89}Uk~ zd|!k@+r-&R6rWYo9jcARQNRUR)PuS&VO!zTA40OeRNoWW)Lr`UF5uwhjm_Rq4iRir zK|71!uq*jL{VVe}VldIktBqvA#pQjqD$E;g_)8Wlljy&d>{e2GBE$ zgy*3)%P%c{UzKRKs6w65JK4Rzq+PodVCUP{_&VzDlP~oiiX)qJ3Yxskp2x8o zX9Mi97!d~AN(I9H?)oT4JwiErHKnGN3obUlF&d7eiP35U+VkhKi zoplKtE7^&ppokz-w-$8hvqgXwxfAxX=L5% zmdwgl{KcmW(sUE^gR7;)fHzL=>?*{X#-0cM-`P#^(i~A{T6Qr zX!{siOi~m+N#LefnD06FldOzybDWBQIeXea_HY}Ewy55A2QM0(vQo?Y@gpB}E%GI2 zuGcYat-$f=_MT8aiwAT;9^o&R{j#qSk@PgA8nbxZR7f(+xfF-N zLpA#{i$;>Eh}k1lC}=ULU|p|1Fpr|5wzWpzSm9tL)(Dgsgc@8APU zga%v#vPwpCQuok*Am2jtACNL$cC;#U@Q0;yOu$uL2uq{!D?0h7eTJ>(=Fu{#SeF z7*wrgS*HzD17kV{vy_tjpl?vE#|=T{o7CS!_fGi8>`7=ex>ikowF&;oE7EyzaK({- zSPw&8!cYQlq#D{C>g=aSKWX1_Nf5!qpyV%|@t7NDU$@_!O^$t>l+NZEG5U0+(t{yS zwJNG%cjL+R?Up~el$jDfI?D9FsJ>P^E0ec%r_Lh{)2F^q^2AY-cKvM>2eZVb@97=! zgcb=`usgqm$+E|wQ3YMds>D6E{i=9nMdjfvn4NM0MVz|_ zHFyzP81*2*%dVVXORoLm1+sTr>KAr9v(T7pk(OBMe?XGopT|qy8ed_qo;HFE4h^-I}A#_+^xsVrrr zqx{Er%C4VwR0#01G+fk8ZB;wV{oLZOiYq}Z3L79pM)qR(Ka8TTRGeL~8>@g&EE7;l zSR4bTZdNU(i}Tvk-^Zil52afO_L~m_rME6xYpS8n07F1D_ZCa`?0OSF8EW{GL>h~u zDsV4I#`sH}jKrI_4&Z9oV;qSv0P#qH%w5caYHVNk`Za`=zY7)dX8Irj3((G18Gicf z3{dYO4eJe9vJPAIgTS}KySFL!eKV|-etZ^*u`uFq!dgnW3~I6%TvWtPXyT{jB=A$1 za$FQF(Zhi48_hn^UJB?Q5g_S3RX6da3z<98b9DLye8HN3+;;Kxqbe1^*X(*em_0^4AMr?2UC4y~8ldf&cYbrq9kYZ89* zI}Z@XM%#yuaJ>QuSMz46VgZqWfh}R8%lR`0?-?RLyf1=J;&IFb7@CkJ<7>Uf=Afy{ zS#aT|k~v%oZNaLzI&>Hf+rID*UB&Buhd%o7hBMstRCVWYV^cWlrH z?kFpt`%~#F3#&@_9ao}E?{I|3P*;L8!)tv4J1>zv?qfRuW&Ezyzo(Sp{rkw#des)ohAG(N%EU$UWNYRd`Mv{Xb{DzETUK~o&&I@Ma z8j~VM_P)s9R7B55v}6r?U29cT+NUfc`SNETL)aObjbgJJ6z$JkKMGnPoiI{HmK3Rq z^Jzz)2Aq_MK#HDk9gZUzb3o8nuhn0H1Z9Jk5Z|$nntb-W6L{utkvBi6Tx2+0Lhlyjj(+fW64X z<^>LKFFzcHqcyl8kZU$#LH=_?tKt#n?LtfxD_OuGL9QM7E39ZtVBl*JmYqOPWS1kF zbe=+<+|S4Ac{?>cID?cxTW~m3zL{_3`^`)PrXM1IS7EL17b6c}WzaOf2Y$6fWP8W8C=J>DdPPgEZ z57Gjt6)`MSPw|K`vCl-wg4$(v80BVqWYTX9NG0(Zfb!C2B6CX2m-C?cwoMJe>D`mh zN6aIivq(vOvfugfI2A%EZ`J`!P`klPS7H6^{i5gxL9FwiX%TTg?a$|}Uoz(V4u4FD zE7~Bh-<_fR@A49u2q}s1rU$qY;A`~N4?^Jfa_)>|IpF}oIR>8&!Y18xe=W<5b8p9scjGHrx}9Y z9n{hwUU-AiNQCHkTcOYu6dr!mKU!U+-Fd%2M{Opc7F%F>CWL6|#3`XCHmv zw*!Y;nnlMWzSf+LKh22cWf z>e?MR5EIs#8ZIU@Uym2m54!!LO@1-voeUl$vh#PuaWvWg`S>Xh`MR74&@V#RI2ihI zR+W$rMYw`q7pq}wUx+l-n<3n322IQZnDY=n_f7hWo1z(zi;#T=@j}BgsX|k9vp#?p z=`k-b?eUnho0S2cq?X=q-p4Y{bF}lz;7B2=THnTfgivUab+?>-A+z-FMVXwA5ncjk z8P|^&O?%6D83Di;#L|Oi!*9x0nMGd#cD2OK5Elm_qk>@fOaMFOY6pY>MblR>EID;B z1T)V8;~C3}%+RwOST{Ht!%MuQ0{Hms3DcdCScPc~dUXa}1j}EekVEoZaV|wG28bHh zbGD1r(Ec7~nG9Ex@2i>zgNVmjjOLY=;@FvQ!ho-khV_?dwj9R74bbID@xrGc{R%Jh zR2G|}LAB>I=zef`l60sn_sj7@m>t_o-T;DmdLjaC+RWT-J~1UPE-;Dr5%Pi?99G(YSZxJ+5( z{k~7Q+LbMVmti)li1q)4yeb5kg+Ow|3mwQm#B)I+Y+cnTa_in_IqWDBqpa{6(;^`n+lrmp@GGf zzIZyVFiowQFvVE{O2nRsyK|-TgptUY$Vf0bz3KLAr%zn8P!`DOVTy>zmIv0!Wt*a{ z-9eKF0Q24tz$JmAOWX*cr93dNSJ$yu95F9%`4aH*kIL&M7;-#RvR#p=9P1}XQPuv` zaJnh>`js~Ge;^oTM+pKoX)E;vsm>CRiVG?2b|L71A6;=cnFP$FO!`aogGGoD;f08G z%|mgtbp_c<5yHeh>TwTr*^9ey_I%kIk10aK9kg}=;Dzw!0z;6%v)qF_-D1BnJ}E=v2Fss|<^~lRN=7_LK|1vQTXHYkiGN(h`M7mx@NT zj=sJ}$O4%N6=sOsmx2s?A;5;$HU`^*&Z98zO!b#~9Sk#RIw=-D0Czv6{=WPu9pp(Rh`UAx}65{c4q_G{b}H@BU9Uef24KnVG@EMAS8@~#=JPQOh!?(AKPwss_qqov>m$qQ-vy|nk|kM?Yw|vLBEUBGT$H6O5A0Bh@N*M7sktPq3ca-`UEnp@X=701@d0++udbT9dVK)1Oqt35&eoO&OFV|Xu;75&wPeW8HyX=&;#~sK& zV|l<1h|#DDEy{G;0Gjy`fh1i;1!-sy zeAyHMvN!$lP9A78=d$5-ZjJ`S2_5Xz4$bc`5b)}T)6c{w__m*Kn8WyK1>8?w!**ql zp2x{!QjbKfT&~0ng0PEv1Ok0Z6cv8Cvy?K<^1#;@8-Po3_*ZO|gvIS2<2a-sWrVx;}^f z5oueNl^+$k#~}jlQ*XWNbep8evR*NUrmAc9?5sYzDl&A2Ov~SrhmzNvRuq7=eYm~^ zs7r|gFx?|<&yA)SB+U>AUr_UQd@-Y?mfb7BWihNEn#tC_jy*@AsKR} zlEn{1Y=BE0u+!=q>`k21$9H}KJuiaE9uSdYx-j8XiX32&%_hU?(YXL!+Rj3=oI>5i z1>%Ze6AB5qSpO$S4#D^x-6M7N2qW%h{?8YQ=_Br7{O=2SXd;)>1~TUtFWdP_P1L&J}(Qvohs=}5j!`P9ffB>)FAMtO+3SKVH!B~kH#g5GFz=pph@_Ayq z!)-CqTmboFstR!T^)+se;+xsZ!166%6{Dpv$gjxxy!2N{zY-{|1wezX*Bjzx<-#a=k>rwi0Lv_HGd8Ua4}|B>qUxO7vPmcNuTWVTuuT)A!dB23NcB zM}TIleflTji0Di|P+|taUI9OmhraQg(UOlz{H3b2 z^DLyyf_YRBl*E|r3*vfx*R_bP0}@P#qBvL;Y+Qk79Gu;gj@?~HtH0)b377+OSfvx+ zZTs$~QOa|sFt^{@oza$yoLV|2G^r_`clE#XEm?BwnA$&f4&9a%-(INuLS77!3+Qo8 zW=vh(fOHq@j6o8w@=U%2^mxai_ZrZIo35a>2+&R9`^=>xWuVUIQ`s&EVGgiWZlj%X zkhG+Iv!_G!8-p8S5XnHApyn*#1l!1>b$YbZkCciS`v4){Iom2Hw%R}areIAAmiac8 znmgSar`292*u(#c=6Ej5?jVPO40JUkpWj><&~A}60Fh;)`>-ANkk(a9+ZSF_1ZYovN4Hp7x`PHLgP^I59OCSD!L=?m-_c2M zTBQ#ll!m;{I5xYw-*K1u{4zJ-m{S;#$>xBCO)Le3-Pd>WA^h^fqKu(&n3M#RuFKPL zh^i!>U)k3b5zXm(2Q3d&c^)+yGt&5W2(x84sI8jueM>!AIa)XPj8@w($;*+OfJovm z^I+?D$SI>#s|z=mxlPd)b0%n8Nuzug{03cfL#zh9u6J;a$R8jDKqcU1%5v7OIRyGL zve3sfX!KsusQn%b#`;dyfk(OmJ32V6>(twi#vwcIUzRY=u~Nq8EAE5B4C`t8B31zw zA&S<^W`HBLBu2af=ty%ct$a}{^%MO_v59^4d4)jAxb1%E;3dT!i?+31CLay-Re>vq zOybxIMPSAR=*<4-ddmJlET+)OS7`iSgJ%^FuSzH}a83-G@LV#7x=4d-OIBlA?;4JA z`OEIJ&wH)m@Bxv|hQlnFx$P;`FH^X&IDoff$E#RGrNR^tF@GT!AVR5Q6tGVAq$5}H zPldkGdu*`t)uaq>=1_lrn>q9$Hr>g8HvFF;Y)P<~~b)Mb>F+tXI0k?kuOlL>q)E_xs8_THYuPJ7v zP7I#yFzKuymFTzK{-FT*XJ;@srS85me&nM$j`jYF1ZRW2<;9)3&nKQf*K10~OxPwD zYB#Q3ArG^^mdsl?vG{Uy3OmP3g)Gx$Ld6SjDTANT8a{xl@$J!_P?%l}FTV^@iS85# zruv}aSoj69e*VKtOnitK0Hg~LY_=ms%(^|^<-1OCygs;Dx%TYT-DEaDaK2e z_bn!e_CL)sQWc{Y3p6@k*w-imkA1jDY5l>qw`qB!kMM$%$ldoOO5WxckRzpa2fn9vF$01D{-Qo98MX`!A8Ew3uWu(fr`X`S(Z)znfIw+h8YE3 z7f5ugEa}neGnCnCKU-~t)7MYK%v>c7en7FrFp}dL`9;e6mZ3E8{Zdcg;pEyyBbHXTCg5bq&wkH zODJDCwb>}~j2zDpSedqO!e~{UVn(9x!pGPo)ZE8G8qbPQ-K0@#9)ti^dP+lHjm%!G z@b;4~7b?o?Xs5FDkKk=L$FD*mOFL5smmPA}3}-6wY+vxyJ%~yR9q#7x-wg;OVT2bp z&6rEWukK%8q3E?&N>_uAjj7cXDY&N6PzxDI22vvTxE(X3_tadH2eWs8qYFIW1{}|6 z;E@v-wR&+uTn@QwJwIMA*0gCZ22HUMgRCjz381y3T__rair&`#Dv&BJ`sgJ9MAf9Y z{zgWTcqxV>PC8B1ngHoompT|0sSIdkI)z=}YZUKr3}P_2;eX0cC@0-e1-wY?@Ut}~ zS{s*dYd&uNgSE#q=}SCVg`#MVSJ2Z&Fl0raY|XY?#e3gP2FOI^J@)zV^@o=htwROT^bdA36+C5<$xa=BwU>aefXP7X1Fo<4 z^Dok0G&`9HoP>P=%+1N*QG>Jyf@6{Nl)K`12Zth*&^#jL3Gn8mb|&mVAVOdlooDY{U@*fIlm}$Kv1jC9xJ2 z4<^>NlTfR>gKNURY#_2r9S(7JQ^S(>H2s*+Ya4G+aT@C!saEOgI7asQqNS?1&$p+} zwiLH-+l((C%5>$_$qabXZHOhqDS7s_+rwQdvMe!9#f%&*XolE5fmey$<>rorpxZ;6 z#}?lX8Oc%RPIe+BFtO_K+MDr^&rfiShTt7qu-9T>JT-T$q3gRRnxvC3kGk3s-3&U5d8@ZZ#Z#EeS z#=T)gv4pa?I|{x8T%Q*~rCiLc-hKnHzp`g!;fv(sB=>z$`&YCkZI7@K@FUgl>Hw{& zj7Hd`xa)2KF%Ol964KgO?-S&sw=1iELV)43GLfOHg25}}VA*+zG=c?=v^+@HopIx{mHTexo{~R8l!Y4ue1GfF`Mz$`@~^=`|$^B=DglEG`9V5CsjZC zH)@!NUC4HHXy|tThte9#L%etFFj4(r7KFMDk2+>Jaa_0+yb-S?frm#k zO5+|d#T@1Sv#-!8fV`E0DXVap5KZl9pyC35C=ON3Nt*zJ{4e5qpL^?#hH4j;|Fvrl zU((-*Kis>Iw@5p65|=`Os1HTrMe`A0ac#DqeAqB;}yBxr=Do39`LZC2f~= ze4Wr&L22Y(SW~+PxUotXzV?(Cewots+}1^njczC1ZU(cDVnr9KO=k>&l$0?S56-;%7ZN+#Q%J-?!fqci-2#{7lGt zio)S=-LGWCkMu~P2jjgEew1^+{4^6!{prSjvZJWNj+!5Mfkxfzfc2ixsD&Lj_?;z~ zFc&4BDH^tzJ#`$>tiWEfk8+PHcL5fFHaZA4GXvTBdRVeZeEIFLuAFCLVRm!FN(x}% z>8zlXg`W~Uw9#<6J%`fut@HEdbTPt}SGLqCkOWN2uPA7y7-GA#gKgEux zbK#mew@Xl1hL#Ada!NO0MOCQ~Qj}@F( zdR^mAdF^~zq$f&quR~javXZ%!RZ3s{&RWasoHmevh?O`oJ^-TO4aB6cu?cR?7N%DC z4o>mDE{UIXPr1)f?ku0B?DVRU;S%{2*?tL^?2)$iQF}h?pHWaaRpUEbrFkWDGU3Hf zQdjE7H3h^{Y({q)_JT5@N*H~iQ5M@}54flnv7QG=Hn4A8RQYpwY#oEVC9hDM&Pb7E z!A7!CqMyPu_QX7WTsIZ}G*O=>!ONKu}vT#6|cdG=iO0-mpJCg;Lxw)tmVp zn{PubTEwRd1gtrT9+h1vxF-)&wA5~&%E$Se{QBG+n}li!EiZKUsog0oIw8MBFJ3*T^(2PBkK1*JIu4Q+lLC_# zzr=N)a!m8JEY|{6OB170?`nKms$o7xhwLIzN<|HR{T3z07CUA)<+W;OILIrVJ6jfM zlsEQR++Y>i{;u>ZV>^mA3ksHufpy^|IxyjO0N%U2CD2ip*PP8y-5@8z6dF|Yp6I3{ zJvxx4kEuY>CE3i90fa|M)Zz6|DF>ny4|&0|-G3%%mdd?z0Bhu?2q!*ncPlSoLA4Lp zG_PVFl(SHKc*yxI#8sDHL*DwiH?urK3Tte(nm&xtEd4JW{O;{fJhVO#i%ag3J4KG2 zJmjJPO^k00dM6A#B;USu99c@$Y+uR{Nt+&eJbU|OPqipF%a0Hi#7mWNAz)NH5|(xh zMs5(0!yUMU=N7+?$ZAB3BX2yi8;$Cnw|k~dn=R+^UxNqXmB%3iT{K6a(dO{cJ7m6N zBt(dIZ;8I4XPxB3E1_k}PjA#bIz9l)oQ;f9n$m_&V5W zw7e~DD!5JVbb||QG7~)4d@8%bV3vWZRh0aW)tAofVF$1es@(YL7ng_=dxzO~pBCM( zdJuGka#>fT`jeJq?8s7CBrRzha!oJPnb+y`X%6)U%jv~td`+IoX_OKzY!8_U>}#E< z@A0B}50(5}I8IAA*qO%%p)5ZrG{6+t)No57T|2M=bR%X-$aX5TKug~fDe&_N%2&G% zKZ7&fF-zB7*lY@<{$>fwL6VPXLN(uXnyAFeHKyQIq2{Iq9uto(ICI2pM=4pxfJ(`O zH=@fRT^Nppf@G8(1JS~Qz4#KX^XsLH#|&&Dkd=$@drR#93QZhBXq(%54aK#ldWHp| z@2k#^TH%44yg%HO9%R~|l0u#Ph5T(R$thJdkMWj8mKG0vvI?iRNeK}oNR*$=u=+KN zG9v%TiA-;K?l~;1;!F+Mr1pNF4jbk8<{9!wMvkQdgASB3n8K|vJ4zf1-M?>6-(oh; zh5i}~pwddH4yBo$y?=!aI$Li6pbBR7aIS%1GAly8ld9=dButPa$#5B5PD#(AOqRei z>6kA84hmB^VOF9EiP9Me_s1cvcXu9NruZi2z)|xfDaLffr&B2H2||G| z!du|v?{9iVLP2>v^+%=hzCbl2ap%kp{!uV(^xWl!p};o3a0~rqSrTykO=@i9X-hIb zz0Z8e^2@!#=9yv9wetfI=eM=tqqZj_zF83u%A3U038m_%VucxEghZ8ktIGWktpf!Vo){yJ*ZE$I~Wd>gD8#k#==u?j5CnuREZW}8TJT$ z%S$-%4(jwx_T?+sn23Cu)`{d&DT9S2llFJqFk;g@CtT>~dVU8x`(yzyxqLSbS87>& z``2QBch!*AQabjH0)t4>{-Vhl8U)N(Jmz;l4zk-{@FL()EdPj~o}8LbX`PLs&Mdd15Z1c|X&n}qDW2IYu>zE* zgaK-i150G|pPeWHLJ2+K1KC2{o010x-D4Ehu)6E6(QbE5hrGjDaRtq#+PHU_mB59R zd8ch}&eIJL^U-_AyCrb%rmf={=g$RJtp7L~J)g<|8@!C^_LnpZIx<60hL}__&C!3)3tKGG^_E$alOIyI5?PSSLr2j#M@u|WivNYc}Qu=VLv30jH zMx8|Yn{ZXoCNsX<1=5{9a{;4s@Uu9Sj!g3Wf&^_QUGCR7=Pn!Y!UeZ47 zK%QB+1GkC%fL%m=4yX^6dDC`Oop^*m!;>Q(G77$ov*Pt*XP@*{@O2@D1sYRy_wA?; zHfV}4@?&_#2h@j|k$ayfU^7P&yi{)axn^Yy?*8F@tVLx9N9BduzQP`*3$wE)!P;rFkyp6-rUoC+xVD!?Tv^w5clr>=6RE(NUo{kFni}Njn#O_5 zBVvvRy*hQD+_pzPcSvXe^)?lO8_?>gWM!2t^QgLM1; zV)cU>L$E>O=%U(8G*TJl4pf`46nA4zEn51-<=o7UMTKLLqf3t;9SRh#IcL%;o9pkk zp}*9kKCv(#UU|3Z{rSB0Llaj9F5M3=i_TAf6|Pf~tyPm5(s|Gm{u(L+f;(q>fU7LM0tsFBYtrPBYK&`AjndYNBPKG;~ zHNkJ-!(hqUf~$kP!%I`Lw>}4~BZy~^y!j?<0`6NA zlvu6!gcm~xb}qU5iA(qTQ@TRg$L4rg?&Gr_9vuDL82eQ%4A3 ztNu+r8W*X)4gXk|kP`bi<%M{cZr4JU61W?}^Ke`RWN-^eIc+V%X96A@X20Pq9723l z_r)$6jJkon#4HEoLC?IgN|4=ep(2z2l^BY689oSwGgZAG)OE^!QW2Z4uy1<*3(0O? z8_rCTW)TzwO+}^OZh@L^z#BvS6qhXanUdiuzr$Kpe@|!HQ~f^>0+J@T?XQskF4vQE zg88AS;wxu`Oz?AGd&7a$0TBM~8%|G8i7k3w{ zWrmAoyBYL68)`MII&UTYge(2FZVlO+m$T8*=l#JJrCm9_ls+KRJ$}_eacSf%N!SoZ z3R;=M+)+Ply5VrjEJfXIenR~|;6%~Xo|#^yuq_ySQ>yh|0_9u_0qp~lwL^e>Ugum$ z@6p2-L+Am9)H!HR1E;f}gn&RCSMr)PcwI5RVD>>_8XMyfLwM0342!DmESUbrDF(H$ zx0NKj0ty7;+;m=FlH~5z3QMZtV%c0~D3OH@j9k3U=_!zRad-5^FyQKy%C()r`skLO z1h38lgQcO_}l)`8fk5wNBj>mQ)!&r_poei0S-#|^vH-dG?&zH zuAscaym9!g-qp2m_Vz`8-l02{6{@<|*C`%JT*Jn~4v;5sOPCok zWtJq7a|-W`IlBH<1Y{~iZgseuTJK~V8ah=?_OT{S^Ae_Ct79*}FHsLfV6u4lA0#DIR?-wa;w1eazeYTW z%zGt3Z~D9QU)JlJZ&uqeN4%Yi^1}X=x|csdKF?2wGnzcp&ZMuD%cXr$_ATyu@^I@H;n*M;J!wlJly- z=>~=UQl26_;^@e%$DERO*X2PO)4>^lOG2ji|FMop#S>Br5LE?4Os|sUld=cP3XgRV7JAh`^SU!J=a|agJ>Ny>zNl;V*k;?GY-=5`HXP&_o-8gYQBvJQPP%i92}=0peQqIOq>OjHP=$5VD}?-yIh# z`Vm(YEZ6L+C|bq|h2f5s+_J8aXKCCea=?w1WG1`<3uutRsD@6}@`31o6)zBi`Uc<$ zKayBd{*71!a;Pl5mshpL6<-;6%d~E)FNf0($PaemrkoJUlhZx&w zk@2?z)lST+q?qiMQy=a5w_kQ*|Ct1>ZMq9BTh;uzYnW2l=@FxVaOWgS(=$=hsu+YQ z()Yx$xeP6YQ9WK*i=HsB=sPW7{2Dm9cd-Jv93QlWd}DZHvfi5oY>FD9@!`^ zQ8!kk$2U+Xoyv-7l_%+v_v@Xvy}omT4v+JSrhY9Zw3zJS_uP7k2 z_?p<5yv0QQWy&nh)jks65Ck@z*WgG&u5`=*i^d&`|jiD`75A~VE*Lo^{3SqquiH% zSPza}h;Hwwy8y-trvBD`#n$YsBdgR>f#MI_&$1y=uV6BL*Shsu9`omK^DjA$UMYL{ zLQgu~1MAYsVq}2$#zoi(c-%82D|?M5y+5y(UUFHN~+^D2vecwjp1^h>NH;W?9M-_x5@+ zro@2ek7(lUI3)#9cL38Qa?nzeCWC>bo$ykoP>{e1fIr1N{X_*AkK9##gmULsDiTu33cW1F~CZ^;l5!L zrt^LNd4l`cdK4d7FV4y8is1)2`M`=DXcAXtzgGwn@wFeqliIm67|<-V6P&f3zE2H$ z8of#zZXW*yhmX5du-rFiy)1@^a|A{i&--51!;cQKm5G?-CVHIxTNvM>=YF2aR0uf6 zVpPiKCFWe~SEvkP6QWf14OlY_N@-SDtNTjQPpQ2!q zc^G1B5m0ben)tMVT9V{PPIUuC7n7kpFK~qcP@Wo&GO$)bS&dpA5u76!r2<<9hIXrf9$-d`$AJraiWnh5*#+E9M=HA@2@hC*Q zoWDSHdgQ-HAZ5iNQ&dQMd!v5YiqrwvTL|y(rU`a zE7-Q1&&J&4#?G)e8iq)=av; z45KmXeYn`zEdbr0&4|DqUj~{@gNM+Uzc_nAg{&NaR@^nwV=Qa;qDc z?58zqfDYt}yX9ac2uzt}Xb!fcWK1);UqZ+TFzIn)8}IX7=)hIT19eXk5yBY2(&X3ruCn&&EVDEVk#N%Trm>3CG7{$h#fnwSyb_oNj-M^TZSrBh; zbgr^&vhdJ~=w1DT)%^@aoG}-93R&R_NtC96m1Vn!7v#*yxC?baL*wuDi<_UU4zo&rZ-Obqzq^EfXCZ|HKO zAN^Oz&k1OuPBx<$c7Q_`>G={3qRFK&1s~lD<-k6)bRgBND-7f$vOVX-<0OQEG>4kK zoQ;sl1Dq)3aN>m+AKn4|qwa*2h=0=t4=5lnzc5Y0;i~LwUpOhzwv_OsBal}1Hr%XBT;~RUzn*( z8+LLoHL9*K(DwUpGwGt!CSRrv?Oi&MjV=5+0d^sz;=tk9ElokpV)6!c$~tv=>^25Xfo#QzA{cLw&E(EwAp-9}!DHsfp{l+Ajf&M0E@SL+h zU|a}r@-vR$P;SQH4cXs-=H*JTboXignKHn-FG5tqdp@utipt?}y$ofa==z`kry{>d zWQGD9cL*``Wq#A`sPEgz3w%?^C$BcVDu}~+PHjG=6eJ0QT4;QUK)AOw*zCp3wU1Yjkf|5!;-h4JQi<@*iv4bF`~V&pvVm5r)J< z#h3gIGM+`XmZ&qI-@*BojT$)DTxYbrI8cLG*!F#)*7R1Di-^fcIhoJdSwX?ChYYOx z=w(Y8$wM}3roOU`7LL4o#{WhzwW}bV+YIdny*4E%0Bod9df2*$0GpC;X91&gP$ure zdGpaqvYBAqdkzDHBOG7+iIX^lb_4MkAR49dqcfLB7qmyeLXCRj>q_3n15hvjc&d;i z@-eh|3Iil7_yGBXpdNKsgf&_L-PBT7!~Pauef3)0toEl1h^;A9*5f@JoL2CW3V&SX=ynG`tC7n@GY~Cp z#lE2|hCn?KpHEt8ID?3r^iZVj_h;!uQMYR~o;6GBY9!I9*5 zfZHcdGP7&yagPpHeA;DJe#{JdRZtZpJqBGAPaE0xr!K3^F-WG-s+z)wawHl~*tnht zq1cGht=GgX@!wnD4?`_$yiL(oq1Y-#;3)2YXu1-2DBth>&KQhc$(C#>ifm=6EHfpE zl1fF95sI=$vdw~Q**}s*1`*k_FEOK%HB0s^Gq&uEvCS}Mey`tkegA;>y3X}H=Q-y- z=iK*sv6g1rkP|re3|Rd!zM-OUc-X7V|8Cr%{>H%WJH^$V#noJA?j7$K zWRc&ONxV?d&w7k8CaAYhs!<`Kp_bvFWx82T8Z(7?+OlZ+6wgZp<9Gs z`QokaBD^@jzZdR7bf3)8;s859CK}NGcR_cJGP*d(Q^*%L1j&fbqx)AlnQ7E9i{cLF zTH!o5tzXRbjhfkFM8dt1l6q}I_m~NZo4nQ486He{HV{_gQN|91Piy=&SmM`Fo&C!- z(Q$u!zcvf;d+jvC?Ti6VR+$IUJ@Lujf4i)l?Lxb2kOa?8rtuPEKD3DQ)^$~YWa2GV zA7L~8^2l%BA|Z6nnCb5ef+wD^fsKygI2nRr-i3@9({7o5&(u3JyIEk^)O zci6BzKt>eSF-F+1mx}KJKIQjV^nm0Oi$24njxXXSfC>7ch!Awq)xo9)g}~YO@v&Uw z%r89H|B7fakA~Le9Vx6L={a>iu$Fh8hdi1W0#or6K9&AraxpKOp#5_rw8>AVDUmh=XqVOnT zqm(=XvcnoDmdd6y{+b#CPi-E(do)DNEbLN$I!WL#+mSHX#tsnhe|aOqWKu=^(Av}8 z76s1mMnWFfJ;FfDQA)x^%UL7Dwa1g~0{mI{>FJ20^VhR@_`YCZ{Tr5l;d#}tQ*y*E z4p7BqjAoFE7(zkB>xJlLfH zk$Q*p<=K@ktaoNz*E!@2CVE>=v`0u<>N4WzOSUww*6A1=4BHFuF$|+WmqR{bn=b-l z4%rqmG_NA>DP`nI2%dw0#1kxxGFN#B?k?#0pi)5L-_WB0J$rYK&9H#&`xbivBQn)z z8ZPVdq(IB6e?O~!(snBc_#(&HAeAopW4t^AqQz;d@29~LwZT5-jF8ZG-oUS=BFYQ{ z!4=;0;3Osx{WrF}#_X~{T~a^qOs_oh?x%c(ONp@{?n+u+BsJl+B9wa0LG8wI9v6Xw z`rt=6qIV#nb~QC~YuY)wvpiRzTUE&t;aaEGLrhot>cY(A(KlD zp?=q;YZdJ?2)Kwj@?!tYv7-EF^7zWsSg^ki&gypWlx5xki zUFzl3p3Ga_U`PitugYi!z1uwu4a%FWN2LiW$ds@I^O)fv+@`0CuDs;FI~&6JnZ zTa#wqsCOvlewo&( zGevh7Qy;yQC>a)d@%{Qpd9#5&1aVVs-G*!NL6#3F*M~f)SBdjruA^4!s#I@Mtb0RP zc4L%q@4>!DljXcYPQWQN_BNY8rUT!3BDE1n4>e)~a83EmDBmHQZSADgF>1 zGC~(51#n}>1OTl25DyZ4h&l4IdQzBq;Ym~aq2+;$p=YJ`FyBjDvM{)AK2>H)A1-QrA?$_Bmmlap4Z-y z!ux?{qVw{3#_d`?nV6eyf1a}abPW!yJa}FM&9C1yvZ?TAf%>xdKMbii&F z>$ZZ*=JNMf3Me1n%-;7GiXTFvaOkT0FW4JpK23eQX0bBzm}mo8GpqP4n>eU~<|4^y z6}W{x8hX|1?f&s7^9rfGN!y%p?%8P^-uQHs3wrtTxxqb3E&BX-&LE1@O!@p|<)wC* zh9bG7jUyrqT;I?EYc-9q<7*Z;HD$}2xDPM~$*K;JvBV4#c6-qMaRlmZz-;)#@$x&n zjJd;|M4QU|xyta&Ykf?Oo>vbNVH+RiD>~#)$3RzK*^cr$&vg>(pM%T=s+WS0-G%Z? zug#<#Fj<zT2JxXzjPtfw&WdGt3;z?^`*Zgr)IZ43_4qhb!IRhliL{G zXymr?qQ2M@#L5qjG9^ke??ZFzCP_hw4p3Mm2lCq1nu{LS+YmM0KcvZ`&q6h`rC`UI z*xjaXen$r+doQ*q+9OkOfnh(**+Xp(_$t-h*esqQ$JKfaO=_=Wg87lg_ErW%7BGXqDvE>hq7vAg!NF0e9Gp3-S{$EBNV(NKn2L zD2AoXMFsZEJBmebRUTq~qdxr1KRv)&eN_lSef*PaisNcks<3kGMrlFb-CvPyYUs!= z#9=ve&u8(5-8jl-EdH&AB)6ByDqp(T-MJ>#@c0-g9S;|&@y3RyN(S^S#^_m_i@_s2 z4iHz~e2mT8E880d$g3vjx+rucTzd%FB$dj zUpM>_+P&!ih%CdgBTgFW+qq21!|No2!KI>k%EEP|Dtt8S%iJ;l`P%zAT;wtc-=7W3 zCiqWVIYBvaprL;~Uf~0<(gykM^+yiG9oFC|g&+G^!Z!Pp>{GGNtXC}c6O@hTrbjjx zh!ec?>KRYa$0OP5p5{nD`)Y$CVvWS^q_V3Alos@MEj760SEq~NLdzRIkS0Y7j^1WF zLc4V3tG?}i?5FvEcajw)dQOQ$?4Wi|Lh&t1_y4;nk>T}UMk^24MoSGP#Irkz+Xz98 za?q5VpJRG+g%GUv$$>@0iRD*ZS(DwEIJyb?A|Ii=JLl2(np%&~gXe4+tVSQ562Au~ zwwmey!e;oyezbb6PVa}9@v$*qc!X0+P-1e=riIRt0_+_*!6A3p3egyLoEn znDtztFYg(fPwZbteP`9ZUHK|DrEms(S6-l*?y0`z68B^W+*6?`YMyOq6^sj$?j_MPq`3ll1IVwC>B#o24&GM zI42SB8@TwB5kh-x;9dhR#`xrSy!nmdfEWFf0n>}-2=U6ijXd3FB~m9vmU*H(i`L5N zKhM8JeZR2~ez8h{uSs1X;KCDkkGtK^2lT%DH|GE>c7iMwXTwVD=aD4BQR>@2&(MWu zf&UKG*zNqxKkd9fY9-M0RzD(0=%85EKEh+$EllnL1@&%{pl(1ETp#ZVUP%9`Ctk!ZKB*_l)Xw%&hyxLr_ek1 ztMI}-#M9YBCmCNn>mx(ASQ1-aEO8x-kbh|R`9I0~k($F+uBD&yJGF~H46!j{1w(yB z?yt&PY)V@tI*FaZJaXCXT5`d$ep~7Q=LFd(gp?Z!nfRW~%)-9@YP7*8B~e_8@=SKRUR9GAZ4bj}E`IxNo0Yp$vUSK;8IN zr5eV?GxV$sj$R0g5>McZ=IT!D7jwGkk&KVAb4${hhL z8%^j@a^D{Z)*|-z7X>axByAt7OsiD}Y#i-B_I_c%)=G2usz)S!5eRsiD9J<7=JWY_ z7#rY}V^l-6aI$jx($t7Fl8NF_x(pu~rc*KIlIz2Z#pKOwxt&-$%6Ng(5l|jSwlpSfX$Q6^7B_$@Te~(>=*9derbHY%CGGnQwoQOezq>xPI8D8R6e_ zPfYUgpoHR9l3J17XJ3I>-HT4QW_OB{&Ty#_f5i z`;#TD<)$K!%&BlOfN3B79o{34ymuY>ix-@K;0O?gpJsQZ=N9%X%6cD^ofQaR#^S@x zS8eX_I_-JBrgawW9EGCF-&6yEKjZ>NPkv3ER+C8=cWZ9Axrm7N{-#G{S)N?qDv~|P zlxn-M*XRym5{MT$hH+xgzxpi6>Sh;SO5w}6fh_z5({SR3*RBA6KNZ_`6Qi&v2X*%wrrI zhsN(=EQv!)b=BtV*gscVc;}U&HqZv)npA7LYN>(7aJ5+LupqhU1OEM~Z7ZlRPK^KS zZ|qU@*SyGZeXr}F>^8S)7zj~Fcht8w$i)bdwU?vy`{5PWZps#kqsbR4(=k@d9+(;!~6ba(Rl-kg;|R3$a; z%JG^$C)ZvRQCjfnj0xuocHCMxzR91f6i`pgD&9C#S6TP~&~G>?qbnMNQ*+>FXS}v$y4GLe%Y3L{*=;A8X@|qfG2z@lZ-n?xZ{S zuFlrz%F|Y2@{<=VOr|(->0`CyJyOABBhzUtSOU&25A4!-d%`N@&epldftbWKSb zi)U~N#}+XuCN*|}vXrF!mMbrLi47Ed);z&of`hquX`!w&Y~|1;?PqkRsx1ZemInx^ zAb0l#it{sC4B z3J}N+h(|P(I}~g-S(fhE1v0Cgf0Qt>)J?SaE~2(92}!B#%nS8 z_V4{$QhLn%?0kyGQc9oM&`SBo1`YD1^QRlVI-go0kJIgXXNr@Th#!Jcq=W6za-j%E z;E!`}W%)!vTlzk>7$~)IoGEU)()jJ~Ct5Mip%2f#XW#w6`}&u5 z*i3(i6=WFJ`T&f$NBqG>U2ZjI4wN}w;&;9Izv63EualXmC?=l)D;Un|H9Iy`yq!X3 zT{-trwKjtuRJtViv?1VJ*uJn|XK`djqZCCrfF8}HgLQ?~h&#+L>Q;4Hm3H|ZZ9$<; z5zRQ+Cf=W&q(I}>tR$uR9fx>TILxk~YM;06YhF+|;=z{V5V%%^4U~2YPR`Y+0w5zQ zKXLzi2x1i$aaCn3s`%sfc24OcK$#)1vMgAik|l|y)f^aOzn55ez!tti$toEAPG-;q zabok!20e^e?GbI3P~`~N@GW_p$nq=}E|0kLn{BKJx=LxCPH%~iGU;5%kXjOgQ;W(MWJ1WgIq*e1l%mq`N3Mi zr{@<9KU^-Ml4JMnJ8jZ~6ny7L_l_P%$#)iLT ziG=Hzv`;Goph|~1KxMLmf0N#FQkP5N`>t>E1_W zhzQ{+S#=N)WK-K;Ip^?SF@2GhYc_H92R=e#-5G}Qyi(HTpwCE8tj^xkcXVZ8jjG^S z=N?Cm)kra#|8LLB_eQY}kGmfc#8l-?Zx(F)?MK{s|61U7r*#-*4zvGL-+OyX*f8nb zdqA-D7{f5(_V>6(LBShD{Yx*~Zvg6$2Q$OALI+~BjrMovfGb0}F3i}_X>4vTg(Aue zT!3UGFXj@vUn3eE*PPxvEHJQxU5GYU-ygU}DD!EM>gP@I{q^6$Hm|xTF6ZdkBlPTO zqvRMg@w25|vF6=yF>`5u6in09%Lj*N3jJN#A{?mfV3c_2=81sc`7 z?5je#aJlLKk>fP|M`X2V?DOX)@rKp^g!TUoHoCR}XBfjm`kUeffnS|ek5Kvy3OD(7 zmQF{g3Of9o{}}5;**Lu|uxI4;M7#;XFA+0dq;PrF%cc$r4N^g=TZs1j3E&sCU9(RG z@^9jlIF89s;#x?1zo-Dn&Jmy$@Der8O$3Ywa@cMyd_2yGyb9{SVc5%B_QzDwPf@y! z$(0+Od<7Q~?*CpzeB9iADK;az65RO0E?u0Q3i6AB(%;FibaUuJKBw2%zkIX*@=$AP z;WL#Yfgka^ONgFpB(xd2&>Gdrxu3jD^e`3OEVMk?&R$=MPvN{ zEaNd3OYJ77;19Lw0j&|3!y688YfB9s*oR@MbO}m6Ytq91c3XYR1+@D;9q^ExX^tI+ zxNj4U=cj_I4Ti|$HH)+zCz_W6(B801>9)HuYafL2jn3u3IJ5&Z%k9;?`=P;idy>f| zRz=;xtf$VUW}}@3)^d_WiBo=)BHpBSe{ZiYE%9%MawsuX{Q5mZV}c*#mIlX^=UW$| z9!mxs*ZvtL)1%fq3y+0MHEjXaN!smX#}wSR&zKOFY1jQtnloqo#{RU^!oNhP-p`3n zU3h^{y*U^h7WEx}>Z2A=Bj_>sIl$B#&`rrw2bzCBq$Rd9;}hv`yKDCuoh!+9Q4;RF z4J^Vm_RJ-$EZc5pq+jZm`Tm>ljUKjUuMyg7a+j`Vu;PaTbL_riD)K~x2_vDO3pcVx zd3@BWfWnoLaG0Oin@N2t3D3Atb1ahqxHfy{HZ(mz-o z_bzEHyyCn)@Jr|zBl2CK_u+dO59mIX?gkEj4Y1fgN=uyzI_^7Qom}?y%qEj1lzYE` z4@jTSg@8215qVOIbuB5R=Gv;!X$i)>v*9QoQkr{EqR5%wK#|thPH$*=Cm{jG1R^Od&3#+! zJ+6VKfy?bCONXQO7N@i{_IJW>{SH6NFjW2}FS8?U)a$BQbTI3aZU@fXI*N04{KgU$ zV#g^U`o(Z#5789I6n2)6IvZ~4g^y482f>IY%q>JS!LYui3Lyfw8WkdZSCoN1C4eJm8e`#~CA@2$Z8IBIXpODpW%&F82hv6~Vn$8VPk zOX{K9sw5<8Z`;)HLiv;*DARay4*JUO7FtTxzzLyJi(!s=2^y)kkS}LS17W;VFsYh< zR3apj<%Ls)gHy`e;RtuYM~RQPiPcI`2f~kV;5LCCHtah?isK!}-KcSbrYRfv`5%iBW zt5)4U6hf#GzD4b}pWjm&eOzNEO++~Z%%I}b?d@mN8?1t^*xMycqmuK{lZ5LWpclwD zm8_D(rKf*gUR&@1(#jVCJ`?db%_fD2X7?#iGgaH+w7d5jIkx{S+SFHrdPl*9fd3#e zWQ!;V_OmE=1H^+0&gSqND+IGPlSLN#QFD*UtR{Wr;;4m|E%YEV-jLBKuF=*qhIE!2M50Q+AsyHu;D`3R1Tu zaJQoZD#_j4(u})LSk14${d4#XX&upQ65GvRuZM0H945xsWWa(~`SGk7ru$Kl&{!k7!p$R@ z2*YtGF-oq8GcD-&=|#P`|Ge1QGR{K2`YGRDSi@T`8zIo2C7v|+X=u<+vk`@1Zo09U zZEpo4g4+=LftUDgE9A)h|F{5>+%&HTxVHidM@@lF3kjTqF30dw3Xg%Ghlor`RoDgS zd3&SC_2(!UON49JGvPAn1ZBi%St|wCP}-heeQ5mM?je)Zhf(Qb7IFW&T&}G9?a}x{ ztvQe+AVQwFzQga$%D?!wf^1+<%MJUqvpH#Ydg+ylw-gE2Wv*TC6cOmYK8HhwT+_UDW@B3PWhMdF1%1u4?-69CJ*BZS^aOv7hL z%*`K!>x)-YkJxRg&UZYJ&YTbu-CO?5DGz|7zn78g*vZxurTOhY964Nq`Y*~MF2Sr* zX?5879I3m}JJcURg!k-u-&>&IW<}`1ipmWR+XApC`rNQrbsIwFHx&RJksR31eB`aP^k)e^1T=c19wrZH5MO?g zCWGI(hTpnzwdfbjqa1SlHDP!>u3}3$V9giYtX>9yM3cGSa`XS*02Q>D!wjRR+L=rL zTyB5Ip99ut(Y(aRh7cKXHtTWu2CxDAmCXR?_FxATZmi*V_XkUB)z zeJjJWTQf72lCR5=yOwm;nPb9!{!!6WLe#3_-#0hY32(X{UA_@%l%6GPr?!bvf%oI< zd{6qbR#kacLSit?1s;oDf#eE`Jo1P-q&DUd-_GNgJ5exZRz9eOv{3bCV|;>Pvz#5V z*_wbkNgwe&Qoksa)u%As50*>7D)iJ3#9@m2K*2wP#@T964*{{PDYD@~+q}z^?p0*5 zErp{0V7>*OSW_tX$q>Mfzve@-IYI|-G%r--glmFZIEd7^Zteo+{^zrhd+s|Kr&Vh` zbta1BiCqr|2puBR&a77f?yaehHB5;o)gT#=?2Y7^CjEWaKvu7B8fstZ2J+Dr3Lz(7 z*pxXAF?TT4Z!qO2m@Ta=!c@yEmOBYq{o*}lz2}L|4VCw?I{r5!J#IC8_-{>X+J@e}3kdakS zk!JXNN-{5T+skR>vmA7JCmcLCP1dsEIh*y2k_%OfAtY{w`0h?wTyIL0h3R-S7={2Q z8o#wW`@H%W%xMX@`~$VTs=cvgU@auAGpXtbiT%Vm=mVZJfK_2r^OEZWqSGoD)QcdN zUUqN5N!+?$fcPFmzKL*adB*YXZ$jv|9q$`W=?O1HiA9`tqPK*ZQ|gE)a-6XLk_7+H z$Cpu#YOyMmkr*$x<^d)aogF#4#+q-EuUN>G-|U-`dPGy=B^tHdXhNNZ)I7NLyS~Ax zt3ZFVq3oml&IYM6o3MHT*EN+I{UCBLtM|_Z9s&>CA-C&MEb}LFY`L4dwk6UAbyx-$ z9zKyo&X+S`Op^6qsj_<13CdhKpm1wj!l*aqi9U|-nCE!)uZ-2n0UG1YNjPJM7Y|f4E9}gnrDSlA} zh@_h|FAm$kI?Kv9@wFny8xY;~08NGw!ZY~D!UM~#@@+;;lWGo46!Q)H({fXM0&vmq zE}?0sLJ6nmQyapRh@U#y-D5;m3siKl+-GQn!-VQM2 z%WQ1P?8ZG0T)AUVvRNV^YX{hj4(i#uzqf^gIraf|A|P5D$l@X|g5H9FX!F%Mnkwk$ zV*9OM5#W>EJM8C!L>PQ{j3RYgm9Y^f!nnYOtOLq;i4{9qUw;8>_kV!FXRMaxK_m~@!RGDWoYv+>PQb12X*=J;5WOoGq%-XuOFYDJ9xqq#c)Nd?`6b%6#t99* zgCgP?(burueWHSO0k_Ltpl5wHT!Z+?W_5exdpAT?I?H>=bFA_mDe}EE$B9NC7HMb2 z&E*XcRBGR{py&DDxQqX&Y1zp5`ADVD+H9X+^(Ht$BcHmoe3jgBQfhfpZ?&({9zD26z&c{1+g5{35CS72>U-569g>xDU7sgPIKxwq8K5hEK;^-w+S+88z|9l*K z?$4Y+xBB5mmwM~;lAB}KeORGw2!Wq?&Y^Ju6wa$OH4qLw!f*nZ7v!_Unv_iC+_s)C zwSzMV*(hH0#pM2qiL#ZZnJ^%E;#ZN4JU08w27fJLHCr2Y=6tRqE8zay|5)gp*fVXs zu?)Hj@lWS{3#Lz-^t{e~O+F)3P;GY}>AA(aSIc+?4Ex@zA1|@&bMIdq5=9V-u|1sz z0hefcHuTiI?Ry46h6@rOBXVoq_2ss|=u)ZEb9tLy3E?WhT&s{*foTWoFu-q9eiA4Z zyd_Z2aX&E}uV=8Dn$Bt0t?|3xqB}vwMd|M~?P^aG83Wun)-k#D$Cq}34iZsPj=+6- zvsb}CU-IJU%c(x&n zut$Sq6r*#13mFQyaX6R*WE}|CLS?BlnVm{pzC50f>TK*t$LXex36c;0p$bsC=W@r6 zvQ`0RT6%HqO%CK90r48g^mQn`#uPa5HsLYo2f;~v80ZPCC*U!=MgULp{R>NTW(AvC zrbiY{Fym`JM5eacl5wuHV(;Zo)sf*`4j9$#`ocmQ&Bd%BUq@E9RqW_ z=p?c9f}p1Vsd4G6%w_b(3Kh#fMmZ2BfnO(c&d`Q z?X~cl;fEn?9p(Yf^9sIduCFK6n{M8cx=t1F0OqCVq?Vk+5A5ag9Vk7ZMq!Vxh^>Qp*kxh>vE-$3^iI06t7-uU zE?a&jpM+X3a2?^fBYi5Nac~&h==}xn5F(Xmzx!W4scXY<-}wVh6%(r#!YmuU^|ho3Y{tp;4xhPHyL*hmP-#8mx-iUUP2%wd zRK}Fil)~HH6Ier_)t#C-;NB=v%3sBw&UE9V%Py}=EAv1IX1Y`JKdO~_WXV-Z=S5wM z!!sFvQs_x;`cS24YlURYpwEuiHShw+?IaW!%ha?wWB>;#usDxBmk+Tu__Q|7=!?#0 zHXL3T(0IPlVKyc7(><%XT=D|=9KSWYR<#<{=%hc^u z`$9>Pr0>rA@Xo)tjRr-1FW+HK9N1Rki4F3aS?zsR2O$^VUU)LakNoHc2+m-MVLpgA zgj>g%LHB>Erp&r${Y}0uZS(2cOv$6!fVRV8F#N_?;tkruEqbn}E!{AAJ+qm!Q2M37hHh#yCoa38=&v#( z&3{w}5~ZIn!%FgwX86*XWc~La;gD);$kjTA`^A&2)TRV*wUxky(J_PAA(E`BWRNkI zZjs_)aDyp9)&&L*EURPGn&P6N#BsU4)ho@3*l2&-s9eGa2K^quc7>|#wzCw0lEsc> zBl@Pg%WYP8rjjdn`Ep8lAt-#jna{rA3AB{czCx_h`gP_T0BHu}jiwA(3dq_%FcBX4 zU}d1IZMmmr>Fps){`V1R3dPxCVpN*;M(Pf=;+6Rs=Pm|QwkBEQ)GDbLbqoAS2x>3g zO$De3Ph;F;!zp1qrkPMPX)S($Na(x}=-%&$f5s|H0c;xszNMe2WZtLM(w+t zxJ~SvqC}K7BTa^(CkPW0JxzFcXD*pB3l>mju+A^9j_^Win}>`ebHlAyd<<~ceS5{{ z@n2**SkGSx>=Od=dzG*b?#;?x5E(et0tQ$x8#|ocIrEK!YCJCa;_xrN66*$o4<%diKFb`iNdDq`64xl3 z6$fY4MKn9hr%|(9AqPi+Qq=AL?!U#xU1924?ff`F{9YxPK)4Ec#BFU|2ScpbGKARY z9@sSP%TF};00F9@T9qkrn&6{U!W0=}J~wyEwvxVWhPLBJB~^Xw`2Ds#ODM181On)N z!AA+R2i8g9M%u>}7LR=M%?s5(6AMw0fmt{HH8@)GRlV7^x65>pd&WRQ>BoU(LCvS> z({F-p1JS=_SV}Tj-qq(+qX}IIyJ4on%#11w7y8(vaP1qp9bXKHrMfBtV|x1TM^zxl zN+f}Y=z?9%zx$_{LGPOJj%P4_l_l}mD!b$O^vzF~c6-ZKJQZT}ln*gg4wdlLU(t_( z?wEt#g;Rn+kFzeC>YpE1(N&A}9J;Qomz}A^Fd%Ab!(N{p`fknSd!(n4hwn*1l)#<8MU2p?t7yWKv}VMvaW^` z9LL$w{7%Q)I6(qx?JopIZXxO#e=tLDi0ezZE#{EpuJ-19yY%TZgdA&bF(|cK3b3XZ zv`eRWwx=;XPm_l`O=~!biudU5Zl8F+bK&yOF@Bp;&68LTLQ~0Yq|)Cd@=W6k@3PGf z{p`laCL2!~r6s^wpTbpNSj*^;x7Oq}h7Zh&A95+9T8Qp)L*+>r9@8B7BU=XW_*iqRWucI^Vok_HH^)}lARtTrjZ`I$gb%w}L zZ*HGcW{s#Z5nDnV5L@r<>mG+~_e7Kr62L}$Xg+~>WdL6yi>;-3p^so=O=e3brbMsf zo1~+bikK`{hJGle`9xf;T`KsLk(j6_kvtAo)3s>RIsw6DSXyX~VUnaC1>jy2>{$uJ z+3@(hDJJpT)7b_jPqC!>sB?bn*8*DGNP!@{DN(?-&;0nzMjW>{0Z2JIT5pVOIAuE|Fk1h0m75NG=$eb>4}lmkX``Y5RLBH$NQeV^{MEy)N#iT{?{&4-w+&)Zz4u=$5p*7;aqd}{>tCgNSJ)faKFF; z15_=yH0(l%6@Ir zqJt=;!4;C!_+Fsf`#mO}>@s}^4yoCM*F%~B>4;O$0?C}*jY5KjCB4nMlG<#06TFOHc>0pS4Lxro6fl5Jr%} z@+2}&Ofx2O(C?Z{hTAPFzI9)zRQ*UvmQC4g;s0r@U@VvYofU5rWTcuPfU9ZCscOe_ z;I{q%@qrm~8Ln9Mh2(l=y&E2J>vop@{ejBg3;;y^Xp+nPpM?yDPRI!?CPW%F8#j|Q z;jIQ#j0yr{iTj=Hq%m&XU3Wn2<4fJebW_*8iUXJ(ocQ-1>n^JR6VQy$k;C|%vUQxe zo`aWdWerUu?!#GZa5i5wep-9#BTH*o5Ev|g;S7e3fzP~}@p+cB-B<;t@v>f)c=EjW z_={Ui?T@To3hTal^)He%UG98avKz;d%hVx$V3o=IH|zeC9cRIO6?daqE=bidXvS=w z9oH1qb+n!28;noNN7-M%XVS`fM;SKj0Y4x`%#&0zxn4n_>iaY7i%9}YY+8>Tqo9(w zH>f>ov0pL-2fR<)Hn{#bbes#b_NlTO?Vpzhs7%{Hdbn!*_0CsZJOp(s7d*HxL%JT} zUk1Z7qG_SzkoIIX?(jX?g)Cm~;L*?++}T+sb=JH^1t5*A6)KhX*it zXY=1nAh2i`eS~HH^d~-t^lvU79l7aO^9EJ({U-qxqjLhz(i2~MapuF_r}Yd?Hl&R` z@n?6rtNSOEfUvb=bO3w*%g|SFub2jg53w}P;oyS zS;i~r`Wp)Sx1|VIm^G!peCXvsPc|GdW>+?OR#3%sR-W3gRF!gBXHDJ-m(2+8_u;5j zWb~(a+FJZWL<9{L1V^8UFC6a5rr|H)Zl0OP`3?S{UbKS1d)f`P*Ag`AP z_*&2owcK)!*%(#8L~h<|#;YW-UMVaqtX*D0sRYifw5URpTdmBjkE3ix9qJkOmzW?x zEorG}Mf0(hG#y5co%)GVgOS57-IH_)MXC{V?hGHjY79GkOn`rINbCzaFb;`DHCK## zY%l%zQ9XYYo3`NogJq;SaRIHIJ+sCKthQkq4_<+K%D>q-FW_oUr7hsp&j&c?Yd)o? zrcSEr6}Dt7ipFg?M`E+^Q=+SVhSZ%#1Qu*bQNC=R7X88)x^apt0=y(ZiYINwENAUW z1IJprQ~3(StFVz%i+52r$+d|O@`(R6z&K~EuER#y2{HFA);WXC$ZrUDtJ*StL>|Tz z>txTA9NboFGOMuf-N6%@-@MNY0!k>c=coT#Z^LIFYKNvOwqS)BDblQ3vaOKaF{5f{ zeU$$FwY8%EC7PM9pE(?o+)BA{50XH*4`k#*A0DZ@=R=eNeDodW!!CK8dFCfk@I3e= zpTcFpN20hcnE%vyh-%@i!1TV@d-e02cbM0>$9ZJNpvaka6dIb*$f)H7x8^t{mXMcJS41LKRQ-Q$8EBqIhP zNP=N&%U{7r=$uNGJqcz(vec^mL#7LqjJZzDh1fbg6y?A<`$K@H7+k*<)9;rus|{1N z$4=jqWpcGYN1ef(@Nwbr^BXqIq2O(=GsTiyQQ@MOlBC4w0=?Y8m{aRz4^VShCLSV_OY=ucU#y926Fy)5O&@w0Ss(#r{8Oy{AeS~97xdnZ(&yWvPM34h zCiWx{PJmda`V96caP^60B0>UM6AB^6rXQrGSJoEHZHxUfG{bO-wl9jUyTaIS$+>es zwlPDIF(d=0eB&pkjlkzvm%jx5X`<- zPxmYGuOEwj=jKSbYW?q(I8*gl$*cR!YnSLn@&6G70g;0$`#7ud+|7sY5JQlf5J-lR z8FR;l8sFsU_`91r^p@~#ai@CR{W4>^QVCqwCv-Ckzc!6*k z;Mlx|!p0fWDO^4=GQ4{|OzLq7&O-nqr46$TBXzbJ)3tTZu>9X57}CV)%8&2Bv@q2N z8sQEhCJ~5le+4Cv^IjMKJc; zI%b+DliM6`|AG8Rcn+NZ*=L#z>?-=oad)_1+y=f2Lq$J$Hh594O!pU3w9!rBt>*k(&?-mMDAo%>A%)Bp#_W>){#7Py}LW z&gwnmBZDB{QVsM-9X~h{OR!iVb07z2;|c&bMGHvlL8M(~w=J5*+n3F%A_|Ri7L%hl zqMGsll4*M(v;=$%NmZEXaYSFOFv5g&vIe`**6}u>T#-!?YYdz}kt-n&wW&PuQt4RU zw^>>UyddFR>4LGJmDzAOuzX&lHp_ze%0BHaHuneBeLmRq>)%>UW~uRgwOMR`t}Jd_ zkPAq7QCPxG@7A47WHc857dK}RZ~vI+0CnXIg%nr1S6TAieev%NmH8+`1~*VSq3QQ%g&J3$zW*mm%N~To_n+rH4J} zdEz=r;>x(^SgnM<#2hx)#XYNa#`Q7Ooa`D=OYswyQO&=d_bQAmjeK?6o2JK zusKw;OLgRZ?}-ffhW#%o5~FyJV9l(m*xPE3<2{BqNf)0?Vs`w<`QD}AjDTvd65yLJCLf`1Qq}Un=I@M2F!-<}AVa^GrUV<}mA2}2V zSJRfm!FWdG6Q;}6eolr|gyU+Qre?IPwXi zE#m#_2I$4Fu8X=iLjlal1GUCqw=zPl{>^1GJY$0rQF2V)Wa3fm7}vSCGjR^7pm0?0 z3KUGs%JiL&FW-&n$#=v7@q<$A)RO-?P|Cp1GZzbFv0%k;X8IjLbp>;j_s%`XZRaRN zsJ%dn8uN@06P`msWmx|!Hgsry{U5Fado9Zo7>*|`C(l=&I#n-zSU_P+vvgijMQE98 zNszcEEclE%mrM_>XQ;QP!!Ob0#4X%jzhzV&K!e`^KwS%2Vxiqx_JC7toumEI6FItE zh=s`Y=8}`xL}l!BKIt0s%OX`<7IWh0@cD;Uw3^v9l#yCGr@UDSyyl=0Zk)lgzdDzJC;gDznpu`!QXvUe)IR z;To=0f2`#i^N2NT%?PM*c6g`^5`h$AX5xMp7bUi%z82tneF^A$1PhneGkX8y0x+K` zPLV!2ZACScus678_ojEazq1P7Q1IdJ5H@&&t2VOO6qKX~J%9~a?E?_`f*6I{1Fd02 zID-Y*P{&M^3%?EAsbMuO`|l53nC-o2A?1(n2z`_JpF><Ek)qJrbdgsx?@4> zj;Xo4hL>!kE&Tb5>%g<)u8splEm(e~9^hcT%3sSVtbeUro0KWR5gGs|E98ZKWYj*v zOscRH<5}!u<0Xv>*|Txq&}B-m4{qw*K?=SRhK1PP{c8xa{lcho3ec|ePM4X?Dn?}i zbADaFV(-b++?qvfW1do=gM^D(G5|m^IS?2?ju36^QK+{pO2`?VGKh+3)l!y2v&VsmlU~ zUmRt6991CZc%JIA4gBa6?7UL%c424jR|rW-fzZWW_Y2QHaErnE^oz&n@^$7Jph6Lf zyt1|i7P*B?1<6evuupPv+T%#XzH&JP=!U5&U@K$Ln^sK!d)SJ{^`tb~X$rGM{usw3 zs#lnK?o)B8(zix`>qykzUTP9y)XnI-vx%} zWex6Iq`Y4M%@k6`J{XW*aRd32x3>P)p>j9{2@0(H{JhPbkl z`?DXXr5?J5pVfeAZ1qay=OnVf@HJqf*|UMBA&(Yc6-n!FET=vV!;; zUPfX~dz31joUe>coMr^m*y-hJrT)uLBqvd_RwvtQ$+datpg!)=r z%5FkI!xTh*LMcNY9z6Z3)XT)}JZGkMgmi&jU8gFXI%hWGb%iOYtBy-w4y78sn3qSc z$Z|@9uv?-P`;Iiq^521oecXC}Bmx~P4vyW1O~lXd<5q8ALm8&k4D**WphKlP@9aoV z3nRjCs%5-N=XsuUzIXn0-9_q74jHSu@mVMmml4>2u~j1nCS8Mo>?M5jpo#_u&|@m-d4EJ( zjkN%n?R@mh zZ_1!j>fOXzt9WVqx$PMPyZJycZ59f7<8<(Fc7#&8xTm%AK27|OIy^`C@9zeSE@`hh zVWrXEs*3~*xgah{)$LI76m-VkOlLQ2Rs%ILy%-s{2@1AfU)ARF0${^W@Df)9(cU0> zp$we2iHuNN=CrMENV$Wo1iY`mHDu%WgYI(==O_+gTdLIPqI*!cJbyEKPYbh}Wna=%q$CD`ep0eY7U zlhT-CC^SOZ2bm*A_q#v{*=_SG0LOdAnfFOQILOc^a~fzW_&VCG`3$Ok>Blv6bSBfo z6llxY`zGVIyDIa8OPn&u+Y=XzXB2aeD_n$6%AKC5&4?bEw&Z#+(R+xS~TzuoY7x0HD;a3c33#iValB5rp6aor*e5O zryH9yS9xkUuq55#kwSVs0~L(F1)1KcAL}k>8zP?pMJ{l7w_DtE!VRj56Z6{ylm3Zp zUv=>I1L3MHtK?e@dg;RNF6r)MLW1v!*7#etNpj?7NnojoxYsM)$(9hk+RdlPIUBvE z0qR4cy>MmZ4Gn>=T!PCUR& zOatx}pnmR02cRy)61Cn}Y`Wl-hk6Xx*%ykVX89bLIOP-i?h~wksR>~S-?BHe)t)tI z3o@e6IRf>d=*62s8lBH_>Spy0>xk1WZ{8gQ^tEMx9bu!JOj< zv|tSevj^W(vs=t>^k7^AIXpJd#HJlF~}0Y!knj#bbo3lNtYzYU2f6`bdB25rN7Gn2?AW_y%HS5hF0^{)K9wqiAviI0E6LJd z25^gV8a`d(m870aDLB*P&&$CwYo%Z_5Lj0?9tM`wu~TIH)3&hcqI*Jn;rD*-!eiKN z!Vo5%7o#6Hm!^n%AqfiA#K+9{6nxF|9}hNNj+JU#^LB38$kD{P(^x#$o7Mt(E>b1_ zafpeY^wu7)F=1dY*Ff&7?o*0(E=$p8Ve>Jk)k_)HX-{hCNlYcZ=EUZB63Iu`3lWZd5$mG}ClMu2jC zUgE$XXT<13H&Hu&eFK=Ye*&kT*`aFxh(o2X?r9D`=IB|fzq`IUCEY{QA4%FigS25D z{ThoW`OazlnO4;MhjR8Dd;8sV!OLO)D|5;>0KkR`Vgnt&V^hmaR|3Lpqr467LhY_y2ZITQ3al!;9~^Cgb=fY?PfBa_H-G$Y$oha}GZ{ zJR%%^i`m_W`5+aJ$W;PP)E@zYJS8`;prq$f7A8y|M`p!GTbAmt*SKO7If;w*fOPg* zm)cB=k;9pek~!`u|LAv~1od?zt_tCP?eWY}D)q@IrKwwwjsmRL1NPmD*3HOD~ z%mQxRBqf#|C#V1*l4k1PlkT%1I)Kvg^mU9JRfUb1(mS!BR{n^UKF>dKMtP2JOA>2+ zAFP1!BC+n&HF%-QG5*4}5 z?dl&7^pv1WR&8$)Y?c*Yf1*#RF53;eM@W_vIhfcN5UTAMAE-@N0}^^us2klY-WrMH^I)MrocZ?R$XGt! zlo#^kzs4kTkNHz|KxUKCaw=n8e1uvEn9I#f)XYnKw zZe3vNu_-J%6reD~oHF|EC)%r>2=ONR0{#om>H`<At5I?S9EurmB|^!+6565}yJoLdQD~+{eC?A$m|F&h7;Aon$?=GrFf;m#LFKkFyU~c{Y3y&n zWEZZv$x#QBS1{ip;|qiA*h}8P=+A?ETdJmGFQ6wrWKG>XeUtiQHT`HIK6}6xj?>7S z5sBw==-Re9p27j7&4U+_>F*Jrck614AKAXR3`%ClYFmbnsT~;6KI;Q`jID z8EaAGNp6+{q$$+S7wTpk_ja-d=4<2=FRX* z@ZF99L;4WM*!w8{+i>9<{N}>!_XKda-m?jP+Gvp>`uHC$WJSS4a6e7TC{f{~>Qu{I zg4jW{M3I3S<_HJ3Lj+NjN;?ch@At*OC-fNIE&&Lc zV!~2n~zd4m!rUd(+m_|ZJ!$2I1; zIY#x$lqxr5yiXc;?uG@WP*4X_ms|#IK^PcZxBItHD!`B`+M+$<65&b#LE1laiBqXo z2*o!5%kp^Oe&dm*4H`bJy~L&XTK6$^U*&lKJy_|5VhAQYq42Wy%{+pb0z=Cip4&?> z7l3J%-~|VA@aEB=Prk z7kq_31p%NDWfa;%&MtMhF>sh*0a{Uva-PiZjuv)*VSD*bs6Lig7PP-S+7Q9s@>YBa zwl`C!-0fE4^$TPFeG?7{ATd7*Sh0ny z^q-Hc37IU^3IzGeTl?$E3kcB&o_;~=4N)C^&zL+SwYm6laDbrJW^j`nWw`gcD=nss zD%kI?G9A)0ALs<=q&s^SKtOkqsgHHU2b5WG$TZhABfC4h_dI3F^>~edB1~&27>pkq z)P^nK9Pj+_p*HvB4!A|(*SMAHr2tuDX54eBw{hQbcevag9SVoXhxkqglu(?~$1Kn% zECt7fmE1j<2H>(3NatG@sFfUM>a|=^D9(FVaJjE#dEs6kuA!-ugQ~go6&nx3Hs5>u zADwL%5up!xjJ+J>qxY332r4;vd%aQyNIMmz)185NF+kEkYmFH%LiM=i++lx79^r=G zI@pHYF(PvOfFOn%ui#^hy~ga#eS79>ubXEB?mWGe zp0`z?TE!zRj|vPq&dH6th*6Ebd8p^vD-d>JNRB8_0Xlw>vo?4DaxxwDXJB~3asNqw z8gLtr<@pjZfj~gXJ@3SC-eukLm`rtIOzlK9u|658`QO5{tLHu&6Y&#L=Z31BW5X|fh_#Zaxzfm0tqz)(g2Rnx|UBDqnA;O&R)IJ4`P+3$!RLpfD#>b072Gog~1`` zPr|HbF3;ly0c=8JPHHw?;N~1p7p^O#jGIteMIMj`tq!zaUO1cEHJ8nFx&!dC*_Qc+ zr;gCgNwrtkPzDo6=KF?K&@zR{hpAZId&$5}4A_zZP9)^WkvYF=HLO4UgVR60S^91x zjXv%rQ-0Uzqg%NEjC+o1`Fj9idjMKHh*u=0d@7uzDk&2IH{lTpmyI^ru;%NpNf%?`JK*x`7f-o*hmD^CqcD7-U9EPek>xe=hCP_j`gKFVu zX7Pmp`XAhx$0JlT3*Ztt!R4lM;UAeu9&dqDhK8O+ShI|s!r}VHgtn=VN-W4 zu7nK$m$Qwu75^H2oZ9St27JRifX)(6%PFgxm+NjGTzZndaZ4*{fOF10-O!@M| z=9AJ^)NTSepBeOxo6!q;-ONDQ4SGlYj|jMKIP#yBn`4kQm>9GbY=kcGUnf z=fS-JdR*ZH?ULSzybS3*Vj4mnrm*+1Ht=vCAtQ|ajxkzu871?hWfvb^mxCf>++@Kt z&k1g6T@K6c)$A+e?T`On&jx%w-HS2$&#U6k21>QB7~C-rlHBL^^SHH&4rMn&7j(;% zcMOc*=a(0Ic5kGyvUp>#D8GwaZ=<=pkggpr z9M^bXQVZuJKi2+h&$zp;1SHsCD_FBDy7e#qfpKNtyG2KAW5N6nS#Icr{cX!NoCp&n5CZNp> zG4cYJROt_%pz;~VX=5}`?N(rf!syT$Cf~+jzUwM$!E?l{Pr7Hn*@_x7&T!%mGeRf4 zyG?u!ef$op@fikL1Ip>1K51ip@zG`|j~`4X2bpu@$OFft-g_s*Hc=RcG>Ki23O z^ynq!tudf|F;`j&kp{py*nFj$4Cbc(qwXKwlM>f`3p?-j)#F5L*~K6I9xBrs{6RPNxE0AsEcBTNumqCI(+M{kUAC{li0m z_13(!q4Uubupp9*d%HDw%%#OktzH>yZ06GQtgmLhnlR_WIEpVEZ}Bb66VOzlPtJ~H zgI+qKA+6KfxFZ}w9=QGe@UyH_6r#bEfv+zKyoucxZ&@VN?DU5p<_M~gny8q9m)cw# z?`x6{CvRq!&J0spQQE&HUv`+6Y3raV^mCSv;TMyH)_G=>fw6fs_A z2Wn5N+dkF?D2wI81)ZkKrJ!0tGC((04^|yGqrlhj1fnNR{Mo`Htv^&ec<^8yufXcC zY%?i~eQ$a^RyihY2F0!jSd@N(?9WXfY1JZumRf950@M!do4MIbAIW&s{C#@S>c%5OyN8zP3UKt*3cTSe{g!y%GbR2M^*qc zorHDq02Cqq>j$FYn=O>vN1Zz0zQ3X?+`y+g|nPT{p<+gBIX~M z6aoc(^LBR&&|CHIrktx|Q*Y0XWz%NkuA`>_2zToC&2krP$bbuW{l)m7vZN{JR)qL!3Q~-TQRVz`r%Hr48tO6Cr|1yhHyXbfEsQJ>dX#V>5&> z^Jz!?@z#3~-y@m+Q=?(KI57Txn@2~U)T-|r7syQpmY^q81m7}G-lOreh`yk>UJ`BL zMEPO8qt`~tOn3zy53=kWk{zpDc>$b(lmX`dM0Y^IPc<;@4@t!6o|9nl0kVKs9NcaGqfJ> zO5Gs$c*ldnv^_Ib^5wAGX3pwCbAn#80~c_e4u^)PK&qJ|f1`Ry+ACeIAT8L^WUe^T0j9E zSU-Dp1L#3tlD@w_&DYgkk1SLRz#w^b1oq|VF37d=jsftYb z#Gf^FCkgl07NxGJ4xhc&?bD9Cb=?@6M?C91movveU?*@8&q*Ej%i)GQ{^eG~$ z8Ax`MDpo2}>NR*i%$NRYJ%J&<->ih0PZQ$5!GlSCPcjJ}`KH-F-H}bdaod~tPo`k| zqZMM_#UV1h=yojQ#=>)lp1kO-BfRVr!CL~=e;YuNE1K9V$L)1>=1$jqc^?P<{ug@_$}{ z$N|jX8zK8G&b}%bRUp>K=AcjsGYP7WN0SiK>rk)~#YycBtc0@q%NXlrN*w1a4~6^} zs{{jZpBQO3%nu6srSWb@ix)+hpF_C&ALA+3%!+Bx>oYl}onohc3@`$qDi~1ajG|sG zuW7M3L9r1cE>?<$b)T=)RgJGByifbeqchg4z&Yz-8EWwuh} zbSKtLmF49;TRigIy=u)>ilfQT!xzyzatQi}TnIs)#l2;YbcL-P5<7RVRcsg}GP{0O z^OzBmzCKIi+^#DD1T=5MR#UM%zl_mrad-O&Wjs*6r^s>xdG*K}dCU)}_FzmFd6P!b zooAjBH={TM?oaWEXDGp1e^3wv(z=UG8idsWFc6e~jiPS5U`si`;P*d9(|l3}yDpg? z!=8K@&|!DsD_vWR$9&0ijpYenUbE`Ocy_#}FBqb~iR8XzoJ>p5i_?0r%$*J*?daNr zoWa}2P*aXlQauO$ebQB|Q)dlxQBpvmoxsAT)6G~0-ioPb#?%m&L3^44tq^rLAfv31 zts9^Vq8@!>*n;*B-YLWX40&*!Jh+7X#T2jyEM0MC8&_&;A+=Ve4UkPcIj3>?Iy$>gD0K^v!t1w{n94W<;2F+9 zhOYLW-%z39^Ugdt5JaQ3_i{BIDwgd#poYgN}97Y9%89iq-@ zpd<&v2@!uyTf08dM~vPMCWXW)6xaWPIh|-2gFQM?mp408yCTn)5mmjOQ{B6l>vs7y zYmz`97%}e*Ozlkfg0UW#*|2(xwDL*K2tGaUc9I)%rXPX4!`6Z%t_NCnV-e6cW7s!M z{>wQ#zu#S`UVAY{-sgDzr<1&*{|83c+Vl6hy#WpN~52D0|y>5yY zJK}y65(p>8Y|@fsU?0$ROWOX$eqf2#xnC@rK_6k$Gq7OO+yL5zFXSRzxk{lhD+)u% za61;Uo2YI7lf#S|3tZ#8uAOG~JG^1@h{I!RbGxL`FAay91iq@aU*MjGEMDhtQ$O@; zBGqB{i73>Qb<83a3$BB(N{j2EW8y>8T`&%8@5-(TvRx0+| z`%EkkfPit}Ydk}e5$f(tu2*y_KuUJqRSRIO_JW_ZnTyXJ)IJ%@JadzZ`kcX1lSDaQ z5mNt`!XJT30EkG_8jB0>iXR+;s7d>WOOqko5S=O}EW6&bReyAPBKazx{^=6o_fv8| z+9EbM7?`*JRW1ZJ&GOrb)g6ZEJx?V5*0W%uV=W}a8R7ckZ>EhX{r_U(SZ5Ka!`^?X zMCNbez?PgTLP<2d&r~x0cN`<%5|1$BnhJCKF-JLzyiP7_tBRb*Uu8VH%}`m$8Hq8e zd?;uz*d3~~Jm^6ePguud8q2?1{>x>*MMlOIHn<8Q?Ygaq$_Sb=9P$_IogmtJ(Lis_ zd9AX%A?@~&WY2ZqBb!!SoNV;Q;8(I6F1cjMs)WVfP0$bRs$eP8p);k5rB5tYgnY2tmj4W_n+r*GkUAjrAWs%vlV zq+G%uR&6cXC6{2dV-(iWqKQ_UcRcCIrym`>FIuK93Oe4=2W* zSidJXvDbMolaTS2o-@2VbTVLjVl(A9iPgn}a~7J%75a881loVxENbmZMNSKZ0Y8(7 z2hMr)?XdzZyY}G9ceb5GMSQP=~rF5O2Is_;r?YHWKh5~CLI`u zswiP#287qDNU|uD*m0Y$_V_g+)4dR)aeyuN9mth_v+YlcHPz?t)E})@;CUhu^zxzY ztgj?DRMBq$$7j+q#Tn{#e?r0OP`Dva+heKNM)BX%gF!cU^G+VQsnw|f$@$c-B_R^2 zGa9GCu0`wfm}6Aw2qJkukNq*~5Ox#p_?NGlog_+cc=nb(YC6ff`kBr2Wu#ZHvW|!) z9MT{I30AsxOj>n16+WD)c!(^6<$a?=o>*xGfWI zAr?z^Te-LS{>bRL4K;os0KKwC_5_LcPn3K=8S z@cMnX1oZqLtgR_uE4LvwF1F6A7kvyqT?aS^s}hN4aYMk6?`Z3}UxWw4V2c6mS9BVY zk#zN*ati;Io{IP=rqV1XFUst|hPm^Wo4k4XHQPS{%Wed$NQ)Bu9&jQB>q}mB5zrBa z1u^vP7F&{#x4UD0TQ1|0)q~%ZG0JG}laK)K){=$wMs2@V%-xqO#p$SVmb$wEJkl%` zlGERA^7i*4O3fiLty*9J#XmxC&a2-XE_kv-#Hkmd>{y4)M20l zrUIGo!uUz0A!83Q<7&w)>Bzg*hVer7M-fzh*Dp|_KcYkURk=NTe)~D$@O+BCh`iK% zM@aM8$+N!s5^V2G42&bU-sLo{XrkcuXf?( z#p?@%BOQ|zJvEgX2K7cm2F62)Wl(U4H%U3Hu+K> zof;FUH2o133C8wxMc(LQ1i66I^S-kJBe^eLL4m2icdv>5Zbe#LFQnL>LX^IsK4#A~ zE6O8{XMNEm z0cns*x_)Mi=6ZZ6gcw8kPXXg4zDC*aDSmBw8nvY+xqxCMryONLl`xl99=t>o>OHWR zw0N;(%a_;FjUf?7+b%gW0yrS?-;o5+e#>9-zWAc_F}(KH=Bc@1R7xw0?epx5?=OCJ zT%*`Z7QOBg#f~s}DCB;}@deO_{Nxx$2Ii%mUnB-KYdA*uDsmpq&UR{pkj3(1!_Nq! zZdc%@5H>V0yfLG>v5mSi+atCKNpyVr@^1q`S$}Zsz!iU3($R5+VJbKWaYD ztQ76GXZE(x5qT*3L+b}s6{V3NSg2=HfQ3NNW+|r3>!%ZexOPXaC%H9B#3{m5dXCPw z02@|LpA#z(M9?&}SUCi!Md6~#nkbcBc<5ND9~=kWWW~p`FT`99xLJ&n2J8~(3yBtR z`IwsT7wo#e6Gg0M9#s^!ag2i#@A)r_76*A)ZoTl@o>6^2!*^-KYUjURCnnMrzc$8r zzNVG;nYw>=-jg|2`nfSmk9Vvkz9Hi^DkET5(R)tc^Jp7E!;+&H1F5F6WJcj!NotJTg5f(%y)17%<5gDjXaoe^SfnJ+HgDFUa`8gxns&kON*&VJ1V zJNK-x>YHt$M5o`sP@;fT?12y&wOzx*+7DvsUSg*ny~(k&eZjVA07RVROx;}J15-mq zn|%?lkF^?CKXhw!Jr>0mtTpJWsTV8I4VDEerQ4LCeZsbTqR_%W%Z zvtyRu4$`{g|Eo;PqMX+%Jp;Isoo6$o~XjA7rqrupyfAZj}Wh-63*VB_3DBYW4$`wtFS! zi$k*vDYi(Oa%fjiChp1wJYi;o(AqX^N6lhG$EtAwTPZGH7aVKAyfo(`TU*R~A*tsP z&d$+%(#~xcv^G|s-P-Y$|Gw`BgEYE8qJUgZaE6ncCM;4IFU|=p2Ta~4gdxxj1cTvhG!3vXgR)O_Bf&iJ{cy>Vf6z~D=mjWQA1BnBMQsmO+)i)h;F)8)eB|lut4O+XK$qLKg*fSrJZZJpO}76)J{MT3 zm=gZu;{DB6vIA(6Pr79dvQ>3TUYz6}7R==xZrF+$?-^MtX>RzwZ}m*J_})TQGi||> z_T2+(&Ruv5^HHbc`SjU$m+S1dvc{QjzT10n!IBiGs^yGDU3jayv(7K>A>X&}!yIaGB&%K!A z)f^>cYayzCR}p9robLt;`=^Kh>6V#W{44C_wN zAS_)0!J0@ymjV_vwu+s2pj)<*C*bET$N9T31(}mSM+wyji`2e0L1p^XOD<_VPi2E| z7ykKolX!ui$e<;+naSCro^?BkrEU|ZOp!Wi$s!LzRY-VOb( z02`+Gtoo1w4@bzD6CdDcSpH=YIeqFVY}o5n77j{wEBSUQo{f{iTN+`Yr+px>cQD9z zmMVu6FVH{U0zr0oMSsq`@)QnH0c{@m*^5cf6S3-E$mgXy60K?de~MRdWYX%qQ|?lH zcgAEU2_s;C5sz}~rCfAQu^eFhoFC-GE+B6@9f!-iaNqYioqG%!VQVluJ=udG4ZpJR zdp8*z%*Cz5JgJ`J&7&4o7|mh-jVEzmsc#xm?@LM)wWr%I2zIB_BnG_ z^#XjT(*}|ISsbv7cFS^b{LsYt*BJY81r)d9=0Xa)(v0Kd#qBSA6J!oP@gz0s9N$;` z`CFESg#l>`YRTB2j_U}dCv_u)Jd?6oo9!$qClX1UFmJdO2zJ!6%Wc_Tsi8E(J%|-j z(4UD|dEPh2m09M|UL}Flz|RQI1TCi|bZk=xUDQ}dj215!Yg; z-6Q=fU2AlWU-jbox-v-eL;BOI z`aA9xw3?ExfAD08Ykc#K`sBX)KmY`ux}JA36ecUs;NYJMCSpQxPmV?ijaghnCVn0Yv?H zW&8dBI2Eeq*wCytFGLa?Sn%djXyw9n&dqKP12xHxPxn`EWKPLRa7?Sjd+sD*FMU)q zk%H}X0sF!AOJUtu*N?a-rOSlVCT`4Y)Isxre~Rx$_cOxeF_wX)G<)ZZ)Mxag`qaTY zz%@q=X*Qr@RE1Sk*?_QmE(NoT^ypG6V#jLyQU~)lf-Zu+sciEQbnC(9HYwoFS)|>r zYvhdFuR9geCudmczNeB@Id`ryh2esznED4N`UwBsKTJW#BbUh;$Ih;M37p_}epB&N z_z{o9#Yw-^sL-lCv=aOjtT|(KhEl!w>aj{7pTo0-nM%bZUv6Q&@efw+o+L50ZQ0ANExak4u zmZ*^rZ89<DtCAR2)dCIo3B;V{_$ z?fJ#ysTbqaAF)!5M|w3M+|t;p`sQW%%2jjW-R24vB(=+`OUnZhSiW&#&f>W3jwo%dxJ`FQ}1W1Fo?Z>vX`_SvBmFh zf5g>Z*{ZteX0xDzcuN<3;0}pplA0xYMeT%B+Cf3-tl$AzI?wU2NPi%bk>hz^MBoT? zClMRjg~X_}Deyp#xIjJzu_m4+A!R->N9b&1FtC zt0S_J?q_(HI1+eoAWW0@i@hHRv1A>o&3WH8&rn)=Flstumd;em?p@~clanmPh`EVm z?@iJh7MoNw~HSK*t zb9VMgGNkcd`ftWc0qX~Z!$qRneZm_l61=8 z%cpv#Y-o`vWXJErRJnRm6pG;_L>gwW<;3<0 zY@PaEk^=eeuXbCeodUyf7u8WG+ABTITHZXro2s3=FFR3NoB~)Qu7zKaIH!j-M5B1s zXNrRg`zL+f;Y+BqxE)C6Y7>jqm4Z!kJ2vGU^pSH$a~UIQu-SUKO3BUXwk)WRqXyYl z1NvGX-||qz1j7BiMF_XyN&-g20o0&gmdw7Js2oYKDe zWR+ShMeG8iqj-~ur+)peJY#Tp;Z_p;hNwH==gX7;A%_y42H4hBGW25c+y_JWH6X+d z$k&E;cU?w6>&({#-^boz*PfvkwnhC_h+=o7s!6r|$K-xwWc}^MD^mm8J0kUGz8ncp zk1x2e_L@>~qQNjJjHrQNb)5+K{DK^)Fy$&CP9B+DQ~WTWU51{j^>}^9^=9g85zf z!CHH4#ErX1Oe|}>P&ot>3m)M`s`K@u;`Qw(Py7RJCjw-qKUUnT^-EHwjL#=sZtl}v zyq%|Q`9~g~Fz=R-$@KP{Ve$DaqEu>^E)+4EP8W@MeHZ0SsL_j_wd8aD7#JZ2zk@Kv zX2b_O81zb~a(yC}p!!i0%@pqfriI_lJ)vl_$wBrPiYJ~MFh2a40ZqnQ2K#g%nU(&A z)0wB?CkV1U>^D1r_(>$U8bd|HOD2JzElX|aRwC5`>j?f9h}*+3$K!Nw$wU$ruwrY# zKLJyLi?KYEzZ#<=K^NZM0waHQDw2GY?ZM-)yB`+VGi%Em5qn%Ego^CXoP81rhSTr5 zr5ta(_uHOHvFvMAPhuYRdq)VPpNm=*`ZP}JC~Zd12F7~8|yq;1@^Ltw3mU`(FUIVALdUV!F+@3^aELQJIpMVr7_iI#ctUdgfI z2Rp?iLu{+60B4e{H|P`vq$MN$#FU`lL|?&xB6WbbBqB2$u&KgW1L@+Az(F>oKi+4+ z^4hLNvQU#%KliCamtYOd=q@l>%PF=8=^UDkmYbT|L@I$uq$kueS??8Nc!+M`R8xv z09PFWa3*xTN-(>;$?HVrLGwg)e&zll;~wYAHg-s}&t*%~HR-j> ziTJaF>@vK1bAdoEKRZPL*7Pz3YjZ;keiPxhtIIpR#w;4za4T6zqtA?>n09Q`5PA{G zVAy`*0ORk5&u96jzBqkBe{Y7BwNev^q*s@GL{dJAKA<00NW@z0R;9bqS9iLISB`)C z;qhq^=Vtv1>{$v(w{j}5UDsue54=qt{7s)KxA~#ME$z#ab4x*EW22(LZMoR#oj`~a z86I48ZOo|6^)|HNd_btm{7kD8Q#vItQ*plyvwRf}jgWm9;i1Q*>Pz*9Dnt%L$IVFD zTumYAo4cdei9RPkT(^(m8CM(|u%g76{KKU1H3)rBU?5e|?H_V?H(5v3j@>(XWd5Oqg51i!n#DnrdK&ZBsk z)u=XjK~}NLJu&Kj)Pd0GvfA5-K2~4h*P$s&&*u$nma0^yL*ne>5I1y!frNc*f0jOZ zITi8dnOeMyq?8xrI$|i$nd2SJ5@Y{{bwi!9J=GWY10}#kc=&eji5w}+alt-VDJ932 zRXnr3BohB+(e9t{@q`B;^yDyqoBs7OF5;Elzgs(LY$5uf_&54*;&i+4z~p{IWCVK@ z<8v5UrdM5%N_%n}zjXC{h@}9R-i73xkp0Tpefy2)uj3EliB3gEQ=W!9G3QCMlX5~- zsm*}4Hw7ZHBZu4G%m&)p(XDFKV8Md}J2~%2F=m(FU5aNoi@Xyp>wJP_by)Obly7e9 zD%aTefsM$%-N4-CPHP@*X~dLwxt-vKTy6pCDEZoOqJ9xe5FBN$w&2$4CCNdt<;b5# z^1w)r1Z&+_YwhbSLL&flmb2>ChlcS_zArk_@(&ZvQ)KOas!ua76GiQbsc0_nM_QY2 zI5}OGiW(7OLXbTJ^c^3OnJUf%_PQ_XF7M~UFC zByJ$<9L$+MxoHqhH@<5oHvx z)?DRT%XJfhcYN>#sGvDbxyIE0QU;tp=ksu0cfVMMfRS7e!#FYo5{VZKnUn5F9_VG& zfoEz(?fyt2OfR;z`oI?g;P(d&xVrEjH4Kq#{0U#v6gP9KAiLwvK!6T)#A@SiGnhF* zOglZ2=>55KFFp4kUUlqq9zAmHIA#}F7aYh#1r#{{y8=Y=5C2u`Ur+ueeDpM2PwqBj zpd0Imzz&s*!>$-LtJIC%tHmbT-9U_1oY&-q<4;ky@yFH$I1}tHAWUI)&l=k)i(?-o zOV+eEx)sO_c^wsRCcE_f6p!Uz1-WM--l5%^88jdGd)#_v=Wr`!P0e%GT@~Pi%p!?K z#PW}&OE-WPr3-?9YQ}r$)33l|zh0SMH-isIKAxn*ol=nQ$?bmD;G_kbHKU8(JCnFW zc#4SU<1Ao_+7H9Ov${gmZi*2NsN1|QF2>Bc|JT`d|Fiu?{UA2ADN1a$m6obj?7gYI zsZq0~Hc_onYHw=Src|}45wj?2?-8?T5n_f&o=?Be>-h(syz)a{uY8hw?^*Yp_dWNV z3`Pm6k8+6n)*Wx|c>eC*-3}CT8L>^iOG_qlJPyOn-F6h%r^o~tYbzJY77fp`6@2k|Pqv{M7hV|?JSn@L9 zh%TQ<`2crb&?dO&b{daN>y`$Ecex(l8bF7;Ta&&k2$6famE?Xi@cUdB4b6FZVyn8d z3Ssc_ezW;&#{ez1p#*XqFNvp6xMDKf9zy{4W`yaF*a$v_bVYXYilxdBP0EYky@fS8 z;*2oCtrka&{dyuqf*XF`vvV1#epP7u+Ss?t2J4fc(_jh&QOo*js)w$`_iQ8;OpzQ* zvAWcj{5fqknImWr4^H88EbYY1@P;+R*4L@IA>u5gGI*ZQEH%cyO36;Hfvbb+Fa-Uct!xTtz*kLZTzHVtX{6Jh0K|9WzpnN#F zO;m6dX0I5ERE^qPN{-?W2P?uQW3!;(*9tF~TzP-B3|f!*ZtO&MrN%E><6U)zUdk_O z03P30`G&PSdncE&ji4imJ?P5{YEXMmy)!@%jAknk8K;cZIW3d(gRj^@)eo2($$p7M zu;Euci=bCPE&83^YE0No7kAO4%b|>Pq4!O%l%V=X6^>OW4x%Dt#%mA!!^nWMV#w?n z@4A|n67-H*3-C2GEqi(;Cl;V7MAA7EQqLQF`O4D&S_o~zR@MA6P}wvoak+zsby5%v zQaGYrkGFM0#a(P~nR_{rQk> zXy`>9EI0kQztSfx{+(=|Dlgm&s1Hm{{rNKTK1Hlj#JCJKaRm7vdj%nC;f+T`&j$qPOt~&^80hpntAeqLRO}yt^pN(`9FnU6T+?lNU&f=2MwIwAmHg8~V!}4 zTf(f}z632GA0~0|H=6Pu;&=aXOWBs21owp`R5VfvbWur3a4CSx4pbFh z#;q-=O0Y%a|Bk$5w(f}W;C`fYPqwUJ1ixD{PDax>hoFX33gW?wjO6LfX%<`M8z!qy zk>LnZD&iJrG9&UOq_vN=i`QI&)qsH_({G<%ewapIJd0%Fxm6#szMA#)I!}jWb;PXG z&&pO9W%6zsoy42tab4f53E^Aqf02RpAkK~w!R0q};?RP(qlFzds0h)rt;2})q#5a} zy$2{_)v``z22$@gjO^Ecx>`=8iAA>vx?~bhO8(f=6KyElbNo^kPo@y7d_`ycorsI* z*XsoCwXLqU7EnY5>1uOhTwK9`(6vSI&Hhi8cSp<*IIt{&uy#nQ9UPOQa9ezKIvD|9 zRs5}7i3$4s(VF**oUkMVe)8MeU=(9PHq#HzwX>7v_4iS_O6cKk@do;yu0>-hZH~Gt z%V&7&uhs&VC&koF*);IT&Xr((OSa(5P|J=NPyIl+mi$LZe}=c%G^A% zIso^X&H}5~Ii+riRoW0$1(HLxWfrfuaR6{(R(CD^SU~)6nH5wl>~uFW0sy_q30_#( zueFDBB>S;7!IJQNIl+%n(bV`vx(ix|@mb{X%$M~XVO2*RNXZ66s<#;87ZPw{#K zAi{NUDuK4mCKT7@67R^f>$eblXJ?2UjQE%EEX2DJ@)jZO~$x7 zOj0B?c%^Rj*G~7lQ1_PO&{~umAv?v|7|`KT4i?y&8T#zi=jLsQ8wz$+iD<(R+F~32 zB4ST>O1Sn!9$|ZKIIjN+gFkGqz3B=%6Xzf$Dk&!Tnp8!I-@3m!4NH1`hv0XQPgkk8 zBFIjN;LzNHi&k!Fi}>Oi?o#&s=*2S372i;&dpqLI=0O&8Z0)TkYE2RVfh;OWTZwXn zxgXs)`#+Z?=}aF9g=YgxH$Mt`haMfLY|&Y5_2U-~+B+3_zS;3hU&^5M@*UB)AyiwjN@~cJuI=g8il_&Cz#ivfU>k zQ07m@r`3VVkeGy^2ypGu`d_Q;Xvuv}E3ziSDCVP!+b0T==;PmHQp1Hzu)ZP4#f9GA z2mIG=KVgBIYKVbGB4w4ur7jhhLbev_K6r8({2@u-(06?D831m-*QsQ8n{oOPXmVU! zJW-7vpFJecAMYwjcm3@cPy`;twk|n;7^ZZeAOeSi(A%oKvwo@*esbX~A=Crl44~Rf zf8!i7yulvpjIAigxgIHSJ7}0-#~IBJ6Zx%h*X+X&#cqpvZ;p4~H#I~A=G61s6Rj@l zePXwWQ6VehYm|hMr|X-S0oE~pQLh<}0&LUc-1qt$v*^I+igg<-J8E3$)mGl$7V8@> z6YM~bBGzLc`sAJJlz9=Ds%AZ5(nKjyQ^e?E=)7V(u&iM z#3b-?fR}H^wRoJ*U+7+a<-k~kt=BtjVwHA1ZdmXNw+iiqVFkpqbE#?wZ{9Bo-#FDW zY4Y*xoi*ulj>84?DbjB@K59;Be*u73QtFb+UDOflu8iuk<96a^pq@T5mN(sk$$u^G z$nI31kJ1(o3x&3>Ee!A)GOb?3ep-Gac4ghZW$C5@C&FSfN~*)XELbzHw5OV6e)(O> zCI-WEFit`vDv{h{*T0@HwW12+P#?;&0L|}WxhV9} z@sW5JSdM$a_VUXz$zVLUBK-{5huyOvehpg^yf8Z(`F)gxV7T?V@4&?^-6PK|C{Vwf zf~d2#wc!2I%HdDjKH+&uyC3Id1|;KD1itpe>z)lk$v`#QGHbd!nr0wt0xQ90@Y{9@ zvtLnB8Ptrl5i{YISByf`( zBaRl#7~=2X+?@Oje67S7^9d7DkHO2nl)fieg4o!^y%>+g!8;`Jk{Tc5UM&V24|-^T zF6#b#erma7QCA16n=wi{Z~9cGdG5(4>%`eY5ZU%LK7zcZgey}1+Ymb+`CDF2QjR=f zdrA&4_j(D{)=aeIScjTsh>Ex5SX9~RK_T3Cdf)cLo$4VUZ zcz?IZBS~*1hsymDur+5!^cp9PIOe94?est#;t|Dzh>@TsdY@rSM1$2Mmcc9neBC;s zM08B9V{MTKbhu(6A~ZErjsfon&^ztZ(wLmp1^2a6?_R@(h!Kr=CeMK^QDiE9;;K>N zWd`Oa-udqGoBiK&{tfZyO8Bl2olQFI?#e!YEjlI%Q@SZMr_4EhXSb>V$N8d={a$g5 z@{(f)E)d%?d+EQ&GC|SJ64M{?%)iL^tqz`@Y=~XkzFmkQ=cnmTj@UAUh7J>9KYi0M zIl>ziU<2|I4K7F|3J;7;sEfjsy)Wy)BaA<9Nr&h35H2m$c;0y2%CDiS;If;|HJXmy zyS)X`MpYQVGc$z`gY&$&^S@`<_|7U}ZRU@dtWaXIb=vi4$UNdZeM5vZes)gFBs*QX zqFs9xi8yT8;2wvK;@t-hB1GBTTY5ax@A9-5*@QU8ZILg9Xc&mxh1B3^B4a1tbYZM zzqU27@3O!V%&HK{&>%oG+hR_k?o9bni>&7&J=Es=w7#HXJ8}1Kms4>a6K+0-( z2xD8}XxWmb-7*jpr%vDUt$w^6Ydcs|6fJju1vbnoJI^rY;hej1mJA=?a)}B}E2PeZ zh8-N+4`ncQU-^%|p4HvHxlAC8xcsaZ?p$PCe)~4UQ7oV>QeODwknfLS4pZ^$SOKeN z>0ha~pf6)l(!CdVG4{XlGM@%fpaO`#`i$B(3?C>Kt;HYgNAV&Wsj8-I9@68rJFa~Z zK`3Fd>Cl9$DaJb`Qk`uJ4~)J|y5}2Xy18ID#D2w~g(wZ|_Mq)N+V%wBLo7?W`GaIh zlS>Q-CKb5Ov3I-R%+pm_cIr*zeg28v0ie!_esa>PbMNhhrRSJb%;NjH4Zas z^)Ta#pdA*wJu`kc34CDmAA7gjG}zggM|fLzQn%Q?jH1k%T=_%lZth;kYTc&@bVHMF z*2ad5Q-IlmJ_zc`Y*?yen8~TWggBpl27vvk8$afpMO{pa5NxwwE(6HXjC*2mVNyu2 zAUjw&`GAU*7x9c1YA`7xK=l0}?lq0Wo+Xc$DE@ozf!uox_zv$=v*i<7n48V1-ekD!_};trMgrl0RVisQJZ|3jfX{QiAE~o7_`#RIyY#bQ z;SEFZ$(C*;WO`&Lp#HQmzHqT`disZS`!;gD96mC8bO+6vhvn%;eG(;SL99rWC>w*+ zMObvtj0&?Ip-naMu^oSj$(iPGqwkEL11VU4>$<5T4 zo?tG*S_)S#pNq9&n8TkTgB38M+Yp7hE5XUE!9h6JlsX zbKZ&r=4WRi(LhgZ7_2P`T2T$WXII`g!a{?&@e|hllFU#lBLi zTP5nXn+8W=CKz>^c$-A?WeuPabL-q#;pZl&YXjF&Czz}$BKYm8Sg6w$GD#JRUeQjO zrS3#QjKVeZKjNP3A9{I5lzggczb;6b(f)Ru`mNYW_`Ayk(ZAXegj1C(#k*~uP#Z2$ z`tSL6g5b+kFqDnj2_@~jnr_`B-~*j9VSlBx=w)~i=NQgEW_0Q$-`uq=IzRgIw^v5P zXy#a5lHOCKi=-^9Xf(1yDRZwTLFWysI#KiARE3^w$C?h+tZ`$*&%4yF7a+Tn1vPx0 z#dFbTQX4UtQ54c4Zu+};CXCtJ?mnx@1y8{3UvVPl9nr(kMA5C!j0D!-`Xlm>O!J&c zwNXsFQue{H(B@r7hhX8ccm~G;nPfxZH&yCu2zQ>Z6t|?%d96NwME$S#z0DZ2SV%+F zjobcF_>8_ICLK2X@;B09fd}m&2zsByB`3`p91@DQS>*P4-=U{SsdAaxmHrK~I|fTv zZB`?`*KpJ>>UXPv9}Q=#+9F(-SCU$ISQ3m{2mjy-&q+^(?>I@ zs9?zPFp`N=&ztlSntVJwLaT5|Cm)|G6~u{CFnW=_9ojn33Cb1{1oaWVuA&Z1AbWi= zdwgLf06jn*}tm z9*cLf<+`v^vz_X{gVQ~K9~k<^;A)Hrkd7m+h(d}>{;%Y}%5;3ZHVr?i-RLG(?1q63 zXa>tiBh8y+^zA;q8)K97U%w?ab0iYdwxcE$-^ZfazHr7Z^|%HPLAKnZ}O$xhX~c-7jlCL!bPc^!*F~5<)r%SfvgLm)IX}-8%iTV z{qBcxLVq5!nJP<&qzZtRMM&bl19#zk3~tj8Gl03`cpm0*77;0P^B*Q z7@3n$E0`a;{%7eT`=NsSgvUx)uR-|I&^`E3DqQ?ZuX>_;b=8vWa{lhMZic zyW%&FhP1CAIqv@PyB8Pm&3Ig(`$aK_he>F;wCk3)2tJVVfSnphWt@x`)L7;WHoZeh zvQVJEtw&^b?y%^A?!Q%Ds@P>s<`%Tp`aAsGWK7`vS1vA^Lad23i6U5Zt2?E?>L@+D zc}R4p^d|gVjO75gUH4>vPVB5v=<-MB6?UFtFOW}%?BU2kT>R{jS`7)hsf!;~I zG#)yH3#MYymUe~}PlrNo_@6=vEw7&o6jeGF8#L5_9S9$J&@d51vH5Q#h@_)gs+tbA zR`(Pym5agrDCtSgraSBk?niIZaH91;5hH{~{*BNM--xoTDRSu{s3kJ46pwS*s2bBB zv9!wwaeDMz_#aaxrkZKBxG%->!CmDCm`@V3l}oWD%>q;TL~y*((*kii3sS9!5|}Uz2)<0j*M@ z+S^d)V^ST5ZOVqGdR8z)05(cFT=1I@Z#-M`q-r^8UTdz?)yMF*S?9Ojgu-VIA5tF1 zAoMIk{TgZXJW1OzDk@zn(;`P>U*4;LkhfjOCL)SX(gk7n*4SJJS~D|Anr!!-a(IG- zEP0W1g_ek4)(vS-Onf7rz)$anq&dlU@COFH=qG(77q~3=N_xU1P!k^I^gaAS?)hlQ z(#Xm_5zC&f3il0p;YZ)=TV+(}koG-2*Fz(^*C;W^pFB5o4PW3=gpBpUGbZ1Ka>_Vv zH~(bR>$Bcc-ev!ZxNIB5$lWs6$Re$iBz+u#+Ij34+Ws~!Le?3QE`ZMgD;%^X^Sm=1 zzA(^q;y*uZYY1`*?_9Z*^S-YvNl@lT+ZjP-kxsCA3XUwh=Zg?qM!@Pwg7+F-x%{C8wS=8=2n9kzyP1zP-u z{J#dIS_DENKcOD=XJrC7iZ|rPF>~8;Qh*cX9~kIxK$zTESSt7&9!C~|w={9C*=F$7 zT0wu;!+4cbRwBT?s{2h!=RQ)#tL!UD5rX@0sGdLwW2$xV@=lY}! zD8h7^Nak|-WkdzhFoF&N54q^$CEqh0@t-IaX(jicFzi-1w_18}{^O6)KGeFK5SL#r zdQ*@gb%!pKL}K`0y>YCFCj2qmOk2{Y#g4!E9s9p=`%ZIHGB-jM9uIU6PP76wXG6pn zseI8uOL09L{(NNpJ2UiD3S2Vo^%kN0TCxO@mXy(+qqji;mJ-99Rn(^Y}86 zlN)6y^hY8Cext4Qud5&#hk^PB1+*mT7@eaXThwC)JR}-U5`nQ+F#I?L&LO`t;}c@_9~=s`gP7rfXmq;^K_@R)>w$%(IA?bfTKOcv_J-vvf7 z#Cw=N6eIIc-Jaahf@is)0yJJbUZ!-@=y{W8W9n4o#elHU=q~=G5E18Zh2%Yf46H*} zvoQr8?K7g$TTc24$qK`SdpyAb>#S4*1`0>Yz4qtJlbibpp0&9)40$2mTGU{Z=y&&` zYq$r|F=IYgU`*h*Jrb=CU*cCTF{*-z8lAkX%JSIo6ewc5aCNKv61Y({ec)|rT)l2} z`{CLgk+YA)m#X4c8(+|Dp*es&fQnJX9~T zLF{#0gjPZ66kgMv!@s_=`r;ufz)Qtp&1a;_UsXr@fDU2#BQeO>PDFsElRe81nF z6J|RMbz$)KqjNxAXyEx6X6XCU?XwD7su`O(`&i_G0UI*PyL2*h+ge(yJ`-wZJoi*CHSe zoPtjuk)wf6Y+NLPG5!7n5w_Exj3CT`@uFY$eHWp4oSo$L+t*ennS!o{$f%P7u*Fe{Q zL#`L{znp(=L&$a=hQr`p9T2vL^#UrY2AtMd+ftwPmx~F5?;ZQUa%ATZa0?^YQe)HFbE}GV)^IC0(LM38ish&JM~xW?ejO6v+}eU#y#PP z8}-HG*rjI%96~sMvCku9= znD~MP#c`29J=o~4Qs#=3q$%C&0jV$9r0sgxN9CfscGa~e<=XWXqOJ_uGR~Yvi3J1n zRAE2qsY2yLT|+~Yq2W%!h3pW_{N-oj1n;Cc+z0E7r@y@JAiA*HDm?_=exL7o!}<-O zm$};`E8TI7htKqO;r2!>Ne!mE%3XOi(Kh$BceEG}pbboxiCK7T4xEQ4SV$AW)DZx$3E+)hp+s+B2+0py+Oj>to zfc>Ts@)sMP2}6}|@1Hkc&(DlqG@exE`;ELE#b=R~8Z!Dr%6h;oMsV-v%BIEbqQz+! z6U2i!4E!h}rT(m$%rtQk&m_#^!8I5aTG88mgHOg7w5-#Fx__T|mMnlerR~~m zx4i}McV*@}zQwHI7Mg!J%Ou0~DsCW`r*@Y^2mz%hJ4smVISN_+75h!0_Dn7MA7b5^ zIQjHejDeC!+Jc^&K#@vvaHp*B11=Gg{Q?(T?G|Wm0Mj)-mkAl<%+mEs)R@=f&WUmG(Cc_Fo`SU+BJ+igM1_vaT# z6Xq1lIa!{q{(MM#DjM?6S3~rxCW2_{JYBsCOf&)@d<=FRj29}w!I+W=0#cmO*Xmi;gY`{KQ2`{+K}odX9XBzvDueG3fy z1np79Ix-d}>V8UyQBivQVl#7vJ_~*tQe(XIeo)iW_;xJMolS&lB@6&Bdb+WNtM)uIN{; zaSX(>Q|xt-U|-s0LdUndqHg)0oQ8RfWT|oB$dF=qm#Wx24xCThY!>7|%l&>FOdVBE z5(1!=Hw}edAJ&b*TVi?7zUUtM{9Li12z=}SL1{;jW)UjZRDyg!Ofdf%ww{auJC1bHSS7yo;oki?fu%P<7jsS=M+%%PM8=3@>Lz0~4W?)|jLYV0y=qQ= z)>7_@6;JgG5Pmo9^~V-yVKi)|+vmx?5xwlY+<(7LOzqpQL8fz$-P^H1?aQA#sH6wo z(10ADl=1LP?Q8sT1T1zK^h|9&A9*M_iZ72%h6jCz_s$RLQA4+od{Du(Ggu5y@8h`0 z*%Y1&Hr0jZMSHOT;>KTeDSrzZV%|ChBZ@Je%3}R?p(7IWT>DgJNF%gm(T>%_AlWvz zV950xrZ*W!9fC_T_sOTNPU~oxZ<|obFw11gfM$`fMV&_q`zpE~N!mET|-7^htb3)AR^`l_n2RC>MG^ z05fMd0PFK4yVHDH&x4>trM~i=F8EtE(P5OUlC5?{yYBL!jXzXP66EZs^>$$XbB)=4 znq@Q(?jaDc(_NfO`JZXYF04SpxlhR>FvJ0MVsN~pOzDepLlDc2awbMc`kZ%<7XV9F zyiY96Nm*50@1ut&)i)~G^qQr$z{?)|TbyYJ@10paDo{FsfN2ql^?E4f}#e|}Ag~4D$@PVf8dR0|S zGW^;zTu8Q5bqvbN_kJrUqP=V^SZ%+&e)OD?h+Bqe{o119Dt{1>vLzC$diByZua*Sj zF7bDAA8J+9;sA0KkH*6jHa@O)SR)ziZ z%}!I3EaeccQAnD*7CMoLKTptk5@DSqW_6))353WRPGfZ^p5stX}qF52OR z)~Ba)$*}B|{Q=oa0mHu^Vr_X~erR8X{&ink_fN0U)Q+lSIA$PaBVKLpFll*%av&G}kRZa-?e8Sny1SwG2XCcoQ!FTE{|A7i*D)NCttcCC(>( zQhwXqo(-1IXzG@m+D44qYEs(R%nLZ%41l`Q({Sz~Ew%FvH<--2ixlp(10B1r6o}q^LD#xcVUyvH8OoP{4ahqH-$y zyzEi?)M%a=m8sLK=bQK2x^C7Gp zE(VEnKQ43zw@`E9sMBBqTM#SM&W88Je{B0;^3ixl{$=b`rEj%^`tIKcFO86iefbAO z=1R&t9>z$A8yl0;4}5vdAlZds65D(OBuEfknFNCSkf1KgF)!-8=Z6amH|LIhF*EG3 z2+KSym&2A`LU=Wqy>wrla+3Swq>u2K(v<6DKnzl?ulyg)!VqSc)-Ti5+!E}1} zYn^tE;Q`_CrZbdE73*s+)+fZAGIu4L>JP^p1`mmbRn$2sx2e{?kLVEnvowL7DV(sgYg7GURZ&$$AhDT_20H& zM5aky8!dC97b(f{Ate|`z~;6ri1}?5!WSPd>U}ydIek%AA0rZ8Q(7{wXD8fuJ&e~n z>{YUNqm&E}AP143et8gdAY6VbGzcx(hA2v3Pb`En%7?aLP9u zl|%a#;`AFQ?={`N8|Kfn2vu&?Q*xuVig_cmU({$64R;ng(jxaaTi1mghT5l;~@7>|0H3J~1K_ah;(@gOIH2z~~?y=#)Hn*b}yu8j9pg zPS}N6XmDUE)@`1cH1301Gs)yk$3ZeIVoOZLRY_Zoocz(QZsb|ZEEB4^qA1=UDOU02 zN~bAhj3-Po8KyrBGc!B`n-Ptc`{6W5I50i)SFiQHJOt3L+hLTvR}_FNYKP77{ceC`hO{!tQu0? z;%0Ms67z0)4xOQ^31R_d%`Yi$whkFy2CXr z*1daOAI<>s3?USAnO8Gga-2zACGG9AIFy(7nSxQKiINFNubLd88M!DPQyFTxEyzo5 z+$Abp#c(BGoSas|z(sl|d0bBs+bs+Wnr1#lNVMt9D-{XY2%SPAFmE)lO-69L2S(fa z#Bz17RWHAK4a!+@xP7Mm$b zok?~c{32|%#s2-QFItmqft2%xf%?g^92OOe6%HpVbj;Quw7Ahy=7%^wpMqjD$)Goy z!J4z3e`C9lrW%!%{Jej@v1P&RHoaeJ!z@b_B^o#-QEcwO=-LN##$nq8Ct2T921W~G zfK$)x)qUy5pEbv%O?o-h2l*cb%%G=*?AU-)T>PS0a>59Aw5(Fj!l1Fah_((BYt_If zhv$#NfOWd0zjzBI90*z|v5HrjmC$qu)+FeoOE6})63zZF1}+rY(XCk zc>W+>KS(~(G`JQQ#Ao5e9c99`T&Ic!zi8|l75y|@4ig*0!_dd$QF|G ztKXE>n{l{&zuw*PXX@4aWjz{%uU0i#6atc6+un8(v9K7B15JL4-2?GB2g8$5(n+&b zY@c$IrUzb;Le*4;S*st5o^D4@N2RoV>wg%mSFv!*9&GDL-_G{bgadYZ5ulEK@$C5- zfe)DW{N1RR0OwF)1cnn9QhlJo46X|PoBCGL@ZpTauBQe&MKWOcGcniG0#BuTDAc#; z@ythI#%`<^8!f<0U!mjmZ;^=&Lzw{`Wji>nwMt(>p!{JHS3fOf4V0u)}XrUkJka*on zjXrm1WOm7rr_PL%6nhMYAaoY68F`qDWEeORBNXhI`sdStkX)p?L}Sr*^YndJ{w>Iz zgm4bnKQpuOPq;V*i!Gu|gTXJFWW?>G1Xbs(h|y|A7$Z*DAXIo8W|5+QLu9i;(>L1Z zBo>lG76Euv04PTW>RR_&KC!yt;pl7-N+`89==R^_^5h`HwTg`%t|0!gA z6|*kfzQLtV&Bs@RhCKJ&WdFC2ubs*8xh*}NuwS~Bos9JjB(z)1Iqv$EUouCyx(j=N zuc4pLRA4xTVQBHj< z7Bw|NdNnpaN~O?q|IY`;e9a{w{QfsfsMk3i+ks`xpga`}Op4nTjH!90Wm6m<)ft1C zKtNDQR%oFOp<9$%)%g+8awN12ZuwwJQ@5ssjQ^vA+T>{XHot2cqV``FLpv>(x-kzz zX#8dKqc1P${-YGovlt~A8h~3!GQOd$4<(7rmOxkh+5b)Ir@2P*zfSUPZr3hF$?%e77JDWdsNyQ(>B67_ZG|YVdKegYTkRO;ZBvf7GU8 zLE{1f6<kf z$(TlMD^dMJl1Q*EXY!1n?8+lEJrp$IKXrob>cg?6r-+xcKGuH;1EUnEd3H-@C(e3v zbmCpz*1-R9AE%J4zfht6sem@aU4M;%P$4-vzOheSvF<_pN8NhpTlcVu4JPU9Rt1Nd zX#1hBXagXTrbmb*lB2kADB2gm>;iLX=A(6Bz|6(i4uCd&j}2_gv@1Iq#285;-y%^F zvqv!FoHGWV>$HCyn2^5aH9j=r*{h%&u2r1_xWL8#FLuw>?&WzFeDhB^l5PVwAU{!e zIzYh4-SCA1RU}7B{=^BaTvM8-a*8$A&25bykcyb?Z8=hgYkJZLlD{U3pNd6t#NO1( zpEnxh`t|ZW7j0r2xZ%K!XTkb400oKX`uf}8{W%R-p=9}q=Dc6CMCrO#F2h4IKv6k) zaFP@6GTcjyPW37`mmH47m=&m<8vgkulPv6I32)ARHs#X&Qx?jfSnRuuwxC{itDkQ; zNH*S7N-R18{=4Sh!*$K4as1bW#1-{VGx4`2kan zB(MOrGmU@76s>}N_w@c`eLo|l%Lv4?*!|LGvZ!D0Fgq(qo7Jq z-!!f&=Ul$0I980i5;d4~cJ~pE37)T?F(Iy&V>3sLE``G@P!%iJekTRtQCy$BCR=5m zLIL zXT9K47>h`_5~>BkY|)Eg$hR_L$hWw@{p&Y3AYkk&Y0t+irzmj7Wm3QN%Vz5I%cd#h zvEBSImK8{XZnaIZdR2IQ^U6~`=^yLf0RKs7w^y8%qifPFl&S?g_9z9(DrM~tyao|4 zlqsL_x$lBdT8#^()~8Ya1sqM-KVe9Ya5D3sQt``M@AW(Nsg|hw^gfuTw&I3h0Dv`1 zwQC>Ms?P=(>D`D`F0os)TKn4iId2ACE=6+yoC^CjDrNOa!y1+RsBTYS(NsJpk?WhF z(en_EOMXsRYN+A1fl5h1?!NJykl}MgqORLr!)Md0rGP^a1%Co8Pd$*4m{}*wfC}Bl zuy?lbr|Cx)gWH+y_)A4r9Zzq*TLNjP(C9{tn>E(V&yWF`0ar~ivsQ~5^H9;eQGV*+ z*(lL*oP@C<#)!yM11q`P$~Z8?{dDn1-hDT%L(`8Bwki!-`6fEwxJ^`@`MUO5=}MA~ z#--6d>B@Ur;>^VC5#6Mq}DXkx@QPH z(9-xl6PNyd>}l1R_Z0HT!B6uB{Jb%}R>QMp^TYI2O(`GiuYTMUfW2T+C*bpj`_4pF x^vURlyg5H+HO#$R-lgwxcEE!F|L=`a42;GEzus>XLJtC78Y;TVpA_vP{|DPEN#_6n literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/visual-studio-code.png b/apps/server/data/resource-icons/visual-studio-code.png new file mode 100644 index 0000000000000000000000000000000000000000..fed6022b1f9520f16d0e4c488e893c0baf6351d1 GIT binary patch literal 20978 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/whatsapp.png b/apps/server/data/resource-icons/whatsapp.png new file mode 100644 index 0000000000000000000000000000000000000000..6a44fd1b1d82edca834b353263e1c2cdf11cd9e7 GIT binary patch literal 24795 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ℑ<4bG$5_V! z+$4fF$~zpLoT3T~m(7pMJ;YFH*o-atp~>^vC_y}80FXoAW~8P4SYKcFl$NZLgdjb+ zwMLR2G#jKZ(W#gKWMos5^XF*;7$ydWg0r(T^KZN>;;yQPd{joz)7o7-XOMm-+sokg z!+`Jjd6Cr~YSw%tURTGf{HxaI2Y26C(z~n24#XKp128Z!fg*`Eulg}LS#$GzQNQCA z8$XkK44|+|{FlFZWY|a*cj>@TJud1Awn6Mbbyu$6OdB{UaRcdzp>=AC@ z*n3SyWo2{-okk8rD*vLn1p~X3+N$S}$?&<^0-y!4UY| zn)MbQ58wWFqsc>ol+3!y5N%=V(eB zx4SS^44}Kad+qxNd4X+8xWFW8SfSQKg(F?Av*wDP$`C*Z`psQ&Q={n{8YY0(LI#$+ z{{UE(#Xk;S=Dr3nU_cSs6B5e!6%2O076n~h-QLfiFYS-V4m}@4UOngv1e>>D4netw zy@1%xiVQaorw$JYV$^P}HmseQnfWDBqVvynp{8Axa2&|~Tezq}NGsy@)XPj*tJVEr zGbg)CevBj8yaz*M8RSY*AN;a$n6{z90ucXrRZLlF)DyWG(DA;{BAr%B&A0AQl_oz! zjeVoCvl?-tA%M9cV;iF77p=nQcGGrKNLX0d;5N-R%~mM)J0>!x!zSL~$9TK|(oM1u zRq63Hf}5NBifcv4&v^?I*wg1ZYvLOwjRpWKqd$-CjoLpVKsbVQkh_t0wVvjoj$#Qi zYHz#suQ>1k0D0^;ck_rG@bdP?mXVQJ!f{JIm5CEAnMS*AUZdp=VnX+YuGn00!9TI< zR4^446(IuAox?F1LxFnr(m3KDd2l~(LR>}w$QFAvuHf%mDz5k&v|vBKwzx_(3oL$V zpDk2j9#5Hi_;cS3A3_RT1}-%yV7vb1t#@&iWqvLsF)=ZZXk?R6D_n%p6ev=U#?soK z&CvoK4uFI^^8_eYd_<(DlMz5EzT`?A-l3GT4ODId+m9dfx&Z)H)P2jtvr@q?`m{w; zb90w3k9U*MfibV7tJ(!xTw26>HYP%&jZNH8*+3Ee>B2o0=<2wi3{B#WC|t;tQwhbj zHiH1j@Yk&MOy_dkluIS*&#a7$s2pMQJ9ppMRQ0K@7XAcqpLUWY&~J}{J`kq0*;S-o zioCfA_=El&)T_kNEkZT`tB*LaNz%(WXDwbka8|608KEC0bYz2qBrzf5E1NOC54|r+ z*Os#~WUL@C04ch{`ZY3>j2()YoYa&XMc@Zs?2A$U`Qrl|m*T+kXA7zfKKDT}Ku{Er z*@V=%zsDJynAk8!h^!uHc|91u68USF{O?AhqJR0LQ5yiPuvzf>nddl#K_HM%!M7LY zKwW51H_C_{a%V3xvrB%VZeAH`&5Bm|<^5+m< zbxwiDAqCmF&1Ms77Nz&%biSN?eYa2~LS4&wVQg9&E6Q-lK{_amE`^D^4yoP_B;}GKCMA&atg#a1VAjNO>zx=sr6>+|3y%DRUHjMInFK+Q z9&8=*cH#i!Ha|TVG^-~ZU%gr}M^J=@q6%r)0l#M#GMlPF&4_Zb28@7L;&_pQX(chkKMci-GWcje*I zvI2)fyma5^E`=*oaKFp71HIZ(z&z8bthe^3>%N&;xah}v!F%kfSB}#MqW|zAAac%F zsePgSZ+Ha-H=^VCF%ViKXFe<>r4lx*D23Hsw4Al<2GEI#w#PVPTXg~2upU+3^NfG* zXMuN6bqx%|0eynaX^ohsafyOgG=W6pAZT6K!{-dgg|6C)XQc#os z=u46#1gV~b$F$Z%)?M8K=ukkCrzKw{u&&>|vg7qRID*0fPJF5;9bSgkHQFwe7R zb$mbFNlIa@gWn&v0PNH)lX+3t@Q@KIB0oCU7(=juliJ9Jmw=4;QwI z`6ZI{v%8}+M1C{g`YA*^2Hop%{o)d9jYfPz!n!%aDkmS+PB$?UaBws=fp7F&xQ*Yx zw6^LlQIT$<{tNO73R=3s15=GgWnJACAPdqsGhQd4Ugu}lw>TFgSx&*k)Q9QC#;AB3 z+b{u)+O-!eK3CDH6O23&QDHvg+jpqM@^|NZh2y{aUgeJz>_$8@5Xv=a2^@gu0pGQrro2P5xwvyF6qBDC*>=@P0K5X_do`4mJe^XE>-Y$USZ{`-j3Aa8jj_?uRiNn4 z`1qc>aUKeNL9-(gr;>2EuSw1-xEvnOFdBpb`sJv$Cz^lELBh>mItcN`@3+SEF)L6L^bQfUC`Yx!&D(+efp*;E98;Etu%bmyr|!mErE_S;!>+Yd(W z%1e?uOU4{;*?u5YCREIlPJF37LHhS&By;v+#Q&|axp|E_b_vr8O*bZ>wsCiJM4C{( zN{F|Avd??3Po>j2))P5}HY`B?{M+InBkpJ?T1f3BAUk%GfawIY-l)#bsW)mqZ=n?g z$`31M!ykcDnhEoLYOmoiIXU^)9KoOMxpOT^PtyTtmo8ehy5P6%kf zr5|L(F}{W2F~B5?=K!mOxBS9g0yMb&@$D+(iiV+CA7DT&MqE39Fi}s)<$tgKRd?aP z0F40J=$(c4T;}^|Wcn|gWC!VlDCfO+RVTq|!sH%0ViExn_sV55NU_(x;Fz zg`e?p`{K>*Ex()+#(%~+D$4wxO$n4M%9_Wf3qN9J4)cYWcWz;Wqt@E*_po~cw~<&vW!u#jJ8!|+}caoKV@);lgl;7DCuv{7-1C|E*slPq<$0H&lLPBJx70`hY zur&yw5$-M4R-`7ntG^FYLVsKTx5SeACI#`p^wiYi1L$`b#OZG^?qCimjnCdLyw+c& zPrLVfQ$~>^m^qk-b^bnZPzqZO?uwYqMjslTOx232Rt$?hKO_JS(+=zhr|5mD;z^Bj z+ldQ)L%IzcX)#EF!EBYVZk0wt=B8h~cXxN9K&+=Pa9raY9jJF$mAx%2dk{LTKV>fD z7a86TL#Vnr`7ytAMTCKb=YGh167{s$xb+j?XPtkH9M^FJLY)0o66Kst1;a}aSpne< z=XaA78Ch9`^ss6lLjbPQnzdoDnTY)c_K>Q$XE{7*iIXh@%*!>0wEv1XEf=&hca1Rf zR{^7ol`j!=09q#x;3qE}ac^~#W)v%IB&+f+g-TCoG%)Q&Uz<2+VJTsC+#xBG4D@0i z3VZmn8sQxVSj^P9W4b<5VW&)u337__46?)1KYbgjB}pDKuGuu}<#N zM#a+7Qh5kc$q*ed9Cs+n`Xm`XDv1|_{$0{4nv${XLZ5yh2#QQx+Q8_kooCIU2XzQA zEo@^(4mhXoM7eol@@B5)s3=PD_Dcqf)1jx*?am|F~~IufSVm*q?Q>m zpfGkO*f#JOZ~s^_<$|s2bK2R9DP{P3fJ=$poHB`GPJv~90)?6+_vEBuXsf<99QySthxicny*0wL*&3t`xey)eBIKXI52W~ z49xe2qJmz6QbybxV+&bOU&y8qVI1-%`@{c0#;`bw;~E=w;)QI3t_v6oTJWSel{Hsa zJ97c^JJrAnO^$`EjT#MJHT^#KJr3A0E`r^5Lgt)kPUM{9==wDL7 zZp3ARZ-3jum%~Qal?L-7LRIOARWw;<)sC^!MmaEuqyzA-Zf+hXsKL4C6H{>3eJN>) z$loYu+Tv*y!#>3YqON*&5&FVh($XQ@R4bY<(SYeQrRqHwWMoU)K@=m>)Rq7WC|L*p zbf|FF24%|c0?5`Aan$n2*$U?N4I@W&a91iyxT^(s#^vzK9aNV2O+vfjS@vc{grTLS z3>l!1ECOUdN;?TIfZC-=|9>sOO_Ock0_J67OkSPlEs)dqTX#IJ_5;sxAm;%nV`9pvS?+rXGW}1xZ3=>v;*y z6ccIdpC7#RUeG)K$(N$_l^GN%oIO4_OQtr+aZ9A<QvO*>`xnk*tgu|nWYVonu#PTGILqr5-RIZOlGX>#=6Dy?c#8Dg#!mB*0$WZF7< z_QeWX8jGf`8QAl*wfw^e>mc;7?Qhx4C61_DE{e*Cbk!Ft&yLm_KfvpO^3eir#@Ej8 zM(se`oJhyIIJuS1wIMC72 z@zEiM$?QPNr#l^WJr<5_s^i*=h%KK~i?5-Wo;X0%yBdC3GqWXa;CRIdiXbs&I9s3Q z7mynUDk0*^8NX-O{+1hO>&bpz!peIVT=&%fgoTsyB^Pjo)Y%H95MUaQkbeKbOL0ww zG?3kT<@7*6r3~Q78p)?iGIC^O$U|iFK0=Vo_WmP~o2}ODTe#RTa^_Xf!ZabFGyxc! z=#`BaXKMje2;YjuYFpNCBUNzJZ=|vk@`!V zZRG%noVeXQnV#ot`X#APl6{?)%8u|?!@#iGzxs*MpO&m6qfZ~HgNBq{B7UNUduOlX z=2lMuXfwh4-vP4kagz(vgA?P#2-*-N8*O0tIFP>mD_b6*!h3W5cu@o3#=d*Y3Xu)t zCA@OJc%eS#UJrjQ)YTs0xaUN9$x%IU2SFkRgvRw`*m-!Iwy{=l1Ho7|@~L9-k(ybQ zikPNj;O^?|fxZm8hIBy#@hL`IA}yl!s@0?L=|yF8vlkceyj}#jibyHHykTSe@|Jc3 zGG8ZB;RAikq@9Fi#m~QWKtytZwq1leWebENDjFrtluQXIYDxX%8cDK9OS=tvKq#cj z%Xp;q+_tHsqazv$tgf%0nu3jE?EKsAXCJatG_3;m?{)24H6uyh>kVv-29!`xqB{j57qDtxns4`jc1*Yfgv$L~504wa^ zbjXYuoL?*nQgL&BnOktfbL(nT|7W{HYkdrA)hGVfzSHv!&CSgpY-E=gNP(xL$J!iC zDoe4?e^+cYQzG|Fx6i{b1^AKK?F?MFpHZ2L*Voq<=IABMx3U0nCyl9 zdxX1-IIdLU078S|+j06(=6`M*9nb&+@X*xF4{Nz;0>t?fW^}MuIF-0_Ns4ez0BFt5 zx++Skr$8K^pWk1;gCcS_+M!g4xNWGei6CCcZ+-)(ql9))nMukWRT}x%Ff%pf&I`1ZE`Er27@TAg2HRJgq*}a{Wr7x1GfQ7Xny4r3uU}t#`V=zaNGIs%UwF zxCnvm$V!oaI;B-Oq(ygsV1)}ebTk7zFlX-0HAZkaXe$F2OSL!&l}zBzYgY^ zm?k-m1Zm$D{q&*~Su2V=RjZ<78!%Np(dLJ}IHlQk6HF>LASE22(e78{Aez@>+9pe4rSdZoDF@~u zT3`jP<guY}W z-mF|~`xk>*_+J3Bj00;O51?uaPFKvx$QX8n_yqa=;3sKhQ;74uK@XVv^&zobA` zJP!3q4pn&~78Vzk`7qUcUqGG z!WIGuEWQBTdU=%sy?1}W>)-tC9J?PoggSp+1OsP4RNYH2Jf)ubyN4+R@f1I4OOM|{ zUHY;w(F07VW#9oAVHALM+AT1yMnFUJwxp83`z2pJWzVb_cdUiDWQHW1g z2y0}Y5Cl|!fTZK#O~`9!I(rnM0W4_h1#q0lODHJh!N;+T250wZeI*EL(g5Cf8NxE@ zi2u%HM2I5DP0Q+kZYu`#6TtHMpFeJ=ofq^;53u|Iqca!UHb zsZ*eGcW~(dgir*r|6`QYYiAQXyN&MzNMdlG$$sITcPD21iLXA16SSf?P_`^YKKoP)Pzvcju9GS4>0_5buHxERP=(4d&Z}`>^r8UP4jbwiuiTn1M8UcZW7a1Gv52 zYO+k@!$fd>{%;DqHCVWn}`{-#QN0%Auz;x z9$$;`U+I#h%Dnka&9pLP6<@&Q4-8!Kyl6KM8=KuLOs3fv0Mpmt=)Jx&+kYy^mZzE( z`U=YS-3G_RV6%vSAcnqnHqh4o4xYOm4{)5mDfda~Pr@iC_T>N{dH%imv&|a-4B?|1 zFp!8KLw8vkQ*t6AI7o9BaDal8O}WE3^YBqlV*ah}nlnD&b9v8`0A_GxTC+#wpCtw! zc7fOX>0sJh8z2IQH)0=;;FZN_^->TX;-N>|Xr+u*A%0?QmjB8OUyUmzs{ZEHqx~OX zVl?ISWfyp^r*;CZJZW=Zkg5(=?bg~(mbue%vd_&++QiQYsFVP_a9%M@&~0V@-*wz+ zq*`csO)GHCW*0m}@u5SywA$*e5HM6!(qx9yIrICs3pEhr%mZZeCcOKdeU8IXSaPM0 z`G^tC`Rng6aDBkj9FvlI6|h7D9FV{if|Rins9(gD9@t1rr%hgB9V?Gb8r!AaCauyd z81jP^!Go4K)f$?HhK6h*$cOve&)}9ka3zG@SI^**YTIOTO4XVd>KQ-&^uk?hLieo* z5D#Kk?bD0$PoIW7FjpRdPtdaW&xXy0Wg}8g-A4__7}52;4B{k;DXhA}X3QYYf)YMa zAl>fjx-$Y~OA%Qhj%cp^291)Vn3(`q&!ZN*Q?KN+0}mq_nNNDGDa+qJFleG0Pb+zp z&l(>e&+7{~1kRJ(_n3e^z&LNJ3c93WxcUz7l*Y={pnJD;GysSI=-n;YJ`il5I-o3oO>U#J z#@c5mOwEFI)!G*bmqA~DWAqHM&o7mbzyOkQspzzna`xlsi5fUd{7JyWZ6DWy z=?+gVPCI=xS=-xCXqN7*IqSE{kA=(HfVMcuTof`f1IpYeDcZx)en!)9V9gtD^4FGt z*OClqZ{zlQ|8#Jong%kM1S(0q2`6_wYfK!);p)!Ka^b0Mn#jb}ORN2`h$S2jAZIr#Ju}k;11Ml%jSC4)!y_D|UJoLG z!HW0-xpXF$qb9@^Zl|v&31GY4zkLF5Dp6bb5c3nJMwe&RVO1T$@!mTJJE$wtXJQ_C%kY7Kd z1DN*y^_gJ~R&sPxS$3{u2ESrJIrxXEmRMACm^* zY+~cxKB2?l{%1W!IX$2F{yoh&fE+IXR`jJGQa2&iWQl_s>80j>3|@~g6-DJuMvU%R zM;>fM6o32eLGSNc3hF5BL`O?ZbhQa7Lk?sV6ebpsps9X_sn9IWaagTdAS7+tY9h&) z8I)Y{sL|X6H)yXV24x7Bqub$7p0uBdw@b?nvPD`vdy+g3)c5y#VSVW;XOPr_f;av! ztA=h+BL<^J_Y*_7-?YGk;+5Ojlj*1HZc%-E9|t#%bKoPwZE-g$`o41->eI7Ggy=L8 z4+Xm<%Y&v2u6Dv+-{JI-(Q`la?;znc34|d;?EH~fCeHAHA)8kMJ(-t1@W%Pk$C`d* z(Z8Ssa52&82+-FL+P*HJqKsNWYI2}sU@+hUUESTGuU&z9)l5w1eV3tur*IklD=KlU z?b0W&CRJY!$6Uh=oWG&8eQgKAkP9=3RIKRpsZHiIi&la;yrjVO#2Fj->?(V~@Xtz1 zF{7`wYl~iVbm7{0DGCqhY<9Fq7vS=w70jGBXom#8^W(6sda;D#WT@Hm_%d^doQBGs3JD4a3umq&v-!Qu`)}O+j~`n>S9$UT4H#=GD;x2EVo5skd+IVb zCg%V2EBuIcy+n7uh0nM?U-nEZI(wCGJG$aYzS#*4?Gq)4tKvU#pxbsc-QMeWKvHWF zovtyYJ5FwFY#3z%A;Y%3#WI{`nV7YEuaOGqob^>#PJY3rTVM4R-E99>tsQ;QE4?Lo z;`lp8bIj$sc|dK6%7^f0Yp%c0rFq3)RcGgF5DTXpFo3$Tv+qAX9uC`~a~}KeTpnNb zb9DzT3inT`SSz^fJ=TZ&EobYGQ6h)R>G$ifCTr z+2JE#*DSR=dT$-j6tc9R%Jwac-Fkhy{I` zA@E~a-D?DC@9Uu@XJK4MM#gb8B#PD*aEnk+E5Mg1HiXkG$-#RbpaiYrUtitj@5;K_ux#YXTABU{G-21Q4j%Sn+cd5i>Zqs~{kPZq6-=_GgR_!h39$2r zaCjEB344ii@YnNnBs<2CCqELxH?ISlc7{+bWc{fBSS>~@jy&3UZMD5>QLSk4So z6B+_FOmJ7a?FLF=$n1dGnLHG zVs{VxEmrL4q+R_$yXKPM?NEKr+H}z)E40IS6JA4EX*d&@V&atmG`(K{aO3Bh-4k<= z)g{fR^&Rq@3HKh{6kbK#M1QQ8CQIWMK7~kgU^YEn6*%ak@#wag^rzJfA+zH_Ely9{ zT%Ru=?d{zjP2vEeghhs*vKk~$u+?o=tccta<_&iUkC^h({4QLsLk@Vx3VeHoUdC(- zU9Jtbt9)r8Hah)C^vF0w+uHiW=3Ho3%oBD~24q&Lj1>tirk!`2;;Xydg#K3AhB%~lK|#< ze~g#!*M3pJ05$uo4%&_P`C;+3+&aGu9^YWzoID#CFwp3Jy6phR%N6{r68xZbi7ErT zW%Dkw6>6|6tbRut{mQ&8xIo91tBgxFUD=LNZaqK^4JnP+g*Nr}qO|hqfjrIT@iSd% zz6YE%>bD7;)51FJ^$dP^&&z$HP6Z!-HweYITw}^ZE{HJAX{0YLnT-QXqy6N?y<0`< z{86825(P)Y_KY&G+FI>#5QXyL8DqKtG}8;}CJ9FteYo`wQ>FVyn?LZLH69 zNtwyxv+I1Iq@sG&4y*qOCh7ElaoiT*SgOBS(Z71XQoB~y;_Qf(s_`Jiyp}320>k|j zz0C8w#j@(6*JimVn6gbA5KY@AOZ7%}q?+{hxoZ&N&?c5mTaf*}Z{xrkE!B$e{cs(a zc6gmj>;Kv6v)6idTAD32K<3{jf2RX(Q2^gMxk7u#3dd$PZ4-_N8dJqUX%6bI17_9B zdEpGTpEp_L6ci5BfU_@{0M%-x%=n&O>2-#~k(t}S75nxlogc+>9I2FMhP|KA5XQ!e zs;a%VgU~exUvyv#YqSIQ&-ft!-KA|KEbAnBWiis%9_Yd?3Dh9SO%!sH({^d|vNh7z zx7)c}thhhgVK^kYzn?zWxX(^)h5rhx^3P1l)t06r>8OExf9vh|WuxABI^)4!QAr7; z?#qE~dS{n)DF;zt#?vwX4}2%AYPAc2v+IW`7eG4KfTX#nbp0F5^_%MA?2OLvKKUW| zLnjPjNi=0biX+4t}2Q^8zU^SNmJMHhC}re4X;X4xFC6y!>Mr;+`RZ=-$kC z$91yv}&GQ~@PZpWz+{w~ho+t6Se1J9y%>iMKN0KuknrWqh~gNhlQ; zGL&FvPS^C&(8eA3Ex;2H)ojU=($ma-TZ5f9p5`V0$~--N-O#|md+Fl8nqUov0Mh%s z2EiV)S`73U*xATnm`EJ{4u8U@KNNlfuhe(9_s9(C3qJ8EOA;@Uw`V6k!ziKapPx4x z2a3S=gih_GFaS0Cpmwve`=6|*Ui9ryTTguQ+M7l%!c;Won3m2f(`sgxdJgrmlfA>k z*2BBcqw>kch3CA*8beuKpZf?C(6$S%8>$o?ocOwE?6Nv;ItMkZoA7(z9LAY&AIybX zSQKo|p%9>wgbLU;I6FN|7gD>J9JyV!LmaM}qAg9~e~l`dI#c?CxyJJTiIVcqCKLq6 zBs@I)Oz&nc30M&{rW_Beloh3dvjhk_W?^Vdaldc5^akIF;Eb(Hv+#HoznYI)$~G{e zRG>D{)3Xh}3@wQHqbTE>S`8-SSt*%qFm%6Mc6OKd+b;vP_|KFF%@6-7)sax5s|!l% z;Gaw$HNRlhHD6sy(Ze zwjsOM!vZ`!du3^8K_u!2En+3)vQRBpOBT*cWx|7O7!x6PFKPD@++8AwufOc`bO6W zifg<5zJ1rEp`}833#pF|j55>HjW|(Xk5e?x=$6OC0Wp_ruiuU&6r|eGwDK<<=`q^{ z=}I!=#Z_BQ?r{^JwCPl9EwY^Z={6SH1KOIX%L+jZz;H|wOEPXnbOsWA!exlI%xp0p zY?y?8ZPgf*P6sSD9o@pzd1?|~0`i7ujahg)d=-@lWob`R5xw8>n@z5-nYEGJbk_82iAyI+klQ` z(mTb!{=yK$W(oqwqr_Zdd%-DPBUG{)DKz4q;qxMv9D5I5xNoJhWU`Z7?BU^2{p}&k zubeyJ&zwC2Z-H~dI>X=^%!-V!^vRxbnuw!eQ;MW$N5J;OO(%NiU}=~hJam7>qw>m- z`5K>G`u6hlRHAmjE-P!Uw}KAHQ*IuWe8rx>X;cD;lHh$0Sj~t0k?WsC#xasZW|F;VEM z{`L5by0y@o^BVixq__NAkEO19;aWGucke=X9tF0>Ti zoyf#@_=NC86XyEHg);<#4)jozf*rjJDy0X;#>T3VguUZi*{@e8NcwEt5nu+;aRT*W zv>xA^?(`W2TYT19ZDQFxqj{G%j+xco_c~};u4{CBv(Etyw(f1O{S@y?I6pl#S0K^| z?On_<0=b&TgDUUUWHILNfmZgLx_H&)SNn8N@~CU#nU0m2+Y8O-o=DOeb1@~Ax-r4& zKeO1cI;cpTJ&rAY4~mbreh}N06U1Ke3_9@q{51SP;t`M=xipP=kXOZ&&ot+=comv< z9+UQ)rhHLm<2@I$`!5sYL^5xOIBBod3+^v>W{mV`+dZwJciFNiZqw@)9M|ozwX|3T z;B||LCp!1(00WEwV;1CiYb+!R9KsD;p5kj=8BnkBnLlg1VW&H3Wv8`xb6;n_rMqey zb-OipUn>$88*m6^$&p^V;`%n9<oRIg?^BJV2fVFTLS!IPs*acM5K8oqIe* z+~K}|^-HFe1NV4zg#`q}6?WH2-z!<0T2f3*O<9Q$`T|w^!x4Z*-Cz95Pj^sX1E3x5 zlpw2LAM&uVF%%XSPLiMm0|{^n;Oa+cy1NZ?&RG4Ue?Wwnv%_%PBelN1zR6*@WCtNu z4W;#ob~_RO#Jn0LXHvJm_G%JR?`4yk5qfRfmk~ z9Hi@kjjWLeoy?V@%E}80`<~(*Uv>brLKbE7(D+S)x@KVgKLA5s$-wW5v7wb!&T$hm z8x*5oK>k~&nMIjt6=>H*3Lt#naeveXnF4WUptrY|^W^wp7s@X13`2$p%%VJLOECNR zoP{9CJ{(U9waM|n{QSx&4oKVS2P_;7V)b> zqcVBq0dw(Ry#2Ces8bY*6!{38Fxc?Bf0| z#Jm@U#Zw_}qq>e4FGCBnmseK6UqdB4fM)?$pr$>sZ~JUj3WON|HZsKn|Lf~`R~MJ+ z7D5%Mub}#O9h5^B<>xFW)6-!wRw)3G`#QU-Z-*cl>V$-ZgnvJ`oH|ExEG~2cXqGI> zxpJ{f)a(Gj>G1T2M$wepCeq1^`}&x$gCNQ==T8 zVPs)p*DS8(F)aet(=Z1@Ua840(2cX66B{)$0Fh_Sp`-zhw8Yo(=jZ1SMNf3Ch~ns( z9eUvRpbVN~r_cN+7>FWfzuLsXR_D_|}0>wS)B(6J}U-JXA8bP3O6f>V5aRovLb&25{?iU`7> z<^Qd$PIdm-<|f2?7XWBRB0KNKB+qI)=E1>U#&ITGdLM?}NQ3}tQndKy+>?(eFhMBsgboH;}AO6k-n|$5Ntxe{q0MO%mfoaz?)T#g%HZ_?%(p_311u74b z?A*biVr}iQ5aL}>ADE!(Pf6}uEtf?TCU|Gzd0~{tXA2R<<{X^iKsAzh9WMY0ApV1`m6N z>>}Cn=U$SaWGX75$1*PQz*jJa1zU>?zUzlnPyC+?t;r)QVrPeG0sjG+>#fbQ2_!$E zW+Z5toAezff-+^-zT$kxVA|R-$CGfG1yVV#r*my2s`+}%EBmYKwhRCeh53u6D5`E4 z1BFqk1aNv*lLw~-y#;#g6{m2-7PmEcoze?P0x6(+Efh+}tureMo|qz2K*guq4qo4Q zdtKo_P*U6>n=PxR?UpFY8Pp?uInXL_?Hdl4d_9_$ljFLB&(g$B)=~kX$<995aD+Di zeE6|M=E-bGOBLlyxbq$FGqxlg=rScoG>Q?<5*`SD7j4T60N8-9MW+CO=(niG%zpqixYpHG5%ZZR4;Rh1veZO^ zDA!9BtiDNkpA`5FJc^CS3&)4B5V~VF|NLQ8Q&XFS5oQ{XiOhk{Q80>6 z3Sc8woXhTOicnE&@sH$TaBuy!WX8DavEFC7 zdZweN*XU1pwtO?t=>#ON9kXveb%fZ+0l?UyO}BK>%(z%W_4v54)zk%dn3F#YcqI7i zwMFVFX95IJwUis(1FMDZjR(5A4JI4w6oHN>^2EbZ1@UXQ;s;5~x?=#KWOeZaMDwLn zIwlWpYC1_ZTmbT_6m{E+AXa9~Xs>%G;S!*#aPx1wMeyUJn!k+pFJ{E{b>|2L?|&wp zgB=Jd{oIoSXvA&yuz&Hnn`nN2DmG&|1bCm*Kq%LAe;9$-=xF;eFxgBD_%ELcv`^s* z?rW!qbf+Lv;v<6ZV7sB?G#w-L&2UtLB-K1SX5a%Yq&J?cRs0?LS?Flmkcf3 zYS3r@ZG=Om2WBpNQs^G)x(*i=6kMeVT#2Ou?hML=oyJebd|f?2SoLYdYH@`+JN3O= ze4?Y(X3pJ02a1=j`Wg*zYAkI9pm5R5&~TCbR)F_unNH*N3qK9EWa8l$Lx~vht&}{q zE@@enlXVvTr1G??=#mC4!WS36BqA-C zqrZwobC=_Dqd;^lJ)n}|EEQt3S(DJ?x$8bU(SE~Cl4Wo?AE5?88PqDsJlVc}!a{aL z|Ds4rTH0Nn_-J!G;7&)K3Mo+W%D`u`-7V|PHT6#H-eB-ON3%Cq_T)A2%?F^uhJLLwq_X9r73RiS5>0q%5XyM6YYMVjt^d!I#$c$4%| z%$Z!K$ZnezUMYA78>jIL4IpfBD_yR#{UbL93K>;6!6pR(w?qfbsjG2=tX$2OkP0#7rX-*Q#b1v2;7Y^>+4QCr{~Y-;4B^0 zon$~ooG~=BQ$LQWJxZTY7%-rG?et4`Az*Q;h2F88c`CEzZ4F{5%@59-f0-cX{&PKm zt7-c|-IbRyTAlofo84h87Ti~`0%fbs&3N$& z)W{Or_Lv9wk?H&?-Op4Z7v&o?t^QHSH~Lb|o5|rSzLR+A@|QF}T|p74>|XafS^kcj zlO`Kkm21kS^L8dSD zu#*HFJpBBzyB%)tUPwz@yR!K7U*Rx_!7xVL}l!q8{SDR z``;C->J@|-oy;0;ccw8(Vsa7Ub^G3^Z(-#weQmwuj%N@EWX^}s&cwuI5aEu$Vd4ZEw{4Kz(HU3P8LuiDMZ zK7QXx!>5{&pkTVmA5Yf%D$p25itv-t?@a78s3G@)N*$-OaJbe=1^Nzr@v^hgYk9?O z5Nzsd7s;XAT_JnX@adCV$Z>#C8PPh>NS+L#@oqNxY5L^b8~G!F8j3BEzGOY#VI#-0 zqv)>hyn?vT8y!og7Ol$5M9LTj$k0Z;p{L_1uaibO}HwsT; z-~6d_z7R<6z3UA^NlXL+0W_OAF`hhe3pDT}MfAPfO&(>UYOp+PlpIXoe~5Y3Mebd= zM{8%WO13<)ebNhd3P$Z*dRB97KzpRvk`h6yL}bC->6oWH)l(x-iRr2rG_bKOHHx43 z)08^4jZT82S_2l)WV^WT1AtteNe0*HS+64Jv_5jJa_*i)zE@c>9L9e#_ zT7|+o2t7A;(Vf~{vVO02tkR%6Wp2tbwdG(+P^Fy3XSpuO1EBcRQcoYS-!R&pIis5k z@vL|Tc(Ip3$!7|5QFm!cD>eGsaRn|^QPPPLvTkM?9_SYng@4jMoWulP-*VsK4t=Iu zd#kXfIr;jiBtL(5#>(D%gpGVh$t(#<+MJX@CRFxFCbsqK759GhaV~u$=sz$XVR`pK zR-NEMvob{9`f+BGR%a1i?);sW55;jO$bnEPRX!( zmPa;xTifG1gPN??YqJ>=cZjX;SO1T9oKst&zYV>$PA@F$y~GhGp?~mwTaBAGJNd$x|vmHz;a|BBLQJz2wMG5_>nBPq{N5GTwMHOVlJ(91hVn2y{Z2Uf{1U{NI*-`w2mp* zqenJXK|DtK^JJ3Gw*ec93@XqM($dA*nGu7*G;=~*b}wk0E*K!dl6?he^-1Me`?s{b zoZf7x4k!&S1ij@hkH!d*ffp-T+Fch!f-Mj*?2^~)vH$-yC}sEFV8PR{;gUTyV>i3!?(nxt=qzJxjS3@<2qI{8>Kj#o#YBdzfQ z3JPbhZ>W0^y0W_Q=b$4jGCMoFu}LXm#go6EDERrWS|TM7X>REvj|a_CFq^?vzc@HK z6I6ll7uCOiKXccoZ-_dNX*t=R@x9r>zWM>A_A@d&Ts%Fmf*mAFEy>E?j!8XxXrHB{ zQY_ofC2Kv4o^tOM`ZHuaZu615`;Dh!7k$(hTi8OwPLjYPxEgQ2QRM~HZq9E$)YId1{sIBd46bU!G(c_N7&CKz>(unL zDCmyT$i2{W<*>di1G{`9$ma~{yT-W>9@T@qwBDzrQs_Q-(8x;xdbU;-7OH_QuY|@) zfmj`^X|gye;%YtlLfzz~siC>~hIUz~I7VMd$uLq`f;7z1Ffa#WG9i1U zXUZL??cUn-&{aG<^b6S{l~2M%cBDa??no67I zirOsfRX#gL8s{1vS;Nu8_V+}P%$@x|%-Hw_M5VIyEDPQk`V->h3hw_!@w`<8K<_)h zdCZ~d-Momo6)Z>Wo^whazf)jm%5TgdLt8-DdHP?a`5CX#yG(mLtDJeqMyi?@nv)Whv7CZjW zHhIkKGC2wC?<@qk>G3YNjLws;Ids$MSwW zYsgp~w89s268AqY(Pb}X+Lda&@*|Wpb9Ezx{BgNA6&0<-QMOL83zgsxYfAmLVjoG^)dk?5jH$ zX=!Prokv-px?aZK=}2xQQT_C&zSrZ?qhw_|WB^udxS=jblp+y^HOQ={ZUN`p=CKPs z(ez;8;DT?41!l4CU&$TS`6BHl%r!W#Z-3hN^EOEj%-wAO_gxsa@S4|3Cpb8N1PApu z-ITD&Q9Io6kqgl-1#I#`>dV5y!m_M2FE&WNw|!e;KpuakxHdmDnsC5>L}pPciVK@JSx$Us^4*D!i@R(sn--{B z;CbrR?HL^0@g-ehCg#`#Y3;`(r(3nGCNP*O2u zZ^1Y9O}TCV7}tt@GSCxQ6HkneZ}tlDKReO0@=ZRx6eymx)#3XHkw<#6bLqfTWsdqL z^HAQMoz`q89lj*-BuNS?WS?8~dvLN5)~(<43D=Qc?6>IA14K3%henUZ#`DD|1KU6o$kHT@Dz%4-fQai(ZAks!I z6Y(2sb+p%|VRBh3Jb-o@;~g#z(_aO`>dGc2Cta)-tf$nqEtQiv?t1fc@BL-Dde!yr z4Y^CpbBe*^PV3Q#8)6$s+7cM77`8ro-pN4G&ifqf;kvGTvFnM?6$n%uS(P(d%4Egb z2iLI*`Sa1so?pd>|HhScMcv=q&p1NwX3Q{__qSh~PkEasQg@qT#-$2i_Py$iO{A=Kit7X^R;JFWE3Fxv$lFG6 zM3=?`BtFu{!h2*`vFTgy9m{#6m+@CTuZ1gZ-*nX*#s=3u)82AYfq8RPyPUFPq|MW7 z2R;$Q44$*kW6%ydXDRfd>d4M}NELPDV*f}F9e2PspEi^P#V?XRJ+v;!X(ue@!8Z`n zPPJ+b|CX3e4KqY}aX}U$w!E(IV{HtpMP}F!k7xKOb?x>V9qPY+S=*aI5pS%oGw7a< zaLu>9>xJ{cas)%eag!}N0021u`;UNdD+WO)04sYQ%pdmFze65;c8Ph*Zr5A;e*ywi z!4i@|&{)tjQ1vqR68tL%XaFD1OTShtap8Td nZKG5z8ZNwe8T>YRMLCiFDYQ0-j6$#$yeXigX>hMr-6s5haY^p} literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/windows-10.png b/apps/server/data/resource-icons/windows-10.png new file mode 100644 index 0000000000000000000000000000000000000000..17a389b072e99de5997bdee308318080994730c2 GIT binary patch literal 5509 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 H8L1?kP$~fe5`RJzOJs2dl9f!jtPH1Mp%oE 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

hNwm7l-`!ij2YM?RnJj)mrxR}GVu{d` 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

)& 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 ZLdPB`iMAehRyu zf8}NO>_gvvsB^mdR(02{`_)%5S{h&iTq;}?6chqwB?X=5x$(b&{o?uAP@8P`JmEl< zjNDOB@QD8#sB^yq?@>_bP?Qzq^t^u^=HktGLVW)8WN8?4azuNhDxebyJCwzy4QmRm zy;Z|dcynydpW)lblBG;PSBOI`T;8nQ1cAPn{#f)mnk9tEe8lkMY$1V@f=P;Hlg0<# z!=KsS1w8?eJNMJ>d7jI60n>g&J2^Mgd7hU>_D4-W&Q_+||24f_ZMbpQ;tfuDU2co&BDEBctSB)qC>e z>1yTAb>+vvs}0dV?H*@$(&2UEqK}AVii;HsiKp~0G))_~m-a`A<8>Gr7I!aS_MZ4Z zz-yl#oY%_r3QV*$UdU1d>RPvQX&?7hp91DG0+APGs}}q2yuRNDGbPxjMty3Zym&`A zR=d$C|A<%W{rVHTM7mA;Tk|>$OYAhGrsq04Lvlw(>dK9{L~{A=eff4uN&!^(m)D=$ zn&?p=;8P5~nKCI>`%OfT`9Dntn4mRp@!5+JZi}FKIEe3SqN z_|xT(yNOOXjiFq{7;!XILHg1_WvonH4xKpCS^-K(Oc`|3X~6PuBWOMxGX78;t+>g~ z@1?JTWDPuwNDA>O>9wMh_8Qn@COF|FBDFWdXMWXy8|5U~d*W9rb#m*@Lk=v0TDX-6 zC8;k9q*K(Lf%1K&|JZyodAhh)Z5wSZWiBN0QJKt5)4>K-xSz+S89@frMma4tI8qjD zKmRNjiF*p|zF(a89U5nyzTZB|qe3PrA-gx#9O=F^*m0pAi@xeiO|b=FWgbhtYa!#U zt&N%eBrneZshZpm;}rEm!{a|m`%80O{3j6QcB18;uYE7!>Y?BHXn@@D z0NPuIV7vKgF_hY=634knUvz~`ezGaUv?)X_m-i8cHxX2ns9 z38(o}uV^JfUNmnR&v@6|S(ci7C6+`nRW^AAb_LciK+_U!uY^a~~TsL+)xEs!}T)0xa{Hj6&eP ztom}2=u>fzL&wTo zc?g<4?89zkN;%&b6@p|riZ9x?vS|7vKPhOaelp}>J=t-F#J#vb57}A0z{{XcjOM~Z zGcg6}P!3Wu!=8E`Z%&>bF0K-w{_6{@$&wBH#cjUyx`Ae_@SJ!G4Pu~t(}sx!B?5(H ze(+Br{^Jag4MF#ZEJP3oc77$5q(J~Qd{t>F*%naO`k3vPh0m4nRaQXk&IUPZU^Pfo z7_a2P!QrYm4#gEq>+!x&zNVqD#xo&;{iQu8En2C9|DNh{VC)ZttA(Khg>(T3sZA08 zXg2NXz|%5}D4X=4Kd*5BI?*@~8A8g1mwJDTu#>)H-gORm$R*5o+dLS1;_}Q1vO|>UM@xB zd(I{Pk&J??L?UGaK&=N4ptXVO<7n3d9%I>ia9!$mLC$e*+2+o`(f3ru6|@2}`5GHC`(3ZF5g3LHI-b!gda znQ~ZwxMuQOB+qE*`uBo2%toZJLDJrH14u@OLZHc0e{x8Z z!Hjk-Ll+J`PJ3tBKEd*2Jb%ddj{NAR;s`K7?-F#HB=n}Wm~9;LyASj0p^gF=fRp-g zn-J^~bRseQ6FKA?sw9rK-V+n>(&-R9c`zsMF@r#DZPuV~=oSWsa5U-nSO(_~V2%^w0(=7P1h z>QN^AH;%z!g&3gqr_UbPUKkwt+?1r8rh{Bh-B=7)7*VT{90d!Qw`$Rmpm-fm;$$4v zE-NQ=ZJgrd{=Mib7ya{W_&);RCz=51OPz*ylp0NiWFWp}~A72YZ)n_vbywG4Z^W3?^1)N#2fA^cl+EIae z#A^uJ1rH=wIQ%t;#5aasrgW5oFx%(8@{l1mWfrA`EM@(LifcDC=5%xIUb=Xtm0By0+KK8oaB(v%q64DYS z1K8kecHqs>){ne_#SQf@z{1ty=xDgiz*YX5&np9(dg5mH6;NlBM=!o!UCq8tP<+8n zJB7KjVQQ}N`~!M|t)Se`Q;iC$Mw>B0gr(mYbz-S)!FOxvcqNN@L8z)5W-NY$-Ezfj z2J}3kVgMD)K7b@Snrre@hy)bh;RF0Jo3)4PAWnmn7PAlqR&8r5QhbF_`S0WqRg4ib z!5w;OrGg4NZh|S^8IoEa4C5?5{tgBpwcm+zBwVFF@IxO`yiMwU@Qx8jwsbaqax9}f$^AADgVOvMTW{BiylhoBP*eNV$fi;P~#hyk^E2oq)=1$f7<(p zvuPlVE%p4`fSzAZO_I^>Nhhv|e3ddQ4>Hbb*zu-V#gK~8p~IpG*R>@Tg}*Fj-bSeg z=wKc4?Cez67>*eBvr>F7w`rN>Y+Qqn?*{q~5X?Xb?+C`OVLW%5KT4FZp9dw!BdgOw zpT12=&=oX+A zM%_N4s+p7xUp?oM7#C53RNOeltFsPy^0VC6PPcP1^geRZ1dL#V(-Hy9iz%ZSe{ek9 z)Q0D1jG7^hs91s*8PL=drTHzv5v>R`)Ts6sZShNEpCIxHJ2`M{5A4}D=%b(3 ze*SQhci%NJhcc)}$__Glj6=g2Q|M7gRB62Z5QMafgTF924Zsb1w=4(1%aL` zZ~OjHC{qhR5#VH&*QG?yrjpY9_qbvP7HE7@2(4ExU;`!29UInQC?^h->Fdjh0R#V4 zOM<@+nnAeqjq~8fV`YViTq11R8K@FBh)w-xLn$u!kChs)h4FU;j2QTe8&MW(Z5JFC zl^s0b`I#7y_UdEcCJ`E83c`C3Nd$|#Bm*SVgOU=cE2-^-8N|b|74F$-xci8l;oKme zJd_bKXCYgihel&XCeVT&5pa*U#$9XvdNL?a3NS|X77m@stqZrI=U@m8o6l6BwjFPV zARu1)K^5ej^?fNtx!Z6I@G3h9%v*;_qcldxrL?6x8nH+S;(!N1!4*QbZ)mt{XjUQ-r zJ$!;UPBDT1{uT1w>>E5?pwl`QX=)4{&L23&AOQuFFC8?LVJQcG&_i#Hq*E%G6%()9dw4W}sb`&Z+je+F;Gxg5c6R z+=FHxUDZ~vepi+cBVx~|_|6m#?B1#5kJ1)hG9&@&NeMYw47&^3E-1Y^A_3M0UL%d~ z^3Q=TrGwpPMM8uYn8w6FDw7!h)~NGR8mQqu{fC?QN4m#Ub~;_QHt(ex7_{+GSO~Hf zxJ3-$pyMCmHgENK!9{ife?2_1m_E)*FAb(^0w=YmsUH^YZAEdXHzLD%!`K3{vYD`?Vv! zy;9mwjc@y8I9y!WBTFZC(v)y~uYZ3GQ~K$^>X?=pBegznr4tu&UeuT?|j z$CE&>x)04XItG$FQ{t`6R<)F;(|uR(bX3l-VCsE{G~RYY=MCCpPLeh6MaUji(f$?$ z&Mu*7^RE@eZiugooEB^6(zRw!+DsO_a(G*w@@3&yqPf@bjDHw0Au8a6h=?++W@sfB z(x@?_^R&75YDP5Mq8yd$IuPL{>uzHKL&JLJL zQM9=MazA8?x{*wDH*PRGYPb&4r#7_JilOH(LfesNauFLgHm^&ef+MmMx^V z9(k48ug0bow;pv^^E~ z&OrH3JWTaslwa&H+7G{dW!65wgZ4_n;~r;+u7OQ?`HO-`x-o0qbw@QEDolkEEEo6( zwM_iM^NN)yDii+vpPfTx9}PhV`x92@>}QBC*t`Ub zJ+NNDGvKa|X;P$4pqJ0q;kWWzeM0Sl?xO`MGh|e(bExd?YXtrLNI3IpCHB*SAufKf z)m8v!kI(LxP&g^L>YwIZLFwSCtE+imNLRTy6G-b6So}mto_*&qkRji?#gw?K+8B!$ zjS@9RNIrI-X_Rg4W@hQx!5kB>{UsEYkBhSizrOSQ^hoMqIp{Lgy_S85sPgW!$L=$3 zVVaYH+nlGrDBiS}71qrg@-klCQ-^@y#bnHar3#m`aqho=8jJGk^0^!3rCOoU_=2eD zSktXKzMJqhl^Q42bsX>4WbTVTUj%%7^ZuIJfpGAHQJJ=({s%Te171l!zc7we=k_KZ ziai?sr?OWdZ`nR)nUbNbikDMgh;JcQZ=^_w6Ld-{1|4l&Ke>wCX%RtbdPB}Ev*`B; zlB`(xBz?~})~uwE%0DiJCvKd--ltxvn!a0gVXTCQh!4L&vqXs@0|nkz&YWxtxdHC^e9U)RYTBe8=Mh0TDLC0D^Knhd24xbW&&WL`s zE5pXx=7X*j88SsEpvS31pZ0liGxJh66%CFm#!0gW-!J}%0V}(dP&Eq;3QBr=joG-q zzQ#{RCE2YCx*n^@`_xz3co@gI_-UoVCdp{5#nz>pp%0Z<74(xCl#)sp5p`ut#;e+~ zyR%klF*HLnfsTfi{!WT=a!mfCFK)GIcB^TwA*1cS@dY_5R$lPVPs3|{o#agvXDRQ* zPwSG6APT4!&d>)YfvJFB3BO#FP4k;)W4A;wEBaHLlY=W2NpMs_n2C=raw23bqBf|g7UG+_>#;A&Y( zM?i0Se^d+|N@9W>8e7%MX|z!X3Np%kI6)qF|0v1FB~Fcv5(y%4_YTc|4Zq>o0iByMm(#Iz@s{V+6Ik4F4THj7ikMKQewz1$HIV2qj4o`!#m+Br}c zL9wnuHN*mxUU@31J@>Ct~|+^PvUf-M;DpT%4k%#TqCE8}1uaivK(E_M1xV_eS1j4B zm{N)=d5kTqv`X^IuavA`95!7EAv$&?#rQj!HU4^sTVKeTP;79bZgo=7v3eTvy&2^5 z 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 literal 0 HcmV?d00001 diff --git a/apps/server/data/resource-icons/zoom.png b/apps/server/data/resource-icons/zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..13682f66b8226fa9274e90b4544af4597c9bda33 GIT binary patch literal 11975 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 E2P?2A761SM literal 0 HcmV?d00001 diff --git a/apps/server/package.json b/apps/server/package.json index 62401b1f..63e4cc44 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "node --env-file=../../.env --import tsx --watch src/index.ts", "typecheck": "tsc -p tsconfig.json", - "test": "pnpm test:http && DB_NAME=metis_desk_test NODE_ENV=test node --env-file=../../.env --import tsx --test --test-concurrency=1 src/asset-inventory.integration.test.ts src/template-propagation.integration.test.ts src/infrastructure-inventory.integration.test.ts src/sites.integration.test.ts src/identity.test.ts src/asset-directory-memberships.integration.test.ts src/typed-relationships.integration.test.ts src/windows-domains-ui.integration.test.ts", + "test": "pnpm test:http && DB_NAME=metis_desk_test NODE_ENV=test node --env-file=../../.env --import tsx --test --test-concurrency=1 src/asset-inventory.integration.test.ts src/template-propagation.integration.test.ts src/infrastructure-inventory.integration.test.ts src/sites.integration.test.ts src/account-deletion.integration.test.ts src/identity.test.ts src/asset-directory-memberships.integration.test.ts src/typed-relationships.integration.test.ts src/windows-domains-ui.integration.test.ts", "build": "tsup --config tsup.config.ts && pnpm check:build", "check:build": "node --check dist/index.js", "start": "node --env-file=../../.env dist/index.js", @@ -18,7 +18,7 @@ "test:smb-access": "DB_NAME=metis_desk_test NODE_ENV=test node --env-file=../../.env --import tsx --test --test-isolation=none src/smb-access.integration.test.ts", "test:network-share-publications": "DB_NAME=metis_desk_test NODE_ENV=test node --env-file=../../.env --import tsx --test --test-isolation=none src/network-share-publications.integration.test.ts", "test:local-identities-folder-mapping": "DB_NAME=metis_desk_test NODE_ENV=test node --env-file=../../.env --import tsx --test --test-isolation=none src/local-identities-folder-mapping.integration.test.ts", - "test:http": "node --import tsx --test src/app.test.ts src/infrastructure.http.test.ts src/config/env-schema.test.ts src/infrastructure/http/http-error-diagnostic.test.ts src/infrastructure/http/relationship-read-access.test.ts src/proxy-sessions.http.test.ts" + "test:http": "node --import tsx --test src/app.test.ts src/resource-images.test.ts src/infrastructure.http.test.ts src/config/env-schema.test.ts src/infrastructure/http/http-error-diagnostic.test.ts src/infrastructure/http/relationship-read-access.test.ts src/proxy-sessions.http.test.ts" }, "dependencies": { "@metis/assets": "workspace:*", diff --git a/apps/server/src/access.integration.ts b/apps/server/src/access.integration.ts index 4fb56b57..1cc65bfa 100644 --- a/apps/server/src/access.integration.ts +++ b/apps/server/src/access.integration.ts @@ -2,6 +2,7 @@ import assert from "node:assert/strict"; import type { AccessFieldsDTO, AccessItemDTO, CompanyDTO } from "@metis/companies/common"; import { AccessResponseSchema } from "@metis/companies/common"; +import { z } from "zod/v4"; export async function verifyAccess( request: (path: string, body?: unknown, origin?: string, token?: string) => Promise, @@ -379,4 +380,62 @@ export async function verifyAccess( (await request(`/access/${other.id}/${account.id}/update`, { values: renamed })).status, 404 ); + + // El borrado conserva relaciones actuales e históricas y nunca cruza compañías. + const linkedDelete = await request(`${base}/${account.id}/delete`, {}); + + assert.equal(linkedDelete.status, 409); + assert.equal( + z.object({ code: z.string() }).parse(await linkedDelete.json()).code, + "ACCOUNT_IN_USE" + ); + assert.equal((await request(`${base}/${system.id}/delete`, {})).status, 404); + assert.equal((await request(`/access/global/${system.id}/delete`, {})).status, 400); + const historical = await create(company.id, { ...accountValues, login: "historical-only" }); + + await create(company.id, { + ...membershipValues, + accountId: historical.id, + startDate: "2020-01-01", + endDate: "2020-01-02", + configuration: "removed", + }); + assert.equal((await request(`${base}/${historical.id}/delete`, {})).status, 409); + for (const active of [true, false]) { + const disposable = await create(company.id, { + ...accountValues, + login: `delete-${active}`, + active, + }); + + await update(disposable, { ...accountValues, login: `delete-renamed-${active}`, active }); + const path = `${base}/${disposable.id}/delete`; + + assert.equal((await request(`/access/${other.id}/${disposable.id}/delete`, {})).status, 404); + assert.equal((await request(path, { unexpected: true })).status, 400); + assert.equal((await request(`${path}?unexpected=true`, {})).status, 400); + assert.equal((await request(path, {}, "https://wrong.example")).status, 403); + assert.equal((await request(path, {}, undefined, "wrong")).status, 403); + const deleted = await request(path, {}); + + assert.equal(deleted.status, 200); + const snapshot = AccessResponseSchema.parse(await deleted.json()); + + assert.equal( + snapshot.items.some((item) => item.id === disposable.id), + false + ); + assert.ok(snapshot.items.some((item) => item.id === account.id)); + assert.equal((await request(path, {})).status, 404); + // También desaparecen los valores históricos y la unicidad liberada permite repetir el alta. + const recreated = await create(company.id, { + ...accountValues, + login: `delete-renamed-${active}`, + active, + }); + + assert.notEqual(recreated.id, disposable.id); + } + assert.equal((await request(`/access/not-a-uuid/${account.id}/delete`, {})).status, 400); + assert.equal((await request(`${base}/not-a-uuid/delete`, {})).status, 400); } diff --git a/apps/server/src/account-deletion.integration.test.ts b/apps/server/src/account-deletion.integration.test.ts new file mode 100644 index 00000000..09e3fd05 --- /dev/null +++ b/apps/server/src/account-deletion.integration.test.ts @@ -0,0 +1,168 @@ +import assert from "node:assert/strict"; +import { randomUUID } from "node:crypto"; +import { test } from "node:test"; + +import type { AccessFieldsDTO } from "@metis/companies/common"; +import { DataTypes, QueryTypes } from "sequelize"; + +import { AccessUseCases } from "../../../modules/companies/src/api/application/access.use-cases"; +import { + AccessPersistenceMapper, + SequelizeAccessRepository, +} from "../../../modules/companies/src/api/infrastructure/persistence/access-persistence"; +import { CompanyPersistenceMapper } from "../../../modules/companies/src/api/infrastructure/persistence/company-persistence.mapper"; +import { SequelizeCompanyRepository } from "../../../modules/companies/src/api/infrastructure/persistence/sequelize-company.repository"; +import { UniqueID } from "../../../packages/rdx-ddd/src/index"; + +import { + cleanupMembershipFixture, + prepareMembershipFixture, +} from "./asset-directory-memberships.fixture"; +import { createDatabase, readDatabaseEnvironment } from "./config/database"; + +test("MariaDB: borrado de cuentas aislado, histórico propio y referencias externas protegidas", async () => { + const environment = readDatabaseEnvironment(process.env); + + assert.equal(environment.NODE_ENV, "test"); + assert.equal(environment.DB_NAME, "metis_desk_test"); + const database = createDatabase(environment); + const company = UniqueID.generateNewID().toPrimitive(); + const other = UniqueID.generateNewID().toPrimitive(); + const actor = UniqueID.generateNewID().toPrimitive(); + const table = `account_delete_ref_${randomUUID().replaceAll("-", "")}`; + const query = database.getQueryInterface(); + let ready = false; + let externalTable = false; + + try { + await prepareMembershipFixture(database, "http://localhost:5173", actor, [company, other]); + ready = true; + const access = new AccessUseCases( + new SequelizeAccessRepository( + database, + new SequelizeCompanyRepository(database, new CompanyPersistenceMapper()), + new AccessPersistenceMapper() + ) + ); + + async function add(values: AccessFieldsDTO) { + const saved = await access.save(company, undefined, values, actor); + + assert.ok(saved.isSuccess, saved.isSuccess ? "" : saved.error.code); + const item = saved.data.workspace.items.at(-1); + + assert.ok(item); + + return item.id.toPrimitive(); + } + + const systemId = await add({ kind: "system", name: "Directorio de borrado", active: true }); + const values = { + kind: "account", + systemId, + environmentId: null, + login: "disposable", + usage: "personal", + active: true, + expiresOn: null, + notes: null, + } satisfies AccessFieldsDTO; + + for (const active of [true, false]) { + const account = await add({ ...values, active }); + const edited = await access.save( + company, + account, + { ...values, active, login: "renamed", usage: "shared" }, + actor + ); + + assert.ok(edited.isSuccess); + const persisted = await access.get(company); + + assert.ok(persisted.isSuccess); + const saved = persisted.data.workspace.items.find( + (item) => item.id.toPrimitive() === account + ); + + assert.ok(saved?.values.data.kind === "account"); + assert.equal(saved.values.data.usage, "shared"); + assert.equal( + saved.history[0]?.values.data.kind === "account" && saved.history[0].values.data.usage, + "personal" + ); + assert.equal(saved.history.length, 2); + const wrongScope = await access.removeAccount(other, account); + + assert.ok(!wrongScope.isSuccess && wrongScope.error.code === "ACCESS_NOT_FOUND"); + const deleted = await access.removeAccount(company, account); + + assert.ok(deleted.isSuccess); + assert.equal( + deleted.data.workspace.items.some((item) => item.id.toPrimitive() === account), + false + ); + const rows = await database.query("SELECT id FROM access_revisions WHERE itemId=:account", { + replacements: { account }, + type: QueryTypes.SELECT, + }); + + assert.equal(rows.length, 0); + const repeated = await access.removeAccount(company, account); + + assert.ok(!repeated.isSuccess && repeated.error.code === "ACCESS_NOT_FOUND"); + // La identidad de acceso queda libre después de borrar el historial propio. + const replacement = await add({ ...values, active, login: "renamed" }); + + assert.ok((await access.removeAccount(company, replacement)).isSuccess); + } + const external = await add(values); + + await query.createTable(table, { + accountId: { + type: DataTypes.UUID, + primaryKey: true, + references: { model: "access_items", key: "id" }, + onDelete: "CASCADE", + }, + }); + externalTable = true; + await query.bulkInsert(table, [{ accountId: external }]); + const blocked = await access.removeAccount(company, external); + + assert.ok(!blocked.isSuccess && blocked.error.code === "ACCOUNT_IN_USE"); + assert.equal( + ( + await database.query(`SELECT accountId FROM ${query.quoteIdentifier(table)}`, { + type: QueryTypes.SELECT, + }) + ).length, + 1 + ); + const preserved = await access.get(company); + + assert.ok(preserved.isSuccess); + assert.ok(preserved.data.workspace.items.some((item) => item.id.toPrimitive() === external)); + const wrongKind = await access.removeAccount(company, systemId); + + assert.ok(!wrongKind.isSuccess && wrongKind.error.code === "ACCESS_NOT_FOUND"); + const invalid = await access.removeAccount("global", external); + + assert.ok(!invalid.isSuccess && invalid.error.code === "INVALID_REQUEST"); + await query.dropTable(table); + externalTable = false; + assert.ok((await access.removeAccount(company, external)).isSuccess); + } finally { + if (externalTable) { + await query.dropTable(table); + } + if (ready) { + await database.query( + "DELETE v FROM access_account_values v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company", + { replacements: { company } } + ); + await cleanupMembershipFixture(database, [company, other], actor); + } + await database.close(); + } +}); diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index d4a099c3..df07d816 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -9,6 +9,7 @@ import helmet from "helmet"; import { httpErrorDiagnostics } from "./infrastructure/http/http-error-diagnostic"; import type { HttpLogger } from "./infrastructure/http/http-logger"; import { logHttpRequest } from "./infrastructure/http/http-logger"; +import { validateResourceImages } from "./infrastructure/http/resource-image-validation"; export function createApp( logger: HttpLogger = logHttpRequest, @@ -41,7 +42,15 @@ export function createApp( next(); }); + const resourcePaths = [ + "/api/resources", + "/api/resource-global-applications", + "/api/resource-global-operating-systems", + ]; + + app.use(resourcePaths, express.json({ limit: "3mb" })); app.use(express.json({ limit: "64kb" })); + app.use(resourcePaths, validateResourceImages); app.use((request, response, next) => { const protocol = request.headers["x-forwarded-proto"]; const occurrences = request.rawHeaders.filter( diff --git a/apps/server/src/global-operating-systems.integration.test.ts b/apps/server/src/global-operating-systems.integration.test.ts index 2e018b95..c5632a5c 100644 --- a/apps/server/src/global-operating-systems.integration.test.ts +++ b/apps/server/src/global-operating-systems.integration.test.ts @@ -17,6 +17,7 @@ import { ReviewGlobalOperatingSystemResponseSchema, } from "@metis/resources/common"; import { migrateResourceScope } from "@metis/resources/module"; +import sharp from "sharp"; import { z } from "zod/v4"; import { UniqueID } from "../../../packages/rdx-ddd/src/index"; @@ -464,13 +465,53 @@ test("SO global: identidad, contratos, administración e instalaciones HTTP/Mari "metadatos e historial, identidad publicada fija y propagación protegida", async () => { const update = await admin.request(`${root}/${product.id}/update`, { - values: { ...values, notes: "Corrección documental" }, + values: { + ...values, + notes: "Corrección documental", + characteristics: { + ...values.characteristics, + [field("icon")]: `data:image/png;base64,${( + await sharp({ + create: { + width: 512, + height: 512, + channels: 4, + background: { r: 0, g: 100, b: 200, alpha: 1 }, + }, + }) + .png({ compressionLevel: 0 }) + .toBuffer() + ).toString("base64")}`, + }, + }, expectedRevisionId: product.revisionId, reviewedIdentity: identity, }); assert.equal(update.status, 200); product = GetGlobalApplicationAdminResponseSchema.parse(await update.json()).resource; + assert.equal( + product.values.characteristics[field("icon")] + ?.toString() + .startsWith("data:image/png;base64,"), + true + ); + const imageDetail = GetGlobalOperatingSystemResponseSchema.parse( + await (await ordinary.request(`${root}/${product.id}`)).json() + ).resource; + + assert.equal(imageDetail.iconPng, product.values.characteristics[field("icon")]); + const repeated = await admin.request(`${root}/${product.id}/update`, { + values: product.values, + reviewedIdentity: identity, + expectedRevisionId: product.revisionId, + }); + + assert.equal(repeated.status, 200); + assert.equal( + GetGlobalApplicationAdminResponseSchema.parse(await repeated.json()).resource.revisionId, + product.revisionId + ); const changed = { ...identity, productVersion: "10" }; const response = await admin.request(`${root}/${product.id}/update`, { values: { ...values, name: "Windows 10 Pro", characteristics: characteristics(changed) }, diff --git a/apps/server/src/global-software.integration.test.ts b/apps/server/src/global-software.integration.test.ts index 42ba4cee..fc9e47bb 100644 --- a/apps/server/src/global-software.integration.test.ts +++ b/apps/server/src/global-software.integration.test.ts @@ -1,6 +1,7 @@ import assert from "node:assert/strict"; import { randomBytes } from "node:crypto"; import { once } from "node:events"; +import { readFile } from "node:fs/promises"; import { test } from "node:test"; import { @@ -13,6 +14,7 @@ import { GlobalApplicationTemplateResponseSchema, InventoryResponseSchema, ListApplicationCandidatesResponseSchema, + ListCompanyApplicationsResponseSchema, ResolveApplicationReferencesResponseSchema, } from "@metis/resources/common"; import { migrateResourceScope } from "@metis/resources/module"; @@ -65,11 +67,20 @@ test("R2.4: software global, licencia local, negociación y serialización HTTP/ return item.id.toPrimitive(); }; + const iconPng = `data:image/png;base64,${(await readFile(new URL("../data/resource-icons/windows-10.png", import.meta.url))).toString("base64")}`; + const local = async (owner: string, key: string, name: string) => { const saved = await fixture.resourceUseCases.save( owner, undefined, - { name, templateId: template(key), active: true, notes: "", characteristics: {} }, + { + name, + templateId: template(key), + active: true, + notes: "", + characteristics: + key === "template:certificate" ? {} : { [template("field:icon")]: iconPng }, + }, actor ); @@ -162,7 +173,7 @@ test("R2.4: software global, licencia local, negociación y serialización HTTP/ templateId: specification.templateId, active, notes: "Nota privada global", - characteristics: {}, + characteristics: { [template("field:icon")]: iconPng }, }, }); @@ -172,6 +183,41 @@ test("R2.4: software global, licencia local, negociación y serialización HTTP/ }; const global = await product("Ágil global — Producto sintético"); + + await t.test( + "iconos públicos: aplicaciones globales y locales, SO local y aislamiento entre compañías", + async () => { + const own = localIds[0]; + + assert.ok(own); + const response = await ordinary.request( + `/resource-application-references/${company}/resolve`, + { purpose: "software-installation", ids: [global.id, own, os, foreignId] }, + { contract: "2" } + ); + + assert.equal(response.status, 200); + const resolved = ResolveApplicationReferencesResponseSchema.parse(await response.json()); + + for (const id of [global.id, own, os]) { + const entry = resolved.items.find((item) => item.id === id); + + assert.ok(entry?.status === "resolved"); + assert.equal(entry.reference.iconPng, iconPng); + assert.equal("notes" in entry.reference, false); + } + assert.equal(resolved.items.find((item) => item.id === foreignId)?.status, "unavailable"); + const catalogResponse = await ordinary.request( + `/resource-application-candidates/${company}/catalog?search=${encodeURIComponent("Ágil")}&pageSize=100` + ); + const catalogItems = ListCompanyApplicationsResponseSchema.parse( + await catalogResponse.json() + ).items; + + assert.equal(catalogItems.find((item) => item.id === global.id)?.iconPng, iconPng); + assert.equal(catalogItems.find((item) => item.id === own)?.iconPng, iconPng); + } + ); const inactive = await product("Global inactivo", false); const input = { assetId: firstAsset, diff --git a/apps/server/src/import-resource-icons.ts b/apps/server/src/import-resource-icons.ts new file mode 100644 index 00000000..c1a11b0a --- /dev/null +++ b/apps/server/src/import-resource-icons.ts @@ -0,0 +1,250 @@ +import { createHash } from "node:crypto"; +import { readFile } from "node:fs/promises"; + +import { Maybe, Result } from "@repo/rdx-utils"; +import { QueryTypes } from "sequelize"; +import sharp from "sharp"; +import { z } from "zod/v4"; + +import { GlobalResourceUseCases } from "../../../modules/resources/src/api/application/global-resource.use-cases"; +import { readOperatingSystemIdentity } from "../../../modules/resources/src/api/application/operating-system-identity-policy"; +import { seedResourceCatalog } from "../../../modules/resources/src/api/domain/resource-catalog-seed"; +import { ResourceCatalogError } from "../../../modules/resources/src/api/domain/resource-definition"; +import { ResourceSpecification } from "../../../modules/resources/src/api/domain/value-objects/resource-values.vo"; +import { migrateInventory } from "../../../modules/resources/src/api/infrastructure/persistence/resource.model"; +import { migrateResourceCatalog } from "../../../modules/resources/src/api/infrastructure/persistence/resource-catalog.model"; +import { ResourceCatalogPersistenceMapper } from "../../../modules/resources/src/api/infrastructure/persistence/resource-catalog-persistence.mapper"; +import { migrateResourceImages } from "../../../modules/resources/src/api/infrastructure/persistence/resource-image-migration"; +import { migrateResourceRevisionSpecifications } from "../../../modules/resources/src/api/infrastructure/persistence/resource-revision-specifications"; +import { SequelizeGlobalResourceRepository } from "../../../modules/resources/src/api/infrastructure/persistence/sequelize-global-resource.repository"; +import { SequelizeResourceCatalogRepository } from "../../../modules/resources/src/api/infrastructure/persistence/sequelize-resource-catalog.repository"; +import { ResourceImageSchema } from "../../../modules/resources/src/common/resource-image"; +import { UniqueID } from "../../../packages/rdx-ddd/src/index"; + +import { createDatabase, readDatabaseEnvironment } from "./config/database"; + +const options = process.argv.slice(2); + +if (options.some((option) => option !== "--apply")) { + throw new Error("Usa --apply para guardar o ningún argumento para previsualizar."); +} +const directory = new URL("../data/resource-icons/", import.meta.url); +const manifest = z + .array( + z.object({ + name: z.string().optional(), + family: z.string().optional(), + file: z.string().regex(/^[a-z0-9-]+\.png$/u), + source: z.url(), + color: z.string().optional(), + sha256: z.string().regex(/^[a-f0-9]{64}$/u), + }) + ) + .parse(JSON.parse(await readFile(new URL("manifest.json", directory), "utf8"))); +const images = new Map(); + +for (const entry of manifest) { + const bytes = await readFile(new URL(entry.file, directory)); + + if (createHash("sha256").update(bytes).digest("hex") !== entry.sha256) { + throw new Error(`Huella del icono incorrecta: ${entry.file}`); + } + const image = ResourceImageSchema.parse(`data:image/png;base64,${bytes.toString("base64")}`); + + await sharp(bytes, { limitInputPixels: 512 * 512, failOn: "warning" }) + .raw() + .toBuffer(); + const key = entry.name ?? entry.family; + + if (!key) { + throw new Error("Icono sin producto ni familia."); + } + images.set(key, image); +} + +function imageFor(name: string, kind: "application" | "os") { + if (kind === "application") { + return images.get(name); + } + if (name.startsWith("macOS ")) { + return images.get("macOS"); + } + if (/^Windows 7\b/u.test(name)) { + return images.get("windows-7"); + } + if (/^Windows 11\b/u.test(name)) { + return images.get("windows-11"); + } + + return /^Windows (?:8\.1|10|Server)\b/u.test(name) ? images.get("windows-10") : undefined; +} + +const database = createDatabase(readDatabaseEnvironment(process.env)); + +try { + const products = z + .array( + z.object({ + id: z.uuid(), + name: z.string(), + stockKey: z.enum(["template:application", "template:os"]), + }) + ) + .parse( + await database.query( + "SELECT r.id,r.name,t.stockKey FROM resources r JOIN resource_definitions t ON t.id=r.templateId WHERE r.scope=:scope AND t.stockKey IN (:templates) ORDER BY r.id", + { + replacements: { scope: "global", templates: ["template:application", "template:os"] }, + type: QueryTypes.SELECT, + } + ) + ); + const prepared = products.map((product) => ({ + ...product, + kind: product.stockKey === "template:os" ? ("os" as const) : ("application" as const), + image: imageFor(product.name, product.stockKey === "template:os" ? "os" : "application"), + })); + const missing = prepared.filter((product) => !product.image); + + if (missing.length) { + throw new Error(`Faltan iconos para: ${missing.map((product) => product.name).join(", ")}`); + } + process.stdout.write( + `Productos con icono preparado: ${prepared.length}. Aplicaciones: ${prepared.filter((product) => product.kind === "application").length}. Sistemas operativos: ${prepared.filter((product) => product.kind === "os").length}.\n` + ); + if (options.includes("--apply")) { + const administrators = z.array(z.object({ id: z.uuid() })).parse( + await database.query("SELECT id FROM users WHERE active=1 AND isInitialAdmin=1", { + type: QueryTypes.SELECT, + }) + ); + const administrator = administrators.length === 1 ? administrators[0] : undefined; + + if (!administrator) { + throw new Error("La importación requiere un único administrador inicial activo."); + } + const actor = UniqueID.create(administrator.id); + + if (!actor.isSuccess) { + throw actor.error; + } + await migrateResourceCatalog(database); + await migrateInventory(database); + await migrateResourceRevisionSpecifications(database); + await migrateResourceImages(database); + const catalogRepository = new SequelizeResourceCatalogRepository( + database, + new ResourceCatalogPersistenceMapper() + ); + const seeded = await catalogRepository.update( + Maybe.none(), + (catalog) => Result.ok(seedResourceCatalog(catalog)), + actor.data + ); + + if (!seeded.isSuccess) { + throw new Error(seeded.error.code); + } + const icon = seeded.data.definitions.find( + (field) => field.stockKey.getOrUndefined() === "field:icon" + ); + + if (!icon) { + throw new Error("Campo de icono no disponible."); + } + const iconId = icon.id.toPrimitive(); + let updated = 0; + let preserved = 0; + + for (const product of prepared) { + const id = UniqueID.create(product.id); + + if (!(id.isSuccess && product.image)) { + throw new Error("Producto de importación inválido."); + } + const repository = new SequelizeGlobalResourceRepository(database, product.kind); + let current = await repository.admin(id.data); + + if (!current.isSuccess) { + throw new Error(current.error.code); + } + if (current.data.values.characteristics[iconId]) { + preserved++; + continue; + } + if (!current.data.specification.fields.some((field) => field.fieldId === iconId)) { + const template = await repository.template({ existing: true, kind: product.kind }); + const iconField = template.isSuccess + ? template.data.fields.find((field) => field.fieldId === iconId) + : undefined; + + if (!iconField) { + throw new Error(`La plantilla no incluye Icono: ${product.name}`); + } + const synchronized = await repository.write(id.data, ({ resource }) => { + const previous = resource.getOrUndefined(); + + if (!previous) { + return Result.fail(new ResourceCatalogError("RESOURCE_NOT_FOUND")); + } + const specification = ResourceSpecification.create({ + ...previous.specification.toPrimitive(), + fields: [ + ...previous.specification.toPrimitive().fields, + { ...iconField, required: false }, + ], + }); + + return specification.isSuccess + ? previous.synchronizeGlobalSpecification( + specification.data, + actor.data, + new Date().toISOString() + ) + : specification; + }); + + if (!synchronized.isSuccess) { + throw new Error(synchronized.error.code); + } + current = await repository.admin(id.data); + if (!current.isSuccess) { + throw new Error(current.error.code); + } + } + // Habilita únicamente este comando autorizado; no altera los gates del servidor. + const useCases = new GlobalResourceUseCases(repository, true, product.kind); + const result = await useCases.update( + id.data, + { + ...(product.kind === "os" + ? { reviewedIdentity: readOperatingSystemIdentity(seeded.data, current.data.values) } + : {}), + expectedRevisionId: current.data.revisionId, + values: { + ...current.data.values, + characteristics: { ...current.data.values.characteristics, [iconId]: product.image }, + }, + }, + actor.data + ); + + if (!result.isSuccess) { + throw new Error(`${product.name}: ${result.error.code}`); + } + const verified = await repository.admin(id.data); + + if (!verified.isSuccess || verified.data.values.characteristics[iconId] !== product.image) { + throw new Error(`Verificación de icono fallida: ${product.name}`); + } + updated++; + } + process.stdout.write( + `Iconos guardados: ${updated}. Iconos previos conservados: ${preserved}.\n` + ); + } else { + process.stdout.write("Previsualización: no se ha modificado ningún dato.\n"); + } +} finally { + await database.close(); +} diff --git a/apps/server/src/infrastructure/http/resource-image-validation.ts b/apps/server/src/infrastructure/http/resource-image-validation.ts new file mode 100644 index 00000000..7345905f --- /dev/null +++ b/apps/server/src/infrastructure/http/resource-image-validation.ts @@ -0,0 +1,62 @@ +import type { RequestHandler } from "express"; +import sharp from "sharp"; +import { z } from "zod/v4"; + +import { + RESOURCE_IMAGE_MAX_DIMENSION, + ResourceImageSchema, +} from "../../../../../modules/resources/src/common/resource-image"; + +const input = z.object({ + values: z.object({ characteristics: z.record(z.string(), z.unknown()) }), +}); + +/** Decodifica los PNG recibidos por las rutas de escritura de recursos antes de guardarlos. */ +export const validateResourceImages: RequestHandler = (request, response, next) => { + const parsed = input.safeParse(request.body); + + if (!parsed.success) { + next(); + + return; + } + const images = Object.values(parsed.data.values.characteristics).filter( + (value): value is string => typeof value === "string" && value.startsWith("data:image/") + ); + + async function validate() { + for (const image of images) { + if (!ResourceImageSchema.safeParse(image).success) { + return false; + } + try { + const decoder = sharp(Buffer.from(image.slice(image.indexOf(",") + 1), "base64"), { + limitInputPixels: RESOURCE_IMAGE_MAX_DIMENSION ** 2, + failOn: "warning", + }); + const metadata = await decoder.metadata(); + + if (metadata.format !== "png" || (metadata.pages ?? 1) !== 1) { + return false; + } + await decoder.raw().toBuffer(); + } catch { + return false; + } + } + + return true; + } + + validate() + .then((valid) => { + if (valid) { + next(); + } else { + response + .status(400) + .json({ code: "INVALID_REQUEST", requestId: response.getHeader("x-request-id") }); + } + }) + .catch(next); +}; diff --git a/apps/server/src/rename-workstations.ts b/apps/server/src/rename-workstations.ts new file mode 100644 index 00000000..6e875d12 --- /dev/null +++ b/apps/server/src/rename-workstations.ts @@ -0,0 +1,29 @@ +import { QueryTypes } from "sequelize"; + +import { renameWorkstationsFromPrimaryAssets } from "../../../modules/assets/src/api/infrastructure/persistence/rename-workstations-from-primary-assets"; + +import { createDatabase, readDatabaseEnvironment } from "./config/database"; + +if (process.argv.slice(2).join(" ") !== "--apply") { + throw new Error("Corrección explícita de nombres: requiere --apply."); +} +const database = createDatabase(readDatabaseEnvironment(process.env)); + +try { + const administrators = await database.query<{ id: string }>( + "SELECT id FROM users WHERE isInitialAdmin=1 AND active=1", + { type: QueryTypes.SELECT } + ); + const administrator = administrators.length === 1 ? administrators[0] : undefined; + + if (!administrator) { + throw new Error("La corrección requiere un único administrador inicial activo."); + } + const renamed = await renameWorkstationsFromPrimaryAssets(database, administrator.id); + + process.stdout.write( + `Puestos renombrados: ${renamed}. Revisiones registradas con el administrador inicial.\n` + ); +} finally { + await database.close(); +} diff --git a/apps/server/src/resource-images.test.ts b/apps/server/src/resource-images.test.ts new file mode 100644 index 00000000..3889e5cd --- /dev/null +++ b/apps/server/src/resource-images.test.ts @@ -0,0 +1,189 @@ +import assert from "node:assert/strict"; +import { once } from "node:events"; +import { test } from "node:test"; +import { crc32 } from "node:zlib"; + +import sharp from "sharp"; + +import { ResourceInputSchema } from "../../../modules/resources/src/api/domain/resource-values"; +import { + ResourceSpecification, + ResourceValues, +} from "../../../modules/resources/src/api/domain/value-objects/resource-values.vo"; +import { ResourceImageSchema } from "../../../modules/resources/src/common/resource-image"; +import { UniqueID } from "../../../packages/rdx-ddd/src/index"; + +import { createApp } from "./app"; + +async function png(width = 512, height = 512) { + return sharp({ + create: { width, height, channels: 4, background: { r: 40, g: 80, b: 160, alpha: 1 } }, + }) + .png({ compressionLevel: 0 }) + .toBuffer(); +} + +const dataUrl = (bytes: Buffer) => `data:image/png;base64,${bytes.toString("base64")}`; + +function chunk(type: string, data: Buffer) { + const header = Buffer.alloc(4); + + header.writeUInt32BE(data.length); + const payload = Buffer.concat([Buffer.from(type), data]); + const checksum = Buffer.alloc(4); + + checksum.writeUInt32BE(crc32(payload)); + + return Buffer.concat([header, payload, checksum]); +} + +function undecodablePng() { + const header = Buffer.alloc(13); + + header.writeUInt32BE(1, 0); + header.writeUInt32BE(1, 4); + header[8] = 8; + header[9] = 6; + + return Buffer.concat([ + Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]), + chunk("IHDR", header), + chunk("IDAT", Buffer.from("invalid compressed pixels")), + chunk("IEND", Buffer.alloc(0)), + ]); +} + +test("PNG: admite los límites, rechaza otros formatos, dimensiones y contenedores corruptos", async () => { + const valid = await png(); + + assert.equal(ResourceImageSchema.safeParse(dataUrl(valid)).success, true); + assert.equal(ResourceImageSchema.safeParse(dataUrl(await png(1, 1))).success, true); + for (const bytes of [ + await png(513, 1), + await png(1, 513), + valid.subarray(0, valid.length - 1), + Buffer.from("not an image"), + Buffer.concat([valid, Buffer.from("extra")]), + Buffer.concat([valid.subarray(0, 33), chunk("acTL", Buffer.alloc(8)), valid.subarray(33)]), + ]) { + assert.equal(ResourceImageSchema.safeParse(dataUrl(bytes)).success, false); + } + const corrupt = Buffer.from(valid); + + corrupt[40] = (corrupt[40] ?? 0) ^ 1; + assert.equal(ResourceImageSchema.safeParse(dataUrl(corrupt)).success, false); + assert.equal( + ResourceImageSchema.safeParse(`data:image/jpeg;base64,${valid.toString("base64")}`).success, + false + ); + assert.equal(ResourceImageSchema.safeParse(dataUrl(undecodablePng())).success, true); + assert.equal( + ResourceImageSchema.safeParse(dataUrl(Buffer.alloc(2 * 1024 * 1024 + 1))).success, + false + ); +}); + +test("característica de imagen: valida el tipo, la obligatoriedad, la retirada y la igualdad semántica", async () => { + const templateId = UniqueID.generateNewID().toPrimitive(); + const fieldId = UniqueID.generateNewID().toPrimitive(); + const specification = ResourceSpecification.create({ + templateId, + templateName: "Aplicación", + fields: [{ fieldId, name: "Icono", type: "image", unit: "", choices: [], required: false }], + }); + + assert.ok(specification.isSuccess); + const input = { + templateId, + name: "Producto", + notes: "", + active: true, + characteristics: { [fieldId]: dataUrl(await png(8, 8)) }, + }; + + assert.equal(ResourceInputSchema.safeParse(input).success, true); + const first = ResourceValues.create(input, specification.data); + const repeated = ResourceValues.create( + { ...input, characteristics: { ...input.characteristics } }, + specification.data + ); + + assert.ok(first.isSuccess && repeated.isSuccess && first.data.equals(repeated.data)); + for (const value of [true, 12, "https://example.test/icon.png", "not a png"]) { + assert.equal( + ResourceValues.create({ ...input, characteristics: { [fieldId]: value } }, specification.data) + .isSuccess, + false + ); + } + assert.equal( + ResourceValues.create({ ...input, characteristics: {} }, specification.data).isSuccess, + true + ); + assert.equal( + ResourceValues.create({ ...input, characteristics: { [fieldId]: "" } }, specification.data) + .isSuccess, + true + ); + const required = ResourceSpecification.create({ + ...specification.data.toPrimitive(), + fields: specification.data.toPrimitive().fields.map((field) => ({ ...field, required: true })), + }); + + assert.ok(required.isSuccess); + assert.equal( + ResourceValues.create({ ...input, characteristics: {} }, required.data).isSuccess, + false + ); +}); + +test("HTTP: PNG de 512px superior a 64KiB, contenido inválido y límites restringidos a recursos", async () => { + const server = createApp(() => undefined, { + middleware: (_request, _response, next) => next(), + register: (app) => { + app.post("/api/resource-global-applications", (_request, response) => + response.json({ saved: true }) + ); + }, + }).listen(0, "127.0.0.1"); + + try { + await once(server, "listening"); + const address = server.address(); + + assert.ok(address && typeof address !== "string"); + const base = `http://127.0.0.1:${address.port}`; + + for (const [value, status] of [ + [dataUrl(await png()), 200], + [dataUrl(await png(513, 1)), 400], + [dataUrl(undecodablePng()), 400], + ["data:image/png;base64,broken", 400], + ] as const) { + const response = await fetch(`${base}/api/resource-global-applications`, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ values: { characteristics: { icon: value } } }), + }); + + assert.equal(response.status, status); + } + for (const [path, size] of [ + ["/api/__health", 70_000], + ["/api/resource-global-applications", 3 * 1024 * 1024], + ] as const) { + const response = await fetch(`${base}${path}`, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ value: "x".repeat(size) }), + }); + + assert.equal(response.status, 413); + } + } finally { + await new Promise((resolve, reject) => { + server.close((error) => (error ? reject(error) : resolve())); + server.closeAllConnections(); + }); + } +}); diff --git a/apps/server/src/workstation-names.integration.test.ts b/apps/server/src/workstation-names.integration.test.ts new file mode 100644 index 00000000..e5d686ea --- /dev/null +++ b/apps/server/src/workstation-names.integration.test.ts @@ -0,0 +1,112 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { WorkstationUseCases } from "../../../modules/assets/src/api/application/workstation.use-cases"; +import { renameWorkstationsFromPrimaryAssets } from "../../../modules/assets/src/api/infrastructure/persistence/rename-workstations-from-primary-assets"; +import { SequelizeAssetRepository } from "../../../modules/assets/src/api/infrastructure/persistence/sequelize-asset.repository"; +import { UniqueID } from "../../../packages/rdx-ddd/src/index"; + +import { + cleanupMembershipFixture, + prepareMembershipFixture, +} from "./asset-directory-memberships.fixture"; +import { createDatabase, readDatabaseEnvironment } from "./config/database"; + +test("nombres de puestos: principal, historial, varias compañías e idempotencia", async () => { + const environment = readDatabaseEnvironment(process.env); + + assert.equal(environment.DB_NAME, "metis_desk_test"); + const database = createDatabase(environment); + const actor = UniqueID.generateNewID().toPrimitive(); + const companies = [ + UniqueID.generateNewID().toPrimitive(), + UniqueID.generateNewID().toPrimitive(), + ]; + + try { + const fixture = await prepareMembershipFixture( + database, + environment.APP_ORIGIN, + actor, + companies + ); + const useCases = new WorkstationUseCases(new SequelizeAssetRepository(database)); + const originals = []; + + for (const company of companies) { + const asset = await fixture.asset(company); + const name = asset.values.toPrimitive().name; + + for (const values of [ + { + name: "Nombre anterior", + active: true, + assetIds: [asset.id.toPrimitive()], + computerAssetId: asset.id.toPrimitive(), + }, + { + name: "Nombre anterior inactivo", + active: false, + assetIds: [asset.id.toPrimitive()], + computerAssetId: asset.id.toPrimitive(), + }, + { + name, + active: false, + assetIds: [asset.id.toPrimitive()], + computerAssetId: asset.id.toPrimitive(), + }, + { name: "Sin principal", active: false, assetIds: [], computerAssetId: null }, + ]) { + const saved = await useCases.save( + company, + undefined, + { ...values, siteId: null, personId: null }, + actor + ); + + assert.ok(saved.isSuccess); + originals.push({ company, workstation: saved.data.workstation, name }); + } + } + await assert.rejects(() => + renameWorkstationsFromPrimaryAssets(database, UniqueID.generateNewID().toPrimitive()) + ); + assert.equal(await renameWorkstationsFromPrimaryAssets(database, actor), 4); + assert.equal(await renameWorkstationsFromPrimaryAssets(database, actor), 0); + + for (const { company, workstation, name } of originals) { + const inventory = await fixture.assetUseCases.get(company); + + assert.ok(inventory.isSuccess); + const current = inventory.data.workstations.find((item) => item.id.equals(workstation.id)); + + assert.ok(current); + const previous = workstation.values.toPrimitive(); + const changed = previous.computerAssetId && previous.name !== name; + + assert.deepEqual(current.values.toPrimitive(), { + ...previous, + name: changed ? name : previous.name, + }); + assert.equal(current.history.length, workstation.history.length + (changed ? 1 : 0)); + assert.deepEqual(current.history.slice(0, workstation.history.length), workstation.history); + assert.equal(current.history.at(-1)?.actorId.toPrimitive(), actor); + } + } finally { + for (const company of companies) { + const replacements = { company }; + + await database.query( + "DELETE r FROM workstation_revisions r JOIN workstations w ON w.id=r.workstationId WHERE w.companyId=:company", + { replacements } + ); + await database.query("DELETE FROM workstation_assets WHERE companyId=:company", { + replacements, + }); + await database.query("DELETE FROM workstations WHERE companyId=:company", { replacements }); + } + await cleanupMembershipFixture(database, companies, actor); + await database.close(); + } +}); diff --git a/docs/componentes-de-interfaz.md b/docs/componentes-de-interfaz.md index 5b1c105b..c6d02c78 100644 --- a/docs/componentes-de-interfaz.md +++ b/docs/componentes-de-interfaz.md @@ -1,5 +1,42 @@ # Componentes de interfaz +## Iconos en listados y selectores de software + +`SoftwareProductName`, en Resources, mantiene el PNG de 24 px unido al nombre en +catálogos globales, listados de compañía, instalaciones, SO actuales, perfiles y +resúmenes de puestos. El nombre sigue siendo texto y conserva la etiqueta accesible +del enlace o control; el icono adyacente es decorativo. Si no existe imagen, su +espacio muestra «—». La imagen no depende de una columna que pueda quedar oculta. + +Las referencias públicas de aplicaciones y SO incluyen `iconPng` opcional, tanto +globales como particulares. `resourceIcon` obtiene la característica mediante +`field:icon` cuando el consumidor dispone del inventario y catálogo; no busca por +el nombre editable del campo ni toma cualquier imagen de la ficha. + +`RemotePickerOption.leading` y `SelectOption.leading` aceptan contenido React junto +a su etiqueta de texto. No conocen imágenes, recursos, DTO ni endpoints; el módulo +consumidor aporta el contenido y declara los adornos con `aria-hidden`. Se conservan +las etiquetas de selección, el orden recibido, el clic de fila y la primera columna +compacta de selección. `characteristicsSummary` omite valores de tipo `image` para +que una URI de imagen nunca aparezca como resumen textual de una fila. + +## Imágenes PNG en características de recursos + +`ResourceImageField` compone Input y Button de shadcn/ui: selección PNG, ayuda, +previsualización, sustitución, retirada y errores asociados. Usa el valor del +formulario como única fuente de verdad; solo conserva el estado de lectura y error. +Mantiene el valor anterior ante un archivo inválido y bloquea el envío durante +la lectura o mientras persiste el error. La retirada por teclado devuelve el foco +al selector. Los editores globales y particulares lo reciben mediante +`ResourceCharacteristicControl`; no conoce endpoints ni persistencia. + +`ResourceImage` presenta el PNG validado con dimensiones reservadas, proporciones +originales, carga diferida y texto alternativo aportado por el consumidor. Las +fichas, revisiones y listados reutilizan esta presentación; la ausencia muestra «—». +El fondo blanco pertenece al soporte de la imagen para que los logos oscuros se +lean en ambos temas. Los contratos y fuentes figuran en +[iconos de recursos](iconos-de-recursos.md). + ## Submenú de Personas en la navegación de compañía `CompanySectionNavigation` compone `SidebarMenu` y `SidebarMenuItem` de shadcn/ui @@ -1797,3 +1834,21 @@ El contorno de foco opaco se aplica localmente a la ficha SMB. Se mantienen las primitivas compartidas y las operaciones y consultas existentes. Véanse [la auditoría y las evidencias de la ficha](ficha-de-carpeta-compartida.md). + +## Eliminación de cuentas + +`AccountDeleteDialog`, en `companies/web/access/delete/ui`, reutiliza `ConfirmDeleteDialog` +de `@repo/rdx-ui` desde el menú de cuentas de `AccessWorkspacePage`. El consumidor aporta +el identificador de acceso, los textos es/en y la mutación. Solo se cierra al confirmar +el éxito; los errores permanecen en el diálogo, incluido el bloqueo por relaciones +actuales o históricas. La respuesta actualiza exclusivamente la caché de accesos de la +compañía. El componente compartido conserva cancelación, estado pendiente y teclado. + +## Cambio de uso de cuentas + +El formulario existente de edición de cuentas permite seleccionar Personal, Compartida o +Técnica en «Uso». Sistema y entorno conservan su bloqueo. La API guarda el cambio sobre +el mismo UUID con una revisión nueva; repetir los mismos datos no añade historial. +El servidor rechaza titulares solapados al pasar a Personal y cambios entre uso técnico +y de acceso cuando existen relaciones con personas, incluidas las cerradas. El error +es/en permanece en el formulario con el borrador y permite corregir la selección. diff --git a/docs/cuentas-grupos-y-recursos.md b/docs/cuentas-grupos-y-recursos.md index 9fb3420e..6e8a7b57 100644 --- a/docs/cuentas-grupos-y-recursos.md +++ b/docs/cuentas-grupos-y-recursos.md @@ -31,7 +31,9 @@ Desactivar una definición impide seleccionarla en nuevas altas, pero conserva l Datos: compañía, sistema, entorno opcional, identificador de acceso, uso personal/compartido/técnico, estado activo, caducidad opcional y observaciones. -Compañía, sistema, entorno y uso quedan fijos. El identificador, estado, caducidad y observaciones pueden cambiar, conservando UUID e historial. +Compañía, sistema y entorno quedan fijos. El identificador, uso, estado, caducidad y observaciones pueden cambiar, conservando UUID e historial. + +El cambio de uso debe respetar las relaciones con personas registradas: compartida a personal requiere periodos de titulares sin solapamientos, incluidos los históricos. No se permite cambiar entre uso técnico y de acceso si existen relaciones con personas, porque la responsabilidad y la autorización tienen contratos de configuración diferentes. No se convierten ni eliminan relaciones automáticamente. La combinación compañía + sistema + entorno + identificador es única, incluyendo cuentas inactivas. El identificador distingue mayúsculas y minúsculas; se eliminan los espacios exteriores. @@ -47,6 +49,11 @@ Una fecha vencida no desactiva automáticamente la cuenta: genera un aviso si si Las contraseñas y secretos no forman parte de los campos de las cuentas. +El menú de una cuenta permite eliminarla con confirmación si no tiene referencias actuales +ni históricas. Se elimina también su historial propio, sin modificar el sistema externo. +Las cuentas con relaciones se conservan y pueden desactivarse. Véase +[eliminación de registros](eliminacion-de-registros.md#cuentas-de-sistemas-externos). + ## Grupos y plantillas Cada grupo pertenece a una compañía, sistema y entorno opcional. Tiene nombre visible, identificador real en el sistema, descripción opcional y estado activo. Compañía, sistema y entorno no cambian tras el alta. diff --git a/docs/eliminacion-de-registros.md b/docs/eliminacion-de-registros.md index 7a2ec6bf..80c77101 100644 --- a/docs/eliminacion-de-registros.md +++ b/docs/eliminacion-de-registros.md @@ -9,3 +9,20 @@ Cada operación valida los UUID, el cuerpo vacío y la consulta vacía, exige au Las tareas de procesos que ya copiaron una referencia mantienen su descripción e historial: la eliminación del registro de origen no elimina el proceso. Al refrescar su revisión actual, ese registro deja de aparecer. Las entidades con condiciones de eliminación (perfiles, puestos, activos, recursos y catálogos utilizados) quedan fuera de esta ampliación. Las eliminaciones de asignaciones a departamentos y procesos de personas ya estaban disponibles. + +## Cuentas de sistemas externos + +En Compañías → Cuentas y accesos → Cuentas, el menú de cada fila permite «Eliminar cuenta» +con confirmación. El borrado definitivo incluye el historial propio y está disponible para +cuentas activas o inactivas, siempre que no tengan referencias actuales ni históricas: +titulares, pertenencias a grupos, permisos, perfiles, correo, carpetas u otros registros. +Si la cuenta está en uso, se conserva todo y el diálogo propone desactivarla. +Esta operación solo elimina la documentación de Metis Desk; no elimina cuentas externas. + +`POST /api/access/:companyId/:id/delete` requiere UUID válidos, cuerpo `{}`, consulta vacía, +sesión autenticada y CSRF. Devuelve el espacio actualizado con 200; un registro ausente, +de otra compañía o de otro tipo devuelve 404; una cuenta referenciada devuelve +409 `ACCOUNT_IN_USE`. Repetir el borrado devuelve 404 sin efectos adicionales. +La transacción bloquea catálogo, compañía, espacio y cuenta, comprueba las FK entrantes +y elimina únicamente referencias salientes, valores e historial propios. No borra +relaciones en cascada ni permite eliminar catálogos a través de esta ruta. diff --git a/docs/iconos-de-recursos.md b/docs/iconos-de-recursos.md new file mode 100644 index 00000000..df21a11c --- /dev/null +++ b/docs/iconos-de-recursos.md @@ -0,0 +1,133 @@ +# Iconos PNG de recursos + +El campo global de serie `field:icon`, «Icono», es de tipo `image`. Aplicación, +Sistema operativo y Licencia de software lo incluyen como característica opcional. +Se añade una sola vez a las plantillas existentes, conservando sus UUID, campos, +orden, secciones y personalizaciones. Los reinicios no reponen un binding retirado. +El icono de producto es independiente del icono vectorial de la plantilla. + +## Selección y validación + +El selector compartido admite PNG estáticos de hasta 512 × 512 píxeles y 2 MiB. +Mantiene las proporciones y permite previsualizar, sustituir y quitar la imagen. +Una selección inválida conserva el valor anterior y bloquea el envío hasta +corregirla o retirarla. La lectura pendiente también bloquea el envío. La ayuda, +el estado y los errores están disponibles en español e inglés. + +El contrato compartido valida firma PNG, dimensiones, integridad CRC de los chunks, +datos de imagen, final del contenedor y ausencia de animación. El servidor decodifica +además los píxeles con Sharp, con límite de dimensiones. No basta la extensión del +archivo ni el MIME declarado. Las rutas JSON de recursos admiten hasta 3 MiB; +las demás conservan su límite de 64 KiB. + +Las fichas, revisiones y columnas de características muestran la imagen, sin +imprimir base64. Los listados de aplicaciones y SO muestran el icono junto al nombre. +La ausencia se representa con «—». El soporte blanco del icono mantiene visibles +los logotipos oscuros también con el tema oscuro. + +## Persistencia e historial + +La imagen viaja como una URI `data:image/png;base64,...`, validada, dentro de la +característica. Se conserva como valor escalar `valueType=image` en las tablas +relacionales `resource_characteristics` y `resource_revision_characteristics`. +No se almacena JSON ni se crean URLs remotas dependientes de terceros. + +`migrateResourceImages` amplía explícitamente sus columnas `textValue` a MEDIUMTEXT +de forma idempotente. Las especificaciones y revisiones admiten el nuevo tipo. +Las escrituras normales conservan UUID e historial; repetir un guardado idéntico +no añade revisiones. + +## Carga inicial de los catálogos locales + +Las imágenes y su procedencia se conservan en +[`apps/server/data/resource-icons/manifest.json`](../apps/server/data/resource-icons/manifest.json). +Cada entrada identifica producto o familia, archivo PNG, URL de origen y SHA-256. +Se incluyen 40 aplicaciones y las familias Windows 7, Windows 8.1/10/Server, +Windows 11 y macOS. Las versiones y ediciones de una misma familia comparten logo. +Los iconos de menor tamaño mantienen su resolución original; ninguno supera 512 px +por dimensión. + +Fuentes: [Dashboard Icons](https://github.com/homarr-labs/dashboard-icons), fijado al +commit `83f32e08257b66fbd971ac8d7645f5b38d52e85d`, +[Simple Icons 13.21.0](https://github.com/simple-icons/simple-icons/tree/13.21.0), +[PowerToys](https://github.com/microsoft/PowerToys) y las páginas oficiales de +Chaos/Enscape, voidtools, WinSCP, WinRAR, Nitro y TeamViewer. Se conservan las marcas +de sus titulares para identificar los productos. Dashboard Icons utiliza Apache-2.0 +y Simple Icons CC0; sus licencias no sustituyen los derechos sobre las marcas. + +Desde la raíz, previsualizar sin escribir: + +```bash +pnpm --filter @metis/server exec node --env-file=../../.env --import tsx src/import-resource-icons.ts +``` + +Para aplicar la carga solicitada, añadir `--apply` al comando. Este comando comprueba +archivos, huellas y PNG antes de escribir. Requiere un administrador inicial activo, +registra sus revisiones, prepara las plantillas y amplía las especificaciones antiguas +solo con el campo Icono, preservando sus valores anteriores. Conserva iconos existentes +y es reejecutable. No cambia flags de administración o asociación del servidor. + +Las pruebas con persistencia y la auditoría Playwright utilizan exclusivamente una +instalación desechable de `metis_desk_test`; la carga de los catálogos locales es la +operación de datos solicitada, independiente de esas pruebas. + +## Verificación de esta entrega + +- Catálogo local: 40/40 aplicaciones y 38/38 SO con PNG; Icono opcional en las + tres plantillas. Segunda ejecución: 0 guardados y 78 iconos conservados. +- Resources: 126 pruebas correctas. PNG/HTTP: 3 pruebas correctas, incluyendo + límites, corrupción, animación y rechazo de píxeles no decodificables. +- Integración SO/HTTP/MariaDB: 12 pruebas correctas sobre base desechable; incluye + guardado y lectura de un PNG de 512 px, historial e idempotencia. +- Playwright MCP: recorridos de SO y aplicaciones correctos, con carga y retirada + por teclado, archivos inválidos, conservación del valor anterior, fichas, + búsqueda, paginación y tamaños estrechos/amplios. Cada recorrido utiliza 15 + compañías y una principal con al menos 50 personas, activos, recursos, perfiles + y puestos; cada catálogo global dispone de 51 productos sintéticos. +- Compilación y typecheck dirigido de Resources, Server y Web correctos. Los + archivos modificados de esta implementación pasan Biome y las reglas de espaciado. +- `pnpm typecheck` general se detiene en `packages/shadcn-ui/src/components/calendar.tsx` + por el tipo opcional de `locale`. `pnpm lint` y `pnpm check` generales detectan + incidencias ajenas al cambio. `pnpm test`, ejecutado con MariaDB desechable, + se detiene en dos aserciones de `companies-page.test.tsx`: «Personas (1)» y + «Esta persona no tiene acceso a Metis Desk». No se han modificado esas áreas. + +Skills consultadas: `rdx-solid`, `ux-inputs-and-forms`, `shadcn` y +`vercel-react-best-practices`. Han orientado el uso de contratos y persistencia +existentes, la conservación del valor ante errores, las etiquetas y ayuda +accesibles y la lectura de archivos desde el evento de selección. Los auditores +especializados mencionados por la skill de formularios no están instalados; +se han realizado las comprobaciones disponibles directamente con Playwright MCP. + +## Ampliación a todos los listados — 27 de octubre de 2026 + +El icono se representa junto al nombre en catálogos globales y de compañía, +inventario local de SO y aplicaciones, selectores, instalaciones, SO actuales, +configuraciones e historiales de aplicaciones, entornos y resúmenes de puestos, +mapa de software y sugerencias de coincidencias. El nombre permanece como etiqueta +accesible y el adorno no interfiere con el clic de fila, el foco ni la selección. +Las referencias públicas incorporan el PNG para los dos ámbitos; no se infiere una +imagen por coincidencia de nombre y no se modifican los datos de las compañías. + +Verificación de esta ampliación: + +- 128 pruebas de Resources y 84 de rdx-ui correctas. +- 14 pruebas de integración HTTP/MariaDB correctas, incluyendo PNG global/local, + resolución de SO local y exclusión de referencias de otra compañía. +- Playwright MCP: PNG decodificado en el catálogo global de aplicaciones y SO, + catálogo combinado de compañía, SO local, selector mixto, instalaciones y resumen + del puesto. Se mantienen recorridos de búsqueda, paginación, teclado, selección, + responsive y gates cerrados, con 15 compañías y los volúmenes sintéticos del + procedimiento. Evidencias locales sin sesión en + `.artifacts/playwright/authenticated-9qcb5enx`, `authenticated-cpta18j4` y + `authenticated-y722zwbl`. +- Compilación y comprobaciones dirigidas de tipos y formato correctas. +- `pnpm test` mantiene dos fallos de `companies-page.test.tsx`; las otras 311 + pruebas de Companies pasan. `pnpm typecheck` general mantiene el error de vendor + descrito anteriormente. `pnpm lint` y `pnpm check` siguen señalando incidencias + fuera de los archivos de esta ampliación. + +Skills: `ux-tables` como principal, complementada por `shadcn`, +`vercel-react-best-practices` y `rdx-solid`: imagen compacta junto a la identidad, +composición compartida, etiquetas de texto conservadas y datos procedentes de las +consultas existentes. No se han instalado los auditores especializados ausentes. diff --git a/docs/plan-de-desarrollo.md b/docs/plan-de-desarrollo.md index fb9c4ac4..e2eed8f0 100644 --- a/docs/plan-de-desarrollo.md +++ b/docs/plan-de-desarrollo.md @@ -33,7 +33,7 @@ Personas sin acceso a Metis Desk, contactos como clasificación, puesto general ## Cuentas, grupos y recursos: implementado -Catálogos globales con adiciones por compañía, entornos, cuentas con uso fijo y caducidad opcional, relaciones con personas, plantillas globales de grupos, pertenencias sin anidación, recursos y permisos configurables, necesidades y cobertura calculada. Las autorizaciones y configuraciones se registran por separado, con historial, actor y avisos de revisión. Consultar [Cuentas, grupos y recursos](cuentas-grupos-y-recursos.md). +Catálogos globales con adiciones por compañía, entornos, cuentas con uso editable compatible con sus relaciones y caducidad opcional, relaciones con personas, plantillas globales de grupos, pertenencias sin anidación, recursos y permisos configurables, necesidades y cobertura calculada. Las autorizaciones y configuraciones se registran por separado, con historial, actor y avisos de revisión. Consultar [Cuentas, grupos y recursos](cuentas-grupos-y-recursos.md). ## Campos y plantillas de activos: implementado diff --git a/docs/puestos-de-trabajo.md b/docs/puestos-de-trabajo.md index eb325b81..de8a653b 100644 --- a/docs/puestos-de-trabajo.md +++ b/docs/puestos-de-trabajo.md @@ -4,7 +4,7 @@ La sección Puestos de trabajo de cada compañía agrupa los activos utilizados habitualmente como un conjunto. Un puesto tiene UUID v7, nombre, estado activo/inactivo, sede, responsable opcional y hasta 200 activos sin duplicados. El alta exige al menos un activo y un ordenador principal. Los puestos antiguos o desactivados pueden conservar una composición vacía hasta completarlos. Una persona puede tener varios puestos. Los puestos no contienen otros puestos. -Nuevo puesto abre un modal desde la cabecera derecha; Editar abre otro modal con los datos existentes. Al crear, el resumen propone el nombre «{sede} · {ordenador principal}»; el técnico puede modificarlo o borrarlo antes de guardar y esa edición manual no se sobrescribe al retroceder, cambiar la sede o el ordenador y volver al resumen. Mientras el nombre no se haya editado, la propuesta se recalcula al avanzar con las selecciones actuales; el responsable no interviene en ella. El formulario ofrece selectores con «+» para dar de alta sedes, personas y activos sin perder sus datos. Guardar un elemento relacionado lo selecciona o incorpora al puesto; cancelarlo mantiene el formulario principal. Los elementos guardados sobreviven si posteriormente se cancela el puesto. El alta de activo desde un puesto usa plantillas y sedes existentes para evitar un tercer modal. +Nuevo puesto abre un modal desde la cabecera derecha; Editar abre otro modal con los datos existentes. Al crear, el resumen propone exactamente el nombre del activo principal, sin prefijos ni sede; el técnico puede modificarlo o borrarlo antes de guardar y esa edición manual no se sobrescribe al retroceder, cambiar la sede o el ordenador y volver al resumen. Mientras el nombre no se haya editado, la propuesta se recalcula al avanzar con las selecciones actuales; la sede y el responsable no intervienen en ella. El formulario ofrece selectores con «+» para dar de alta sedes, personas y activos sin perder sus datos. Guardar un elemento relacionado lo selecciona o incorpora al puesto; cancelarlo mantiene el formulario principal. Los elementos guardados sobreviven si posteriormente se cancela el puesto. El alta de activo desde un puesto usa plantillas y sedes existentes para evitar un tercer modal. La ayuda aparece inmediatamente antes de Guardar y Cancelar. El listado permite buscar por nombre, persona o sede. Historial del puesto muestra las versiones completas, con estado, asignación y composición, fecha y responsable. La ficha de cada activo muestra los puestos vigentes en los que se utiliza. @@ -184,3 +184,17 @@ mediante la caché compartida, con estado de carga y recuperación explícita de La ficha muestra un resumen compartido con la del activo: todas las instalaciones `configured` del principal con referencia resuelta de tipo `os`. Los estados pendientes o retirados no se presentan como SO actual. Sin registro aparece «No registrado»; carga, error recuperable y referencias no disponibles se distinguen. No se deduce el dato del SO de fábrica ni se copia en Workstation, WorkProfile o ApplicationConfiguration. Cambiar el ordenador principal selecciona inmediatamente las instalaciones del nuevo activo sin transferir software, licencias o historial. La gestión existente sigue disponible, y el mapa continúa mostrando el conjunto de software abierto con sus estados. La lista completa de SO actuales está en el resumen, incluso cuando hay varios productos. Véase la [decisión y validación](architecture/decision-so-actual-en-activos-y-puestos.md). + +## Corrección de nombres existentes + +`pnpm db:rename-workstations --apply` actualiza los puestos cuyo nombre difiere del de su activo principal. Es una corrección explícita sobre la base configurada localmente; no se ejecuta al arrancar. Incluye puestos activos e inactivos que conserven el principal en su composición y deja intactos los que no lo tienen. + +La operación bloquea las compañías y se aplica en una única transacción. Cada cambio añade una revisión UUID v7 con el administrador inicial activo como actor, conservando las revisiones anteriores, asociaciones y reservas. Requiere un único administrador inicial activo. Repetirla sin cambios de nombres no añade revisiones. No establece una sincronización permanente: los nombres siguen siendo editables. + +La regresión específica se ejecuta con `pnpm test:workstation-names`: prepara y elimina su propio contenedor MariaDB con `metis_desk_test`, sin cargar `.env` ni acceder a bases existentes. + +Validación de esta corrección (26 de octubre de 2026): `pnpm test:workstation-names` pasa con dos compañías, dos activos y ocho puestos sintéticos; cubre nombres ya correctos, ausencia de principal, puestos activos/inactivos, conservación del historial, actor inválido e idempotencia. `pnpm --filter @metis/assets test` pasa sus 29 archivos; `pnpm --filter @metis/server typecheck`, las comprobaciones Biome/espaciado dirigidas y `pnpm build` pasan. + +Las comprobaciones globales mantienen fallos ajenos a este cambio: `pnpm typecheck` en `packages/shadcn-ui/src/components/calendar.tsx:165`; `pnpm lint` y `pnpm check` en ficheros existentes y artefactos. El ensayo general `python3 scripts/resource-scope-test.py --monorepo` falla en una prueba HTTP de recursos antes de ejecutar el resto. No se ha ejecutado `pnpm test` completo. + +Skills consultadas: `rdx-solid` para la corrección transaccional y su regresión; `ux-inputs-and-forms` para conservar la edición manual del nombre propuesto. No están disponibles sus skills especializadas `*-audit`. No se ha validado el formulario en navegador ni el volumen amplio de listados (15 compañías y 50 registros por entidad); las pruebas realizadas son específicas de esta corrección y no modifican la estructura visual. diff --git a/docs/recursos-campos-y-plantillas.md b/docs/recursos-campos-y-plantillas.md index e161ecc2..148e11bd 100644 --- a/docs/recursos-campos-y-plantillas.md +++ b/docs/recursos-campos-y-plantillas.md @@ -96,6 +96,11 @@ Las plantillas permiten organizar campos en secciones ordenadas, globales o prop ## Persistencia relacional +El campo opcional «Icono» admite imágenes PNG estáticas de hasta 512 × 512 píxeles. +Aplicación, Sistema operativo y Licencia de software lo incluyen de serie. Véanse +[iconos PNG de recursos](iconos-de-recursos.md) para validación, persistencia, +historial y carga de imágenes de los catálogos globales. + El catálogo, las especificaciones actuales e históricas y los valores actuales e históricos de recursos se almacenan en columnas y tablas relacionadas. Véase [normalización de la persistencia](normalizacion-de-la-persistencia.md). El arranque añade únicamente las definiciones ausentes y no sobrescribe las plantillas existentes. Las ediciones conservan UUID y clave de serie; el uso especializado de la plantilla permanece fijo. Las ediciones de plantillas sincronizan las fichas existentes sin borrar los valores de campos retirados; cada revisión conserva su especificación original. diff --git a/modules/assets/src/api/infrastructure/persistence/rename-workstations-from-primary-assets.ts b/modules/assets/src/api/infrastructure/persistence/rename-workstations-from-primary-assets.ts new file mode 100644 index 00000000..78950dab --- /dev/null +++ b/modules/assets/src/api/infrastructure/persistence/rename-workstations-from-primary-assets.ts @@ -0,0 +1,72 @@ +import { UniqueID } from "@repo/rdx-ddd"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; +import { z } from "zod/v4"; + +import { WorkstationInputSchema } from "../../domain/workstation-values"; + +const CandidateSchema = z.object({ + id: z.uuid(), + name: WorkstationInputSchema.shape.name, +}); + +/** Corrección explícita de nombres; conserva las revisiones anteriores y la composición. */ +export async function renameWorkstationsFromPrimaryAssets(database: Sequelize, actorId: string) { + const actor = z.uuid().parse(actorId); + + return database.transaction(async (transaction) => { + const users = await database.query<{ id: string }>( + "SELECT id FROM users WHERE id=:actor AND active=1", + { replacements: { actor }, transaction, type: QueryTypes.SELECT } + ); + + if (users.length !== 1) { + throw new Error("La corrección requiere un usuario activo para registrar las revisiones."); + } + // Mismo bloqueo por compañía que las escrituras ordinarias del inventario. + await database.query("SELECT id FROM companies ORDER BY id FOR UPDATE", { + transaction, + type: QueryTypes.SELECT, + }); + const candidates = z.array(CandidateSchema).parse( + await database.query( + `SELECT w.id,a.name FROM workstations w + INNER JOIN assets a ON a.id=w.computerAssetId AND a.companyId=w.companyId + INNER JOIN workstation_members m ON m.workstationId=w.id AND m.assetId=a.id AND m.kind='exclusive' + WHERE BINARY w.name<>BINARY a.name FOR UPDATE`, + { transaction, type: QueryTypes.SELECT } + ) + ); + + for (const candidate of candidates) { + const replacements = { + id: candidate.id, + name: candidate.name, + revisionId: UniqueID.generateNewID().toPrimitive(), + actor, + recordedAt: new Date().toISOString(), + }; + + await database.query( + `INSERT INTO workstation_revisions + (id,workstationId,actorId,siteId,personId,computerAssetId,name,active,recordedAt,position) + SELECT :revisionId,w.id,:actor,w.siteId,w.personId,w.computerAssetId,:name,w.active, + GREATEST(:recordedAt,COALESCE(MAX(r.recordedAt),:recordedAt)),COALESCE(MAX(r.position),-1)+1 + FROM workstations w LEFT JOIN workstation_revisions r ON r.workstationId=w.id + WHERE w.id=:id GROUP BY w.id,w.siteId,w.personId,w.computerAssetId,w.active`, + { replacements, transaction } + ); + await database.query( + `INSERT INTO workstation_revision_members (revisionId,assetId,kind,position) + SELECT :revisionId,assetId,kind,position FROM workstation_members WHERE workstationId=:id`, + { replacements, transaction } + ); + await database.query("UPDATE workstations SET name=:name WHERE id=:id", { + replacements, + transaction, + }); + } + + return candidates.length; + }); +} diff --git a/modules/assets/src/common/locales/en.json b/modules/assets/src/common/locales/en.json index 84d3aee0..142c222c 100644 --- a/modules/assets/src/common/locales/en.json +++ b/modules/assets/src/common/locales/en.json @@ -161,7 +161,6 @@ "newWorkstation": "New workstation", "editWorkstation": "Edit workstation", "workstationPerson": "Workstation custodian", - "workstationSuggestedName": "Workstation for {{computer}} at {{site}}", "workstationHistory": "Workstation history", "workstationAssets": "Workstation assets", "noWorkstations": "This company has no workstations yet.", @@ -441,7 +440,6 @@ "technicalStatus": "Technical state", "technicalStatusHelp": "Available and In use are calculated from active workstations. Breakdowns and maintenance retain existing assignments.", "workstationPersonOptional": "Workstation owner", - "workstationNameBySite": "Workstation at {{site}}", "workstationSteps": { "label": "New workstation steps", "progress": "Step {{step}} of {{total}}", diff --git a/modules/assets/src/common/locales/es.json b/modules/assets/src/common/locales/es.json index 5cce8f84..afb3adf1 100644 --- a/modules/assets/src/common/locales/es.json +++ b/modules/assets/src/common/locales/es.json @@ -161,7 +161,6 @@ "newWorkstation": "Nuevo puesto", "editWorkstation": "Editar puesto", "workstationPerson": "Responsable del puesto", - "workstationSuggestedName": "Puesto {{computer}} en {{site}}", "workstationHistory": "Historial del puesto", "workstationAssets": "Activos del puesto", "noWorkstations": "Esta compañía todavía no tiene puestos de trabajo.", @@ -441,7 +440,6 @@ "technicalStatus": "Estado técnico", "technicalStatusHelp": "Disponible y En uso se calculan según los puestos activos. Una avería o mantenimiento conserva las asignaciones existentes.", "workstationPersonOptional": "Responsable del puesto", - "workstationNameBySite": "Puesto en {{site}}", "workstationSteps": { "label": "Pasos del nuevo puesto", "progress": "Paso {{step}} de {{total}}", diff --git a/modules/assets/src/web/assets/list/asset-workstation.test.tsx b/modules/assets/src/web/assets/list/asset-workstation.test.tsx index b660801b..97fedcc1 100644 --- a/modules/assets/src/web/assets/list/asset-workstation.test.tsx +++ b/modules/assets/src/web/assets/list/asset-workstation.test.tsx @@ -254,13 +254,7 @@ test("alta desde activo es/en: composición y ordenador preseleccionados, sede a assert.ok(html.includes(`data-assets="${asset.id}"`)); assert.ok(html.includes(`data-computer="${asset.id}"`)); assert.ok(html.includes(`data-site="${asset.values.siteId}"`)); - assert.ok( - html.includes( - language === "es" - ? 'data-name="Puesto PC de Ana en Fábrica"' - : 'data-name="Workstation for PC de Ana at Fábrica"' - ) - ); + assert.ok(html.includes('data-name="PC de Ana"')); assert.ok(html.includes('data-wizard="true"')); assert.ok(html.includes('data-can-continue="true"')); client.setQueryData(inventoryKeys.company(companyId), { @@ -294,6 +288,7 @@ test("alta desde activo es/en: composición y ordenador preseleccionados, sede a }); assert.equal(inactiveSite.includes(`data-site="${id(3)}"`), false); + assert.ok(inactiveSite.includes('data-name="PC de Ana"')); assert.ok(inactiveSite.includes('data-can-continue="false"')); } finally { client.clear(); diff --git a/modules/assets/src/web/workstations/shared/controllers/use-workstation-form-controller.ts b/modules/assets/src/web/workstations/shared/controllers/use-workstation-form-controller.ts index 98c49b4e..06a890a9 100644 --- a/modules/assets/src/web/workstations/shared/controllers/use-workstation-form-controller.ts +++ b/modules/assets/src/web/workstations/shared/controllers/use-workstation-form-controller.ts @@ -3,7 +3,6 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import type { FormEvent } from "react"; import { useEffect, useRef, useState } from "react"; import { useForm } from "react-hook-form"; -import { useTranslation } from "react-i18next"; import type { WorkstationInput } from "../../../../common"; import { WorkstationInputSchema } from "../../../../common"; @@ -24,7 +23,6 @@ export function useWorkstationFormController({ onSaved, lookups, }: WorkstationFormProps) { - const { t } = useTranslation("assets"); const client = useQueryClient(); const mounted = useRef(true); const isWizard = !workstation; @@ -35,16 +33,11 @@ export function useWorkstationFormController({ const initialSite = activeSites.find((site) => site.id === sourceAsset?.values.siteId) ?? (activeSites.length === 1 ? activeSites[0] : undefined); - const initialName = suggestedWorkstationName( - sourceAsset?.values.name, - initialSite?.name, - (computer, site) => t("workstationSuggestedName", { computer, site }) - ); + const initialName = suggestedWorkstationName(sourceAsset?.values.name); const form = useForm({ resolver: zodResolver(WorkstationInputSchema), defaultValues: workstation?.values ?? { - name: - initialName ?? (initialSite ? t("workstationNameBySite", { site: initialSite.name }) : ""), + name: initialName ?? "", active: true, siteId: initialSite?.id ?? null, personId: @@ -116,14 +109,9 @@ export function useWorkstationFormController({ if (workstation || form.getFieldState("name").isDirty) { return; } - const siteName = lookups.sites.find((item) => item.id === form.getValues("siteId"))?.name; const computerName = assets.find((item) => item.id === form.getValues("computerAssetId")) ?.values.name; - const name = suggestedWorkstationName(computerName, siteName, (computer, site) => - t("workstationSuggestedName", { computer, site }) - ); - - form.setValue("name", name ?? (siteName ? t("workstationNameBySite", { site: siteName }) : "")); + form.setValue("name", suggestedWorkstationName(computerName) ?? ""); }; const mutation = useMutation({ diff --git a/modules/assets/src/web/workstations/shared/workstation-name.test.ts b/modules/assets/src/web/workstations/shared/workstation-name.test.ts index 2afdbc2b..c8e62d86 100644 --- a/modules/assets/src/web/workstations/shared/workstation-name.test.ts +++ b/modules/assets/src/web/workstations/shared/workstation-name.test.ts @@ -3,13 +3,16 @@ import { test } from "node:test"; import { suggestedWorkstationName } from "./workstation-name"; -test("propone un nombre de puesto solo al conocer ordenador principal y sede", () => { - const format = (computer: string, site: string) => `${site} · ${computer}`; - - assert.equal(suggestedWorkstationName("", "Fábrica", format), undefined); - assert.equal(suggestedWorkstationName("PC-01", "", format), undefined); - assert.equal(suggestedWorkstationName(undefined, "Fábrica", format), undefined); - assert.equal(suggestedWorkstationName("PC-01", undefined, format), undefined); - assert.equal(suggestedWorkstationName("PC-01", "Uecko Fábrica", format), "Uecko Fábrica · PC-01"); - assert.equal(suggestedWorkstationName("Portátil", "Oficina", format), "Oficina · Portátil"); +test("propone exactamente el nombre del activo principal, sin depender de la sede", () => { + assert.equal(suggestedWorkstationName("PC-01"), "PC-01"); + assert.equal( + suggestedWorkstationName("Portátil de recepción · Álvarez"), + "Portátil de recepción · Álvarez" + ); + assert.equal(suggestedWorkstationName("A".repeat(100)), "A".repeat(100)); +}); + +test("no propone nombre cuando falta el activo principal", () => { + assert.equal(suggestedWorkstationName(""), undefined); + assert.equal(suggestedWorkstationName(undefined), undefined); }); diff --git a/modules/assets/src/web/workstations/shared/workstation-name.ts b/modules/assets/src/web/workstations/shared/workstation-name.ts index b1298fea..a8120af9 100644 --- a/modules/assets/src/web/workstations/shared/workstation-name.ts +++ b/modules/assets/src/web/workstations/shared/workstation-name.ts @@ -1,11 +1,3 @@ -export function suggestedWorkstationName( - computerName: string | undefined, - siteName: string | undefined, - format: (computer: string, site: string) => string -) { - if (!(computerName && siteName)) { - return undefined; - } - - return format(computerName, siteName); +export function suggestedWorkstationName(computerName: string | undefined) { + return computerName || undefined; } diff --git a/modules/companies/src/api/application/access.repository.ts b/modules/companies/src/api/application/access.repository.ts index 8a03dd30..7f338ff8 100644 --- a/modules/companies/src/api/application/access.repository.ts +++ b/modules/companies/src/api/application/access.repository.ts @@ -15,6 +15,10 @@ export type AccessSnapshot = { export interface IAccessRepository { get(companyId: Maybe): Promise>; + removeAccount( + companyId: UniqueID, + accountId: UniqueID + ): Promise>; update( companyId: Maybe, action: (snapshot: AccessSnapshot) => Result diff --git a/modules/companies/src/api/application/access.use-cases.ts b/modules/companies/src/api/application/access.use-cases.ts index 2226cf5f..e7bff7d9 100644 --- a/modules/companies/src/api/application/access.use-cases.ts +++ b/modules/companies/src/api/application/access.use-cases.ts @@ -28,6 +28,17 @@ export class AccessUseCases { return parsed.isSuccess ? this.repository.get(parsed.data) : parsed; } + async removeAccount(companyId: string, accountId: string) { + const company = UniqueID.create(companyId); + const account = UniqueID.create(accountId); + + if (!(company.isSuccess && account.isSuccess)) { + return Result.fail(new AccessError("INVALID_REQUEST")); + } + + return this.repository.removeAccount(company.data, account.data); + } + async save(scope: string, id: string | undefined, dto: AccessFieldsDTO, actorId: string) { const parent = this.scope(scope); const actor = UniqueID.create(actorId); diff --git a/modules/companies/src/api/domain/access/access-error.ts b/modules/companies/src/api/domain/access/access-error.ts index 153216d7..d9546df1 100644 --- a/modules/companies/src/api/domain/access/access-error.ts +++ b/modules/companies/src/api/domain/access/access-error.ts @@ -4,6 +4,8 @@ export class AccessError extends Error { | "INVALID_REQUEST" | "ACCESS_NOT_FOUND" | "ACCESS_CONFLICT" + | "ACCOUNT_IN_USE" + | "ACCOUNT_USAGE_CONFLICT" | "INACTIVE_TARGET" | "IMMUTABLE_FIELDS" | "SCOPE_MISMATCH" diff --git a/modules/companies/src/api/domain/access/access-item.entity.ts b/modules/companies/src/api/domain/access/access-item.entity.ts index b4e1f799..32e56f46 100644 --- a/modules/companies/src/api/domain/access/access-item.entity.ts +++ b/modules/companies/src/api/domain/access/access-item.entity.ts @@ -72,7 +72,7 @@ export class AccessItem extends DomainEntity { const next = adjusted.data; const after = next.data; const fields: Record = { - account: ["kind", "systemId", "environmentId", "usage"], + account: ["kind", "systemId", "environmentId"], group: ["kind", "systemId", "environmentId", "templateId"], environment: ["kind", "systemId"], permission: ["kind", "resourceTypeId"], diff --git a/modules/companies/src/api/domain/access/access-policy.ts b/modules/companies/src/api/domain/access/access-policy.ts index 9a8cf07e..1a3748c2 100644 --- a/modules/companies/src/api/domain/access/access-policy.ts +++ b/modules/companies/src/api/domain/access/access-policy.ts @@ -16,6 +16,41 @@ function active(item: AccessItem, today: string) { ); } +/** El cambio de uso conserva la semántica y la exclusividad de las relaciones registradas. */ +export function checkAccountUsageChange( + candidate: AccessItem, + previous: AccessItem | undefined, + items: readonly AccessItem[] +) { + const before = previous?.values.data; + const after = candidate.values.data; + + if (before?.kind !== "account" || after.kind !== "account" || before.usage === after.usage) { + return undefined; + } + const relations = items.filter( + (item) => + item.values.data.kind === "account_person" && + item.values.data.accountId === candidate.id.toPrimitive() + ); + // Responsabilidad técnica y autorización de acceso tienen contratos de configuración distintos. + if (relations.length && (before.usage === "technical" || after.usage === "technical")) { + return Result.fail(new AccessError("ACCOUNT_USAGE_CONFLICT")); + } + const updated = [...items, candidate]; + + if ( + after.usage === "personal" && + relations.some((relation, index) => + relations.slice(index + 1).some((other) => accessConflict(relation, other, updated)) + ) + ) { + return Result.fail(new AccessError("ACCOUNT_USAGE_CONFLICT")); + } + + return undefined; +} + function overlaps(left: AccessItem, right: AccessItem) { const a = left.values.data; const b = right.values.data; diff --git a/modules/companies/src/api/domain/access/access-workspace.aggregate.ts b/modules/companies/src/api/domain/access/access-workspace.aggregate.ts index f49fbfe7..6743e8bf 100644 --- a/modules/companies/src/api/domain/access/access-workspace.aggregate.ts +++ b/modules/companies/src/api/domain/access/access-workspace.aggregate.ts @@ -10,6 +10,7 @@ import type { AccessItem, AuditContext } from "./access-item.entity"; import { AccessPolicy, accessConflict, + checkAccountUsageChange, checkCatalog, checkConfiguration, checkRelations, @@ -86,6 +87,11 @@ export class AccessWorkspace extends AggregateRoot<{ if (failure) { return failure; } + const usageFailure = checkAccountUsageChange(candidate, previous, all); + + if (usageFailure) { + return usageFailure; + } const duplicates = all.some((other) => accessConflict(candidate, other, all)); if (duplicates) { diff --git a/modules/companies/src/api/domain/access/access.test.ts b/modules/companies/src/api/domain/access/access.test.ts index 5987538c..f333452e 100644 --- a/modules/companies/src/api/domain/access/access.test.ts +++ b/modules/companies/src/api/domain/access/access.test.ts @@ -111,7 +111,7 @@ test("catálogos globales no se duplican con adiciones locales y no se admiten g false ); }); -test("renombrar una cuenta conserva UUID, historial y semántica de repetición; su uso permanece fijo", () => { +test("renombrar y cambiar el uso de una cuenta conserva UUID, historial y semántica de repetición", () => { const f = fixture(); const account = f.add(f.account); const renamed = account.update(values({ ...f.account, login: "ana.garcia" }), audit); @@ -126,9 +126,117 @@ test("renombrar una cuenta conserva UUID, historial y semántica de repetición; assert.equal(repeated.data, renamed.data); const conversion = account.update(values({ ...f.account, usage: "shared" }), audit); - assert.equal(conversion.isSuccess, false); + assert.ok(conversion.isSuccess); + assert.equal(conversion.data.history.length, 2); + assert.ok(conversion.data.id.equals(account.id)); assert.equal(renamed.data.history[1]?.actorId.toPrimitive(), audit.actorId.toPrimitive()); }); + +test("el uso puede cambiar entre todas las opciones sin relaciones y repetirlo no añade revisiones", () => { + for (const before of ["personal", "shared", "technical"] as const) { + for (const after of ["personal", "shared", "technical"] as const) { + const f = fixture(); + const account = f.add({ ...f.account, usage: before, active: false }); + const next = values({ ...f.account, usage: after, active: false }); + const changed = f.workspace().update(account.id, next, audit, f.context); + + assert.ok(changed.isSuccess); + const saved = changed.data.items.find((item) => item.id.equals(account.id)); + + assert.ok(saved); + assert.equal(saved.history.length, before === after ? 1 : 2); + const repeated = changed.data.update(account.id, next, audit, f.context); + + assert.ok(repeated.isSuccess); + assert.equal(repeated.data, changed.data); + } + } +}); + +test("pasar de compartida a personal rechaza titulares solapados y admite periodos consecutivos", () => { + for (const endDate of [null, "2026-01-02"] as const) { + const f = fixture(); + const account = f.add({ ...f.account, usage: "shared" }); + + f.add({ + kind: "account_person", + accountId: account.id.toPrimitive(), + personId: f.person.id.toPrimitive(), + startDate: "2026-01-01", + endDate, + configuration: endDate ? "removed" : "configured", + }); + f.add({ + kind: "account_person", + accountId: account.id.toPrimitive(), + personId: f.second.id.toPrimitive(), + startDate: "2026-01-02", + endDate: null, + configuration: "configured", + }); + const changed = f.workspace().update(account.id, values(f.account), audit, f.context); + + assert.equal(changed.isSuccess, endDate !== null); + if (!changed.isSuccess) { + assert.equal(changed.error.code, "ACCOUNT_USAGE_CONFLICT"); + } + } +}); + +test("el cambio entre uso técnico y acceso no reinterpreta relaciones actuales ni históricas", () => { + for (const usage of ["personal", "shared", "technical"] as const) { + for (const endDate of [null, "2026-01-02"] as const) { + const f = fixture(); + const account = f.add({ ...f.account, usage }); + + f.add({ + kind: "account_person", + accountId: account.id.toPrimitive(), + personId: f.person.id.toPrimitive(), + startDate: "2026-01-01", + endDate, + configuration: usage === "technical" ? null : endDate ? "removed" : "configured", + }); + const nextUsage = usage === "technical" ? "personal" : "technical"; + const changed = f + .workspace() + .update(account.id, values({ ...f.account, usage: nextUsage }), audit, f.context); + + assert.ok(!changed.isSuccess); + assert.equal(changed.error.code, "ACCOUNT_USAGE_CONFLICT"); + assert.equal(account.history.length, 1); + } + } +}); + +test("personal y compartida permiten cambiar el uso conservando la relación con una persona", () => { + for (const usage of ["personal", "shared"] as const) { + const f = fixture(); + const account = f.add({ ...f.account, usage }); + const relation = f.add({ + kind: "account_person", + accountId: account.id.toPrimitive(), + personId: f.person.id.toPrimitive(), + startDate: "2026-01-01", + endDate: null, + configuration: "configured", + }); + const changed = f + .workspace() + .update( + account.id, + values({ ...f.account, usage: usage === "personal" ? "shared" : "personal" }), + audit, + f.context + ); + + assert.ok(changed.isSuccess); + assert.equal( + changed.data.items.find((item) => item.id.equals(relation.id)), + relation + ); + } +}); test("cerrar una autorización configurada deja retirada pendiente y cerrar una pendiente no inventa un acceso", () => { const f = fixture(); const account = f.add(f.account); diff --git a/modules/companies/src/api/infrastructure/http/access.routes.ts b/modules/companies/src/api/infrastructure/http/access.routes.ts index 2c923b36..f7cfb646 100644 --- a/modules/companies/src/api/infrastructure/http/access.routes.ts +++ b/modules/companies/src/api/infrastructure/http/access.routes.ts @@ -4,6 +4,7 @@ import { Router } from "express"; import { z } from "zod/v4"; import { + AccessAccountParamsSchema, AccessItemParamsSchema, AccessSaveRequestSchema, AccessScopeParamsSchema, @@ -63,6 +64,26 @@ export function registerAccessRoutes( ) { const router = Router(); + router.post("/:companyId/:id/delete", (request, response, next) => { + const params = AccessAccountParamsSchema.safeParse(request.params); + + if ( + !( + params.success && + z.strictObject({}).safeParse(request.body).success && + z.strictObject({}).safeParse(request.query).success + ) + ) { + sendError(response, "INVALID_REQUEST", 400); + + return; + } + useCases + .removeAccount(params.data.companyId, params.data.id) + .then((result) => sendResult(response, result, params.data.companyId, 200)) + .catch(next); + }); + router.get("/:scope", (request, response, next) => { const scope = AccessScopeParamsSchema.safeParse(request.params); diff --git a/modules/companies/src/api/infrastructure/persistence/access-persistence.ts b/modules/companies/src/api/infrastructure/persistence/access-persistence.ts index f73f5fd4..dc73f1ea 100644 --- a/modules/companies/src/api/infrastructure/persistence/access-persistence.ts +++ b/modules/companies/src/api/infrastructure/persistence/access-persistence.ts @@ -31,6 +31,7 @@ import { } from "./access-relational"; import { migrateDirectoryContexts } from "./directory-context-migration"; import { migrateLocalIdentityEnvironments } from "./local-identity-migration"; +import { removeAccessAccount } from "./remove-access-account"; class WorkspaceModel extends Model< InferAttributes, @@ -384,6 +385,25 @@ export class SequelizeAccessRepository implements IAccessRepository { return this.database.transaction((transaction) => this.load(companyId, transaction, false)); } + removeAccount(companyId: UniqueID, accountId: UniqueID) { + return this.database.transaction(async (transaction) => { + const scope = Maybe.some(companyId); + const loaded = await this.load(scope, transaction, true); + + if (!loaded.isSuccess) { + return loaded; + } + const account = loaded.data.workspace.items.find((item) => item.id.equals(accountId)); + + if (account?.values.data.kind !== "account") { + return Result.fail(new AccessError("ACCESS_NOT_FOUND")); + } + const removed = await removeAccessAccount(this.database, accountId, transaction); + + return removed.isSuccess ? this.load(scope, transaction, false) : removed; + }); + } + update(companyId: Maybe, action: Parameters[1]) { return this.database.transaction((transaction) => this.updateInTransaction(companyId, action, transaction) diff --git a/modules/companies/src/api/infrastructure/persistence/remove-access-account.ts b/modules/companies/src/api/infrastructure/persistence/remove-access-account.ts new file mode 100644 index 00000000..cd41ee7f --- /dev/null +++ b/modules/companies/src/api/infrastructure/persistence/remove-access-account.ts @@ -0,0 +1,76 @@ +import type { UniqueID } from "@repo/rdx-ddd"; +import { Result } from "@repo/rdx-utils"; +import type { Sequelize, Transaction } from "sequelize"; +import { QueryTypes } from "sequelize"; +import { z } from "zod/v4"; + +import { AccessError } from "../../domain/access/access-error"; + +import { relationalIdentifier } from "./relational-sql"; + +const referenceSchema = z.array(z.object({ tableName: z.string(), columnName: z.string() })); +const ownedReferences = new Set([ + "access_account_values.ownerId", + "access_revisions.itemId", + "access_references.itemId", + "access_person_references.itemId", +]); + +/** Elimina únicamente cuentas sin referencias externas, incluidas las históricas. */ +export async function removeAccessAccount( + database: Sequelize, + accountId: UniqueID, + transaction: Transaction +) { + const replacements = { id: accountId.toPrimitive() }; + + // El bloqueo y las FK RESTRICT impiden nuevas asociaciones durante el borrado. + await database.query("SELECT id FROM access_items WHERE id=:id FOR UPDATE", { + replacements, + type: QueryTypes.SELECT, + transaction, + }); + const references = referenceSchema.parse( + await database.query( + "SELECT TABLE_NAME AS tableName,COLUMN_NAME AS columnName FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA=DATABASE() AND REFERENCED_TABLE_NAME='access_items' AND REFERENCED_COLUMN_NAME='id'", + { type: QueryTypes.SELECT, transaction } + ) + ); + + for (const reference of references) { + if (ownedReferences.has(`${reference.tableName}.${reference.columnName}`)) { + continue; + } + const rows = await database.query( + `SELECT 1 FROM ${relationalIdentifier(reference.tableName)} WHERE ${relationalIdentifier(reference.columnName)}=:id LIMIT 1 FOR UPDATE`, + { replacements, type: QueryTypes.SELECT, transaction } + ); + + if (rows.length) { + return Result.fail(new AccessError("ACCOUNT_IN_USE")); + } + } + await database.query("DELETE FROM access_references WHERE itemId=:id", { + replacements, + transaction, + }); + await database.query("DELETE FROM access_person_references WHERE itemId=:id", { + replacements, + transaction, + }); + await database.query( + "DELETE FROM access_account_revision_values WHERE ownerId IN (SELECT id FROM access_revisions WHERE itemId=:id)", + { replacements, transaction } + ); + await database.query("DELETE FROM access_revisions WHERE itemId=:id", { + replacements, + transaction, + }); + await database.query("DELETE FROM access_account_values WHERE ownerId=:id", { + replacements, + transaction, + }); + await database.query("DELETE FROM access_items WHERE id=:id", { replacements, transaction }); + + return Result.ok(undefined); +} diff --git a/modules/companies/src/common/dto/request/access.request.dto.ts b/modules/companies/src/common/dto/request/access.request.dto.ts index 238f9090..107022fd 100644 --- a/modules/companies/src/common/dto/request/access.request.dto.ts +++ b/modules/companies/src/common/dto/request/access.request.dto.ts @@ -9,3 +9,5 @@ export const AccessScopeParamsSchema = z.strictObject({ }); export const AccessItemParamsSchema = AccessScopeParamsSchema.extend({ id: z.uuid() }); + +export const AccessAccountParamsSchema = z.strictObject({ companyId: z.uuid(), id: z.uuid() }); diff --git a/modules/companies/src/common/locales/en.json b/modules/companies/src/common/locales/en.json index 7723b242..2be23477 100644 --- a/modules/companies/src/common/locales/en.json +++ b/modules/companies/src/common/locales/en.json @@ -1175,7 +1175,7 @@ "no": "No", "noPermissions": "Define permissions for the selected resource type first.", "invalid": "Check required fields and formats.", - "accountHelp": "These accounts do not sign in to Metis Desk. System, environment and usage are fixed at creation. Passwords are not stored here.", + "accountHelp": "These accounts do not grant access to Metis Desk. System and environment are fixed after creation. You can change usage if it is compatible with recorded person relationships. Passwords are not stored here.", "coverageHelp": "Link a need to a grant and the person's account relationship. For a group grant, also select the account's membership.", "templateHelp": "Templates help create groups. Changes do not update existing groups.", "formHelp": "Changes retain their history. Without an end date, a relationship remains open.", @@ -1216,13 +1216,20 @@ "SCOPE_MISMATCH": "Entries do not have compatible scope, system or environment.", "UNAUTHENTICATED": "Sign in to continue.", "FORBIDDEN": "This action is not allowed.", - "INTERNAL_ERROR": "The action could not be completed." + "INTERNAL_ERROR": "The action could not be completed.", + "ACCOUNT_IN_USE": "This account has current or historical relationships and cannot be deleted. You can deactivate it to preserve its references.", + "ACCOUNT_USAGE_CONFLICT": "The selected usage is incompatible with recorded person relationships. Personal accounts cannot have overlapping holders. Accounts with person relationships cannot switch between technical and access usage." }, "directoryEnvironment": "Domain environment: {{name}}", "clearEnvironment": "Clear environment filter", "resourceFilter": "Filtered resource: {{name}}", "clearResource": "Clear resource filter", - "environmentFilter": "Environment: {{name}}" + "environmentFilter": "Environment: {{name}}", + "deleteAccount": { + "title": "Delete account", + "description": "Permanently delete “{{name}}” and its history? This is only allowed if it has no recorded relationships, including historical ones. The account in the external system is not deleted.", + "pending": "Deleting…" + } }, "windowsDomain": { "accountsAndGroups": "Active Directory accounts and groups", diff --git a/modules/companies/src/common/locales/es.json b/modules/companies/src/common/locales/es.json index 66dd359d..e23458e8 100644 --- a/modules/companies/src/common/locales/es.json +++ b/modules/companies/src/common/locales/es.json @@ -1175,7 +1175,7 @@ "no": "No", "noPermissions": "Define primero permisos para el tipo de recurso seleccionado.", "invalid": "Revisa los campos obligatorios y sus formatos.", - "accountHelp": "Estas cuentas no permiten entrar en Metis Desk. Sistema, entorno y uso quedan fijos desde el alta. Las contraseñas no se almacenan aquí.", + "accountHelp": "Estas cuentas no permiten entrar en Metis Desk. Sistema y entorno quedan fijos desde el alta. Puedes cambiar el uso si es compatible con las relaciones con personas registradas. Las contraseñas no se almacenan aquí.", "coverageHelp": "Vincula la necesidad con un permiso y la relación de la persona con la cuenta. Si el permiso viene de un grupo, selecciona también su pertenencia.", "templateHelp": "La plantilla facilita el alta de grupos. Sus cambios no modifican grupos existentes.", "formHelp": "Los cambios conservan el historial. Sin fecha de fin, la relación permanece abierta.", @@ -1216,13 +1216,20 @@ "SCOPE_MISMATCH": "Los elementos no pertenecen al ámbito, sistema o entorno compatibles.", "UNAUTHENTICATED": "Inicia sesión para continuar.", "FORBIDDEN": "No se puede realizar esta operación.", - "INTERNAL_ERROR": "No se ha podido completar la operación." + "INTERNAL_ERROR": "No se ha podido completar la operación.", + "ACCOUNT_IN_USE": "La cuenta tiene relaciones registradas, actuales o históricas, y no se puede eliminar. Puedes desactivarla para conservar sus referencias.", + "ACCOUNT_USAGE_CONFLICT": "El uso seleccionado es incompatible con las relaciones con personas registradas. Una cuenta personal no admite titulares con periodos solapados. Las cuentas con relaciones no pueden cambiar entre uso técnico y de acceso." }, "directoryEnvironment": "Entorno del dominio: {{name}}", "clearEnvironment": "Quitar filtro de entorno", "resourceFilter": "Recurso filtrado: {{name}}", "clearResource": "Quitar filtro de recurso", - "environmentFilter": "Entorno: {{name}}" + "environmentFilter": "Entorno: {{name}}", + "deleteAccount": { + "title": "Eliminar cuenta", + "description": "¿Eliminar definitivamente «{{name}}» y su historial? Solo se permite si no tiene relaciones registradas, incluidas las históricas. La cuenta del sistema externo no se elimina.", + "pending": "Eliminando…" + } }, "windowsDomain": { "accountsAndGroups": "Cuentas y grupos de Active Directory", diff --git a/modules/companies/src/web/access/delete/api/delete-account.api.ts b/modules/companies/src/web/access/delete/api/delete-account.api.ts new file mode 100644 index 00000000..b8532b85 --- /dev/null +++ b/modules/companies/src/web/access/delete/api/delete-account.api.ts @@ -0,0 +1,23 @@ +import { csrfFetch } from "@metis/core/client"; +import { z } from "zod/v4"; + +import { AccessResponseSchema } from "../../../../common"; +import { AccessApiError } from "../../shared/api/access-api-error"; + +export async function deleteAccount(companyId: string, accountId: string) { + const response = await csrfFetch(`/api/access/${companyId}/${accountId}/delete`, { + method: "POST", + credentials: "same-origin", + headers: { "content-type": "application/json" }, + body: JSON.stringify({}), + }); + const json: unknown = await response.json(); + + if (!response.ok) { + const parsed = z.object({ code: z.string() }).safeParse(json); + + throw new AccessApiError(parsed.success ? parsed.data.code : "INTERNAL_ERROR"); + } + + return AccessResponseSchema.parse(json); +} diff --git a/modules/companies/src/web/access/delete/ui/account-delete-dialog.tsx b/modules/companies/src/web/access/delete/ui/account-delete-dialog.tsx new file mode 100644 index 00000000..78b3545c --- /dev/null +++ b/modules/companies/src/web/access/delete/ui/account-delete-dialog.tsx @@ -0,0 +1,47 @@ +import { ConfirmDeleteDialog } from "@repo/rdx-ui/components/confirm-delete-dialog"; +import { useMutation, useQueryClient } from "@tanstack/react-query"; +import { useTranslation } from "react-i18next"; + +import type { AccessItemDTO } from "../../../../common"; +import { AccessApiError } from "../../shared/api/access-api-error"; +import { accessKeys } from "../../shared/queries"; +import { deleteAccount } from "../api/delete-account.api"; + +export function AccountDeleteDialog({ + account, + companyId, + onClose, +}: { + account: AccessItemDTO; + companyId: string; + onClose: () => void; +}) { + const { t } = useTranslation("access"); + const client = useQueryClient(); + const mutation = useMutation({ + mutationFn: () => deleteAccount(companyId, account.id), + onSuccess: (response) => client.setQueryData(accessKeys.scope(companyId), response), + }); + + return ( + mutation.mutateAsync()} + onOpenChange={(open) => { + if (!open) { + onClose(); + } + }} + open + pendingLabel={t("deleteAccount.pending")} + title={t("deleteAccount.title")} + /> + ); +} diff --git a/modules/companies/src/web/access/list/ui/access-row.tsx b/modules/companies/src/web/access/list/ui/access-row.tsx index 8a70aa2f..2503543f 100644 --- a/modules/companies/src/web/access/list/ui/access-row.tsx +++ b/modules/companies/src/web/access/list/ui/access-row.tsx @@ -15,6 +15,7 @@ export function AccessCell({ people, onEdit, onHistory, + onDelete, }: { column: "name" | "state" | "review" | "actions"; item: AccessItemDTO; @@ -23,6 +24,7 @@ export function AccessCell({ people: readonly PersonDTO[]; onEdit: () => void; onHistory: () => void; + onDelete?: () => void; }) { const { t } = useTranslation("access"); const own = item.companyId === (scope === "global" ? null : scope); @@ -87,6 +89,11 @@ export function AccessCell({ {" "}

{" "} {" "} diff --git a/modules/companies/src/web/access/list/ui/access-workspace.tsx b/modules/companies/src/web/access/list/ui/access-workspace.tsx index 9d9cd8e5..4c14739c 100644 --- a/modules/companies/src/web/access/list/ui/access-workspace.tsx +++ b/modules/companies/src/web/access/list/ui/access-workspace.tsx @@ -1,3 +1,4 @@ +import type { EntityColumn } from "@repo/rdx-ui/components/entity-list"; import { EntityListHeader, EntityTable } from "@repo/rdx-ui/components/entity-list"; import { KeyRoundIcon } from "@repo/rdx-ui/lib/icons"; import { Button } from "@repo/shadcn-ui/components/button"; @@ -8,6 +9,7 @@ import type { AccessItemDTO, AccessResponseDTO } from "../../../../common"; import { LocalIdentityOwner } from "../../../local-identity-environments/detail/ui/local-identity-owner"; import type { LocalIdentityOperation } from "../../../local-identity-environments/manage/ui/local-identity-editor"; import { LocalIdentityEditor } from "../../../local-identity-environments/manage/ui/local-identity-editor"; +import { AccountDeleteDialog } from "../../delete/ui/account-delete-dialog"; import { AccessHelpDialog } from "../../help"; import { AccessHistory } from "../../history"; import { AccessEditorDialog } from "../../shared"; @@ -20,6 +22,7 @@ import { AccessCell } from "./access-row"; export function AccessWorkspacePage(props: AccessWorkspacePageProps) { const { scope, people = [] } = props; const [localOperation, setLocalOperation] = useState(); + const [deletingId, setDeletingId] = useState(); const { rootRef, state, @@ -50,6 +53,42 @@ export function AccessWorkspacePage(props: AccessWorkspacePageProps) { } = useAccessWorkspacePageController(props); const { t, i18n } = useTranslation("access"); const tableData: AccessResponseDTO = data ?? { items: [], reviews: [], coverage: [] }; + const deleting = tableData.items.find((item) => item.id === deletingId); + + const accountPersonAccount = (item: AccessItemDTO) => { + if (item.values.kind !== "account_person") { + return "—"; + } + const accountId = item.values.accountId; + const account = tableData.items.find((entry) => entry.id === accountId); + + return account?.values.kind === "account" ? account.values.login : "—"; + }; + + const accountPersonName = (item: AccessItemDTO) => { + if (item.values.kind !== "account_person") { + return "—"; + } + const personId = item.values.personId; + + return people.find((person) => person.id === personId)?.name ?? "—"; + }; + + const accountPersonColumns: EntityColumn[] = [ + { + id: "accountId", + label: t("accountId"), + hideable: false, + value: accountPersonAccount, + render: accountPersonAccount, + }, + { + id: "personId", + label: t("personId"), + value: accountPersonName, + render: accountPersonName, + }, + ]; const groupEnvironment = (item: AccessItemDTO) => { if (item.values.kind !== "group") { @@ -166,23 +205,26 @@ export function AccessWorkspacePage(props: AccessWorkspacePageProps) { accessLabel(item, tableData.items, people), - hideable: false, - render: (item) => ( - setEditor(item.id)} - onHistory={() => setHistory(item.id)} - people={people} - scope={scope} - /> - ), - }, + ...accountPersonColumns.filter(() => kind === "account_person"), + ...[ + { + id: "name", + label: t("name"), + value: (item: AccessItemDTO) => accessLabel(item, tableData.items, people), + hideable: false, + render: (item: AccessItemDTO) => ( + setEditor(item.id)} + onHistory={() => setHistory(item.id)} + people={people} + scope={scope} + /> + ), + }, + ].filter(() => kind !== "account_person"), ...groupColumns, ...(["account", "group", "environment"].includes(kind) ? [ @@ -262,6 +304,7 @@ export function AccessWorkspacePage(props: AccessWorkspacePageProps) { column="actions" data={tableData} item={item} + onDelete={() => setDeletingId(item.id)} onEdit={() => setEditor(item.id)} onHistory={() => setHistory(item.id)} people={people} @@ -286,6 +329,13 @@ export function AccessWorkspacePage(props: AccessWorkspacePageProps) { /> {data && ( <> + {deleting && ( + setDeletingId(undefined)} + /> + )} assert.ok(markup.includes("Fecha de caducidad")); assert.ok(markup.includes('aria-label="Añadir sistema"')); assert.equal(markup.includes('aria-label="Añadir entorno"'), false); - assert.ok(markup.includes("Sistema, entorno y uso quedan fijos")); + assert.ok(markup.includes("Sistema y entorno quedan fijos")); assert.equal(markup.includes('type="password"'), false); const field = markup.match(/]*name="expiresOn"[^>]*>/)?.[0]; diff --git a/modules/companies/src/web/access/shared/helpers/access-fields.ts b/modules/companies/src/web/access/shared/helpers/access-fields.ts index 249b7431..b814c8d4 100644 --- a/modules/companies/src/web/access/shared/helpers/access-fields.ts +++ b/modules/companies/src/web/access/shared/helpers/access-fields.ts @@ -47,7 +47,6 @@ export const accessFields: Record = { key: "usage", type: "select", required: true, - fixed: true, options: ["personal", "shared", "technical"], }, active, diff --git a/modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx b/modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx index f40a030e..50081ffd 100644 --- a/modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx +++ b/modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx @@ -1,4 +1,5 @@ import { BrowserLink } from "@metis/core/client"; +import { SoftwareProductName } from "@metis/resources/client"; import { FormDialog } from "@repo/rdx-ui/components/form-dialog"; import { useTranslation } from "react-i18next"; @@ -8,10 +9,12 @@ export function ApplicationHistoryDialog({ configuration, onClose, resourceName, + resourceIcon, resourceHref, }: { onClose: () => void; resourceName: (id: string) => string; + resourceIcon?: ((id: string) => string | null | undefined) | undefined; resourceHref: (id: string) => string; configuration: ApplicationConfigurationDTO; }) { @@ -41,7 +44,10 @@ export function ApplicationHistoryDialog({

- {resourceName(revision.values.resourceId)} +

diff --git a/modules/companies/src/web/application-configurations/list/controllers/use-application-configurations-page-controller.ts b/modules/companies/src/web/application-configurations/list/controllers/use-application-configurations-page-controller.ts index 1b9b6526..cc1f3ab1 100644 --- a/modules/companies/src/web/application-configurations/list/controllers/use-application-configurations-page-controller.ts +++ b/modules/companies/src/web/application-configurations/list/controllers/use-application-configurations-page-controller.ts @@ -41,15 +41,9 @@ export function useApplicationConfigurationsPageController({ const references = useResourceApplicationReferences( company.id, "application-configuration", - resources.data - ? configurations - .filter( - (item) => - (!initialProfileId || item.values.profileId === initialProfileId) && - !resources.data.resources.some((resource) => resource.id === item.values.resourceId) - ) - .map((item) => item.values.resourceId) - : [] + configurations + .filter((item) => !initialProfileId || item.values.profileId === initialProfileId) + .map((item) => item.values.resourceId) ); const reference = (id: string) => references.references.find((item) => item.id === id); @@ -59,6 +53,8 @@ export function useApplicationConfigurationsPageController({ resources.data?.resources.find((item) => item.id === id)?.values.name ?? "—"; + const icon = (id: string) => reference(id)?.iconPng; + const isGlobal = (id: string) => reference(id)?.scope === "global"; const resourceHref = (id: string) => @@ -108,6 +104,7 @@ export function useApplicationConfigurationsPageController({ resource, references, isGlobal, + icon, resourceHref, label, filtered: denied ? [] : filtered, diff --git a/modules/companies/src/web/application-configurations/list/ui/application-configurations-page.tsx b/modules/companies/src/web/application-configurations/list/ui/application-configurations-page.tsx index 83c6e98f..bd1e2947 100644 --- a/modules/companies/src/web/application-configurations/list/ui/application-configurations-page.tsx +++ b/modules/companies/src/web/application-configurations/list/ui/application-configurations-page.tsx @@ -1,4 +1,4 @@ -import { SoftwareReferenceFeedback } from "@metis/resources/client"; +import { SoftwareProductName, SoftwareReferenceFeedback } from "@metis/resources/client"; import { EntityAction, EntityListHeader, @@ -35,6 +35,7 @@ export function ApplicationConfigurationsPage(props: ApplicationConfigurationsPa resource, references, isGlobal, + icon, resourceHref, label, filtered, @@ -86,7 +87,10 @@ export function ApplicationConfigurationsPage(props: ApplicationConfigurationsPa onClick={() => setView(item.id)} type="button" > - {resource(item.values.resourceId)} + {isGlobal(item.values.resourceId) && ( {t("software.global")} @@ -187,6 +191,7 @@ export function ApplicationConfigurationsPage(props: ApplicationConfigurationsPa configuration={viewed} onClose={() => setView(undefined)} resourceHref={resourceHref} + resourceIcon={icon} resourceName={resource} /> )} diff --git a/modules/companies/src/web/application-configurations/shared/helpers/application-configuration-form-values.ts b/modules/companies/src/web/application-configurations/shared/helpers/application-configuration-form-values.ts index d2a850a2..51866a48 100644 --- a/modules/companies/src/web/application-configurations/shared/helpers/application-configuration-form-values.ts +++ b/modules/companies/src/web/application-configurations/shared/helpers/application-configuration-form-values.ts @@ -1,3 +1,4 @@ +import { resourceIcon } from "@metis/resources/client"; import type { CatalogItemDTO, ResourceDTO } from "@metis/resources/common"; import type { @@ -25,7 +26,11 @@ export function applicationOptions( (item) => templates.has(item.values.templateId) && (item.values.active || item.id === selected) ) - .map((item) => ({ value: item.id, label: item.values.name })); + .map((item) => ({ + value: item.id, + label: item.values.name, + iconPng: resourceIcon(item, items), + })); } export function applicationDefaults( diff --git a/modules/companies/src/web/shared/client-contracts.test.ts b/modules/companies/src/web/shared/client-contracts.test.ts index bf24cb68..c61887f4 100644 --- a/modules/companies/src/web/shared/client-contracts.test.ts +++ b/modules/companies/src/web/shared/client-contracts.test.ts @@ -4,8 +4,10 @@ import { test } from "node:test"; import { configureCsrfTokenReader } from "@metis/core/client"; import { COMPANY_LOGO_LIMITS, COMPANY_LOGO_TYPES } from "../../common"; +import { deleteAccount } from "../access/delete/api/delete-account.api"; import { getAccess } from "../access/list/api"; import { saveAccess } from "../access/shared/api"; +import { AccessApiError } from "../access/shared/api/access-api-error"; import { validateCompanyLogo } from "../companies/change-logo/helpers"; import { getCompany } from "../companies/detail/api"; import { listCompanies } from "../companies/list/api"; @@ -17,6 +19,32 @@ import { buildSiteRequest } from "../sites/shared/adapters"; const COMPANY_ID = "e0420eb9-2aab-4368-96a0-2ce83dd23eb4"; +test("el borrado de cuentas valida la respuesta, envía CSRF y conserva errores de negocio", async (context) => { + context.after(configureCsrfTokenReader(() => "a".repeat(64))); + const calls: { url: unknown; options: RequestInit }[] = []; + const snapshot = { items: [], reviews: [], coverage: [] }; + + context.mock.method(globalThis, "fetch", async (url: unknown, options: RequestInit) => { + calls.push({ url, options }); + + return Response.json(snapshot); + }); + assert.deepEqual(await deleteAccount(COMPANY_ID, COMPANY_ID), snapshot); + assert.equal(calls[0]?.url, `/api/access/${COMPANY_ID}/${COMPANY_ID}/delete`); + assert.equal(calls[0]?.options.method, "POST"); + assert.equal(calls[0]?.options.body, "{}"); + assert.equal(new Headers(calls[0]?.options.headers).get("x-csrf-token"), "a".repeat(64)); + context.mock.method(globalThis, "fetch", async () => + Response.json({ code: "ACCOUNT_IN_USE" }, { status: 409 }) + ); + await assert.rejects( + deleteAccount(COMPANY_ID, COMPANY_ID), + (error: unknown) => error instanceof AccessApiError && error.code === "ACCOUNT_IN_USE" + ); + context.mock.method(globalThis, "fetch", async () => Response.json({ items: [] })); + await assert.rejects(deleteAccount(COMPANY_ID, COMPANY_ID)); +}); + test("las consultas de compañías conservan sus rutas y rechazan respuestas inválidas", async (context) => { context.after(configureCsrfTokenReader(() => "a".repeat(64))); context.mock.method(globalThis, "fetch", async (url: unknown, options: RequestInit) => { diff --git a/modules/companies/src/web/software-installations/detail/ui/current-operating-systems.tsx b/modules/companies/src/web/software-installations/detail/ui/current-operating-systems.tsx index bc17e0da..3ecc1aa5 100644 --- a/modules/companies/src/web/software-installations/detail/ui/current-operating-systems.tsx +++ b/modules/companies/src/web/software-installations/detail/ui/current-operating-systems.tsx @@ -1,4 +1,5 @@ import { BrowserLink } from "@metis/core/client"; +import { SoftwareProductName } from "@metis/resources/client"; import { DetailPanel } from "@repo/rdx-ui/components/detail-panel"; import { LayersIcon } from "@repo/rdx-ui/lib/icons"; import { Badge } from "@repo/shadcn-ui/components/badge"; @@ -65,7 +66,7 @@ export function CurrentOperatingSystems({ - {system.name} + {t(system.scope === "global" ? "software.global" : "software.company")} diff --git a/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx b/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx index 2a35fcf4..b1882bb1 100644 --- a/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx +++ b/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx @@ -1,4 +1,5 @@ import { BrowserLink } from "@metis/core/client"; +import { SoftwareProductName } from "@metis/resources/client"; import { FormDialog } from "@repo/rdx-ui/components/form-dialog"; import type { ComponentProps } from "react"; import { useTranslation } from "react-i18next"; @@ -9,12 +10,14 @@ export function SoftwareHistoryDialog({ configuration, onClose, resourceName, + resourceIcon, resourceHref, finalFocus, }: { onClose: () => void; configuration: SoftwareInstallationDTO; resourceName: (id: string) => string; + resourceIcon?: ((id: string) => string | null | undefined) | undefined; resourceHref: (id: string) => string | undefined; finalFocus?: ComponentProps["finalFocus"]; }) { @@ -49,7 +52,10 @@ export function SoftwareHistoryDialog({

{productHref ? ( - {resourceName(revision.values.resourceId)} + ) : ( resourceName(revision.values.resourceId) diff --git a/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx b/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx index 72d1651f..5874fb56 100644 --- a/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx +++ b/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx @@ -1,5 +1,6 @@ import { BrowserLink, useEntryState, useListQuery } from "@metis/core/client"; import { + SoftwareProductName, SoftwareReferenceFeedback, catalogApi, catalogKeys, @@ -69,15 +70,9 @@ export function SoftwareInstallationsPanel({ }); const references = useSoftwareReferences( companyId, - resources.data - ? (query.data?.configurations - .filter( - (item) => - item.values.assetId === assetId && - !resources.data.resources.some((resource) => resource.id === item.values.resourceId) - ) - .map((item) => item.values.resourceId) ?? []) - : [] + query.data?.configurations + .filter((item) => item.values.assetId === assetId) + .map((item) => item.values.resourceId) ?? [] ); const ready = query.isSuccess && resources.isSuccess && catalog.isSuccess; const { state, denied } = useCompanyListState([query, resources, catalog]); @@ -88,7 +83,7 @@ export function SoftwareInstallationsPanel({ resetPage, } = useDetailTableContext(stateScope, "software", state.status === "ready"); - const { options, licenseOptions, name, href, usage } = softwareInstallationOptions({ + const { options, licenseOptions, name, href, usage, icon } = softwareInstallationOptions({ companyId, resources: resources.data?.resources ?? [], catalog: catalog.data?.items ?? [], @@ -145,7 +140,10 @@ export function SoftwareInstallationsPanel({ value: (item) => name(item.values.resourceId), render: (item) => ( - {name(item.values.resourceId)} + {isGlobal(item.values.resourceId) && ( {t("software.global")} @@ -278,6 +276,7 @@ export function SoftwareInstallationsPanel({ configuration={viewed} onClose={() => setView(undefined)} resourceHref={href} + resourceIcon={icon} resourceName={name} /> )} diff --git a/modules/companies/src/web/software-installations/shared/helpers/current-operating-systems.ts b/modules/companies/src/web/software-installations/shared/helpers/current-operating-systems.ts index f8e628af..b4407bcb 100644 --- a/modules/companies/src/web/software-installations/shared/helpers/current-operating-systems.ts +++ b/modules/companies/src/web/software-installations/shared/helpers/current-operating-systems.ts @@ -57,6 +57,7 @@ export function getCurrentOperatingSystems( return [ { + ...(product.iconPng ? { iconPng: product.iconPng } : {}), id: item.id, resourceId: product.id, scope: product.scope, diff --git a/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts b/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts index 7a647158..3a60847b 100644 --- a/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts +++ b/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts @@ -1,4 +1,4 @@ -import { softwareReferenceHref } from "@metis/resources/client"; +import { resourceIcon, softwareReferenceHref } from "@metis/resources/client"; import type { CatalogItemDTO, ResourceDTO, SoftwareReference } from "@metis/resources/common"; import type { SoftwareInstallationDTO } from "../../../../common"; @@ -54,6 +54,9 @@ export function softwareInstallationOptions({ const name = (id: string) => resolved.find((item) => item.id === id)?.name ?? resource(id)?.values.name ?? "—"; + const icon = (id: string) => + resolved.find((item) => item.id === id)?.iconPng ?? resourceIcon(resource(id), catalog); + const href = (id: string) => softwareReferenceHref( companyId, @@ -69,6 +72,7 @@ export function softwareInstallationOptions({ ) .map((item) => ({ value: item.id, + iconPng: icon(item.id), label: `${item.values.name} · ${typeLabel(usage(item.id) === "os" ? "os" : "application")}`, })); const expiryId = catalog.find((item) => item.builtinKey === "field:expires")?.id; @@ -90,5 +94,5 @@ export function softwareInstallationOptions({ }; }); - return { options, licenseOptions, name, href, usage }; + return { options, licenseOptions, name, href, usage, icon }; } diff --git a/modules/companies/src/web/work-environments/detail/ui/environment-content.tsx b/modules/companies/src/web/work-environments/detail/ui/environment-content.tsx index 2079decd..87d02dc2 100644 --- a/modules/companies/src/web/work-environments/detail/ui/environment-content.tsx +++ b/modules/companies/src/web/work-environments/detail/ui/environment-content.tsx @@ -54,12 +54,7 @@ export function EnvironmentContent({ company.id, "application-configuration", sources.applications - .filter( - (item) => - item.companyId === company.id && - item.values.profileId === profile.id && - !sources.resources.some((resource) => resource.id === item.values.resourceId) - ) + .filter((item) => item.companyId === company.id && item.values.profileId === profile.id) .map((item) => item.values.resourceId) ); const model = buildEnvironment(profile, { diff --git a/modules/companies/src/web/work-environments/detail/ui/environment-section.tsx b/modules/companies/src/web/work-environments/detail/ui/environment-section.tsx index ddf0985b..2be15f3f 100644 --- a/modules/companies/src/web/work-environments/detail/ui/environment-section.tsx +++ b/modules/companies/src/web/work-environments/detail/ui/environment-section.tsx @@ -1,4 +1,5 @@ import { BrowserLink } from "@metis/core/client"; +import { SoftwareProductName } from "@metis/resources/client"; import { Badge } from "@repo/shadcn-ui/components/badge"; import { Button } from "@repo/shadcn-ui/components/button"; import { Card, CardContent } from "@repo/shadcn-ui/components/card"; @@ -44,7 +45,13 @@ export function EnvironmentSection({

{row.resourceHref ? ( - {row.name} + + {row.kind === "applications" ? ( + + ) : ( + row.name + )} + ) : ( row.name )} diff --git a/modules/companies/src/web/work-environments/shared/helpers/work-environment.model.ts b/modules/companies/src/web/work-environments/shared/helpers/work-environment.model.ts index e8cf8d6e..2466d551 100644 --- a/modules/companies/src/web/work-environments/shared/helpers/work-environment.model.ts +++ b/modules/companies/src/web/work-environments/shared/helpers/work-environment.model.ts @@ -25,6 +25,7 @@ export type EnvironmentRow = Readonly<{ name: string; global?: boolean; resourceHref?: string; + iconPng?: string | null | undefined; state: "pending" | "configured" | "removal_pending"; review: boolean; notes: string | null; @@ -254,6 +255,9 @@ function appendApplicationRows( append({ id: item.id, kind: "applications", + iconPng: sources.applicationReferences?.find( + (reference) => reference.id === item.values.resourceId + )?.iconPng, name: sources.applicationReferences?.find((reference) => reference.id === item.values.resourceId) ?.name ?? diff --git a/modules/companies/src/web/workstations/detail/controllers/use-workplace-map-model.ts b/modules/companies/src/web/workstations/detail/controllers/use-workplace-map-model.ts index efa5a37f..0644e750 100644 --- a/modules/companies/src/web/workstations/detail/controllers/use-workplace-map-model.ts +++ b/modules/companies/src/web/workstations/detail/controllers/use-workplace-map-model.ts @@ -33,6 +33,7 @@ export function useWorkplaceMapModel(companyId: string, c: WorkstationDetailCont ); return { + ...(reference?.iconPng ? { iconPng: reference.iconPng } : {}), name: reference?.name ?? local?.values.name ?? "—", href: reference || local ? softwareReferenceHref(companyId, id, reference) : undefined, diff --git a/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts b/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts index f9acd979..5fbef579 100644 --- a/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts +++ b/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts @@ -18,6 +18,7 @@ export type WorkplaceEquipmentData = WorkplaceNodeActionPresentation & { }; export type WorkplaceSoftwareData = WorkplaceNodeActionPresentation & { + iconPng?: string | null | undefined; name: string; href: string | undefined; state: SoftwareInstallationDTO["values"]["state"]; @@ -42,7 +43,11 @@ export function workplaceMapModel({ assets: readonly AssetDTO[]; catalog: readonly CatalogItemDTO[]; installations: readonly SoftwareInstallationDTO[]; - softwareReference: (id: string) => { name: string; href: string | undefined }; + softwareReference: (id: string) => { + name: string; + href: string | undefined; + iconPng?: string | null | undefined; + }; }) { const equipment = workstationEquipment(companyId, workstation, assets); const nodes: WorkplaceMapNode[] = equipment.members.map(({ id, asset, principal }) => { diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx index 22c0c3e2..381e1d42 100644 --- a/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx +++ b/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx @@ -60,6 +60,7 @@ export function WorkplaceSoftwareActionDialog({ resourceHref={(id) => product(id) || resource(id) ? softwareReferenceHref(companyId, id, product(id)) : undefined } + resourceIcon={(id) => product(id)?.iconPng} resourceName={(id) => product(id)?.name ?? resource(id)?.values.name ?? "—"} /> ); diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx index bf28976f..7869d189 100644 --- a/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx +++ b/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx @@ -1,5 +1,5 @@ import { BrowserLink } from "@metis/core/client"; -import { LayersIcon } from "@repo/rdx-ui/lib/icons"; +import { ResourceImage } from "@metis/resources/client"; import { Badge } from "@repo/shadcn-ui/components/badge"; import { Tooltip, TooltipContent, TooltipTrigger } from "@repo/shadcn-ui/components/tooltip"; import { cn } from "@repo/shadcn-ui/lib/utils"; @@ -18,7 +18,9 @@ export function WorkplaceSoftwareCard({ data }: { data: WorkplaceSoftwareData }) data-workplace-node-id={data.nodeId} data-workplace-software > -