From 2f3b9fbb15d0a141ecd37393e531e0719beb42c0 Mon Sep 17 00:00:00 2001 From: Daniel Fu Date: Wed, 19 Nov 2025 16:45:29 +0800 Subject: [PATCH 1/7] refactor(monorepo): rewrite of monorepo structure --- .syncpackrc.json | 56 - apps/api/package.json | 21 +- apps/api/prisma/client.ts | 7 - apps/api/prisma/index.ts | 2 - .../src/attachments/attachments.service.ts | 2 +- apps/api/src/comments/comments.controller.ts | 2 +- apps/api/src/comments/comments.service.ts | 2 +- .../src/comments/dto/create-comment.dto.ts | 2 +- apps/api/src/tasks/attachments.service.ts | 2 +- apps/api/src/tasks/tasks.controller.ts | 2 +- apps/api/src/vendors/vendors.service.ts | 2 +- apps/api/tsconfig.json | 3 +- apps/app/next.config.ts | 4 +- apps/app/package.json | 49 +- apps/app/prisma/client.ts | 7 - apps/app/prisma/index.ts | 2 - apps/app/src/actions/add-comment.ts | 2 +- apps/app/src/actions/change-organization.ts | 2 +- .../create-context-entry-action.ts | 2 +- .../delete-context-entry-action.ts | 2 +- .../update-context-entry-action.ts | 2 +- .../actions/controls/create-control-action.ts | 2 +- apps/app/src/actions/files/upload-file.ts | 2 +- .../delete-integration-connection.ts | 2 +- .../update-integration-settings-action.ts | 2 +- .../actions/organization/accept-invitation.ts | 2 +- .../add-frameworks-to-organization-action.ts | 2 +- .../organization/create-api-key-action.ts | 2 +- .../delete-organization-action.ts | 2 +- .../organization/get-api-keys-action.ts | 2 +- .../get-organization-users-action.ts | 2 +- .../organization/lib/get-framework-names.ts | 2 +- .../lib/initialize-organization.ts | 2 +- .../actions/organization/remove-employee.ts | 2 +- .../organization/revoke-api-key-action.ts | 2 +- ...pdate-organization-advanced-mode-action.ts | 2 +- .../update-organization-name-action.ts | 2 +- .../update-organization-website-action.ts | 2 +- .../accept-requested-policy-changes.ts | 2 +- .../src/actions/policies/archive-policy.ts | 2 +- .../src/actions/policies/create-new-policy.ts | 2 +- .../app/src/actions/policies/delete-policy.ts | 2 +- .../policies/deny-requested-policy-changes.ts | 2 +- apps/app/src/actions/policies/publish-all.ts | 7 +- .../submit-policy-for-approval-action.ts | 2 +- .../actions/policies/update-policy-action.ts | 2 +- .../policies/update-policy-form-action.ts | 2 +- .../policies/update-policy-overview-action.ts | 2 +- .../src/actions/risk/create-risk-action.ts | 2 +- .../actions/risk/task/update-task-action.ts | 4 +- .../risk/update-inherent-risk-action.ts | 2 +- .../risk/update-residual-risk-action.ts | 2 +- .../risk/update-residual-risk-enum-action.ts | 2 +- .../src/actions/risk/update-risk-action.ts | 2 +- apps/app/src/actions/safe-action.ts | 2 +- apps/app/src/actions/schema.ts | 2 +- .../src/actions/tasks/create-task-action.ts | 2 +- .../actions/tasks/regenerate-task-action.ts | 2 +- .../cloud-tests/actions/connect-cloud.ts | 2 +- .../cloud-tests/actions/disconnect-cloud.ts | 2 +- .../actions/update-cloud-credentials.ts | 2 +- .../cloud-tests/components/TestsLayout.tsx | 2 +- .../app/(app)/[orgId]/cloud-tests/page.tsx | 2 +- .../ConditionalOnboardingTracker.tsx | 2 +- .../[orgId]/components/OnboardingTracker.tsx | 2 +- .../[controlId]/actions/delete-control.ts | 2 +- .../components/ControlDeleteDialog.tsx | 2 +- .../[controlId]/components/PoliciesTable.tsx | 2 +- .../components/RequirementsTable.tsx | 4 +- .../[controlId]/components/SingleControl.tsx | 2 +- .../[controlId]/components/TasksTable.tsx | 2 +- .../table/ControlRequirementsTable.tsx | 2 +- .../controls/[controlId]/data/getControl.ts | 2 +- .../data/getOrganizationControlProgress.ts | 2 +- .../[controlId]/data/getRelatedPolicies.ts | 2 +- .../(app)/[orgId]/controls/data/queries.ts | 2 +- .../[orgId]/controls/data/validations.ts | 2 +- .../src/app/(app)/[orgId]/controls/page.tsx | 2 +- .../actions/delete-framework.ts | 2 +- .../components/FrameworkOverview.tsx | 2 +- .../components/FrameworkRequirements.tsx | 2 +- .../table/FrameworkControlsTableColumns.tsx | 2 +- .../frameworks/[frameworkInstanceId]/page.tsx | 2 +- .../components/RequirementControls.tsx | 2 +- .../table/RequirementControlsTable.tsx | 2 +- .../table/RequirementControlsTableColumns.tsx | 2 +- .../requirements/[requirementKey]/page.tsx | 4 +- .../components/AddFrameworkModal.tsx | 2 +- .../components/ComplianceOverview.tsx | 2 +- .../components/FrameworksOverview.tsx | 2 +- .../frameworks/components/Overview.tsx | 2 +- .../frameworks/components/ToDoOverview.tsx | 2 +- .../[orgId]/frameworks/components/types.ts | 2 +- .../getAllFrameworkInstancesWithControls.ts | 4 +- .../data/getFrameworkWithComplianceScores.ts | 2 +- .../getSingleFrameworkInstanceWithControls.ts | 4 +- .../(app)/[orgId]/frameworks/lib/compute.ts | 6 +- .../[orgId]/frameworks/lib/getFrameworks.ts | 2 +- .../[orgId]/frameworks/lib/getPolicies.ts | 2 +- .../(app)/[orgId]/frameworks/lib/getTasks.ts | 6 +- .../app/(app)/[orgId]/frameworks/lib/utils.ts | 7 +- .../src/app/(app)/[orgId]/frameworks/page.tsx | 2 +- .../src/app/(app)/[orgId]/frameworks/types.ts | 2 +- .../app/(app)/[orgId]/integrations/page.tsx | 6 +- apps/app/src/app/(app)/[orgId]/layout.tsx | 2 +- .../[employeeId]/actions/update-employee.ts | 4 +- .../[employeeId]/components/Employee.tsx | 2 +- .../components/EmployeeDetails.tsx | 2 +- .../[employeeId]/components/EmployeeTasks.tsx | 2 +- .../components/Fields/Department.tsx | 2 +- .../[orgId]/people/[employeeId]/page.tsx | 4 +- .../all/actions/addEmployeeWithoutInvite.ts | 4 +- .../people/all/actions/removeMember.ts | 2 +- .../people/all/actions/revokeInvitation.ts | 2 +- .../people/all/actions/updateMemberRole.ts | 2 +- .../all/components/InviteMembersModal.tsx | 2 +- .../people/all/components/MemberRow.tsx | 2 +- .../all/components/MultiRoleCombobox.tsx | 2 +- .../components/MultiRoleComboboxContent.tsx | 2 +- .../components/MultiRoleComboboxTrigger.tsx | 2 +- .../all/components/PendingInvitationRow.tsx | 2 +- .../people/all/components/TeamMembers.tsx | 4 +- .../all/components/TeamMembersClient.tsx | 4 +- .../components/EmployeeCompletionChart.tsx | 2 +- .../components/EmployeesOverview.tsx | 4 +- .../[orgId]/people/devices/data/index.ts | 2 +- .../src/app/(app)/[orgId]/people/layout.tsx | 2 +- .../[orgId]/policies/(overview)/page.tsx | 2 +- .../[policyId]/actions/get-policy-pdf-url.ts | 2 +- .../[policyId]/actions/mapPolicyToControls.ts | 2 +- .../[policyId]/actions/regenerate-policy.ts | 2 +- .../actions/switch-policy-display-format.ts | 2 +- .../actions/unmapPolicyFromControl.ts | 2 +- .../[policyId]/actions/upload-policy-pdf.ts | 2 +- .../components/PolicyArchiveSheet.tsx | 2 +- ...PolicyControlMappingConfirmDeleteModal.tsx | 2 +- .../components/PolicyControlMappingModal.tsx | 2 +- .../components/PolicyControlMappings.tsx | 2 +- .../components/PolicyDeleteDialog.tsx | 2 +- .../components/PolicyHeaderActions.tsx | 17 +- .../[policyId]/components/PolicyOverview.tsx | 4 +- .../components/PolicyOverviewSheet.tsx | 2 +- .../[policyId]/components/PolicyPage.tsx | 2 +- .../[policyId]/components/RecentAuditLogs.tsx | 2 +- .../components/SubmitApprovalDialog.tsx | 2 +- .../components/UpdatePolicyOverview.tsx | 15 +- .../[orgId]/policies/[policyId]/data/index.ts | 2 +- .../editor/actions/get-policy-details.ts | 2 +- .../editor/actions/update-policy.ts | 2 +- .../editor/components/PolicyDetails.tsx | 28 +- .../all/components/policies-table-columns.tsx | 14 +- .../all/components/policies-table.tsx | 2 +- .../[orgId]/policies/all/data/queries.ts | 2 +- .../[orgId]/policies/all/data/validations.ts | 2 +- .../app/(app)/[orgId]/policies/all/page.tsx | 2 +- .../[orgId]/risk/(overview)/RisksTable.tsx | 4 +- .../[orgId]/risk/(overview)/data/getRisks.ts | 2 +- .../risk/(overview)/data/validations.ts | 2 +- .../(app)/[orgId]/risk/(overview)/page.tsx | 2 +- .../actions/regenerate-risk-mitigation.ts | 2 +- .../app/(app)/[orgId]/risk/[riskId]/page.tsx | 2 +- .../risk/[riskId]/tasks/[taskId]/page.tsx | 2 +- .../actions/export-questionnaire.ts | 62 +- .../actions/upload-questionnaire-file.ts | 38 +- .../[orgId]/security-questionnaire/page.tsx | 2 +- .../(app)/[orgId]/settings/api-keys/page.tsx | 2 +- .../settings/context-hub/ContextTable.tsx | 2 +- .../context-hub/components/context-form.tsx | 2 +- .../components/context-hub-list.tsx | 2 +- .../context-hub/components/context-list.tsx | 2 +- .../components/table/ContextColumns.tsx | 2 +- .../context-hub/data/getContextEntries.ts | 2 +- .../src/app/(app)/[orgId]/settings/page.tsx | 2 +- .../(app)/[orgId]/settings/secrets/page.tsx | 2 +- .../trust-portal/actions/check-dns-record.ts | 2 +- .../trust-portal/actions/custom-domain.ts | 2 +- .../actions/is-friendly-available.ts | 2 +- .../actions/trust-portal-switch.ts | 2 +- .../actions/update-trust-portal-frameworks.ts | 2 +- .../[orgId]/settings/trust-portal/page.tsx | 7 +- .../tasks/[taskId]/actions/delete-task.ts | 2 +- .../actions/generate-suggestions.ts | 2 +- .../actions/task-automation-actions.ts | 2 +- .../workflow/workflow-visualizer-simple.tsx | 2 +- .../hooks/use-automation-versions.ts | 2 +- .../automation/[automationId]/page.tsx | 2 +- .../components/AutomationOverview.tsx | 7 +- .../overview/components/MetricsSection.tsx | 2 +- .../overview/components/VersionsCard.tsx | 2 +- .../overview/hooks/use-automation-runs.ts | 2 +- .../[automationId]/overview/page.tsx | 2 +- .../[taskId]/components/AttachmentItem.tsx | 2 +- .../components/AutomationRunsCard.tsx | 2 +- .../tasks/[taskId]/components/SingleTask.tsx | 2 +- .../[taskId]/components/TaskAutomations.tsx | 2 +- .../tasks/[taskId]/components/TaskBody.tsx | 2 +- .../[taskId]/components/TaskDeleteDialog.tsx | 2 +- .../[taskId]/components/TaskMainContent.tsx | 2 +- .../components/TaskPropertiesSidebar.tsx | 2 +- .../[taskId]/components/commentUtils.tsx | 2 +- .../tasks/[taskId]/components/constants.ts | 2 +- .../hooks/use-task-automation-runs.ts | 2 +- .../[taskId]/hooks/use-task-automations.ts | 2 +- .../[orgId]/tasks/[taskId]/hooks/use-task.ts | 2 +- .../app/(app)/[orgId]/tasks/[taskId]/page.tsx | 2 +- .../tasks/[taskId]/utils/attachmentUtils.ts | 2 +- .../tasks/actions/deleteTaskAttachment.ts | 2 +- .../tasks/actions/getTaskAttachmentUrl.ts | 2 +- .../(app)/[orgId]/tasks/actions/updateTask.ts | 2 +- .../[orgId]/tasks/actions/updateTaskOrder.ts | 2 +- .../[orgId]/tasks/actions/updateTaskStatus.ts | 2 +- .../tasks/components/AutomationIndicator.tsx | 35 +- .../tasks/components/AutomationsSection.tsx | 8 +- .../tasks/components/CreateTaskSheet.tsx | 2 +- .../tasks/components/ModernTaskList.tsx | 10 +- .../[orgId]/tasks/components/StatusGroup.tsx | 2 +- .../[orgId]/tasks/components/TaskCard.tsx | 8 +- .../[orgId]/tasks/components/TaskList.tsx | 6 +- .../tasks/components/TaskStatusIndicator.tsx | 2 +- .../tasks/components/TaskStatusSelector.tsx | 2 +- .../tasks/components/TasksByCategory.tsx | 22 +- apps/app/src/app/(app)/[orgId]/tasks/page.tsx | 38 +- .../(overview)/actions/deleteVendor.ts | 2 +- .../(overview)/components/VendorsTable.tsx | 2 +- .../vendors/(overview)/data/queries.ts | 4 +- .../vendors/(overview)/data/validations.ts | 2 +- .../(app)/[orgId]/vendors/(overview)/page.tsx | 2 +- .../actions/regenerate-vendor-mitigation.ts | 2 +- .../vendors/[vendorId]/actions/schema.ts | 2 +- .../actions/task/create-task-action.ts | 2 +- .../actions/task/update-task-action.ts | 4 +- .../actions/update-vendor-action.ts | 2 +- .../actions/update-vendor-inherent-risk.ts | 2 +- .../actions/update-vendor-residual-risk.ts | 2 +- .../components/VendorInherentRiskChart.tsx | 2 +- .../components/VendorInherentRiskSheet.tsx | 2 +- .../components/VendorResidualRiskChart.tsx | 2 +- .../components/VendorResidualRiskSheet.tsx | 2 +- .../secondary-fields/secondary-fields.tsx | 2 +- .../update-secondary-fields-form.tsx | 2 +- .../tasks/create-vendor-task-form.tsx | 2 +- .../tasks/data-table/client-columns.tsx | 2 +- .../components/tasks/data-table/columns.tsx | 2 +- .../tasks/data-table/data-table.tsx | 2 +- .../tasks/data-table/filter-toolbar.tsx | 2 +- .../title-and-description.tsx | 2 +- .../update-title-and-description-form.tsx | 2 +- .../update-title-and-description-sheet.tsx | 2 +- .../forms/risks/InherentRiskForm.tsx | 2 +- .../forms/risks/ResidualRiskForm.tsx | 2 +- .../(app)/[orgId]/vendors/[vendorId]/page.tsx | 2 +- .../secondary-fields/secondary-fields.tsx | 2 +- .../tasks/[taskId]/components/title/title.tsx | 2 +- .../components/title/update-task-sheet.tsx | 2 +- .../[vendorId]/tasks/[taskId]/page.tsx | 2 +- .../vendors/actions/create-vendor-action.ts | 2 +- .../actions/search-global-vendors-action.ts | 2 +- .../components/charts/vendors-by-category.tsx | 2 +- .../components/charts/vendors-by-status.tsx | 2 +- .../vendors/backup-overview/layout.tsx | 2 +- .../vendors/components/create-vendor-form.tsx | 4 +- .../components/create-vendor-sheet.tsx | 2 +- apps/app/src/app/(app)/invite/[code]/page.tsx | 2 +- apps/app/src/app/(app)/layout.tsx | 2 +- apps/app/src/app/(app)/no-access/page.tsx | 5 +- .../app/(app)/onboarding/[orgId]/layout.tsx | 2 +- .../src/app/(app)/onboarding/[orgId]/page.tsx | 2 +- .../onboarding/actions/complete-onboarding.ts | 2 +- .../components/PostPaymentOnboarding.tsx | 2 +- .../actions/create-organization-minimal.ts | 2 +- .../setup/actions/create-organization.ts | 2 +- .../setup/components/FrameworkSelection.tsx | 2 +- apps/app/src/app/(app)/setup/go/[id]/page.tsx | 2 +- apps/app/src/app/(app)/setup/layout.tsx | 2 +- .../app/(app)/setup/loading/[orgId]/page.tsx | 2 +- .../src/app/(app)/upgrade/[orgId]/page.tsx | 2 +- .../MinimalOrganizationSwitcher.tsx | 2 +- apps/app/src/app/api/auth/test-db/route.ts | 2 +- .../app/api/auth/test-grant-access/route.ts | 2 +- apps/app/src/app/api/auth/test-login/route.ts | 2 +- .../automations/[automationId]/runs/route.ts | 12 +- .../src/app/api/cloud-tests/findings/route.ts | 2 +- .../app/api/cloud-tests/providers/route.ts | 2 +- apps/app/src/app/api/frameworks/route.ts | 2 +- apps/app/src/app/api/health/route.ts | 2 +- apps/app/src/app/api/qa/approve-org/route.ts | 2 +- apps/app/src/app/api/qa/delete-user/route.ts | 2 +- .../app/src/app/api/retool/reset-org/route.ts | 2 +- apps/app/src/app/api/secrets/[id]/route.ts | 2 +- apps/app/src/app/api/secrets/route.ts | 2 +- apps/app/src/app/api/user-frameworks/route.ts | 2 +- apps/app/src/app/page.tsx | 2 +- apps/app/src/components/SelectAssignee.tsx | 2 +- .../src/components/comments/CommentForm.tsx | 2 +- apps/app/src/components/comments/Comments.tsx | 2 +- .../forms/policies/policy-overview.tsx | 2 +- .../forms/policies/update-policy-form.tsx | 2 +- .../forms/risks/InherentRiskForm.tsx | 2 +- .../forms/risks/ResidualRiskForm.tsx | 2 +- .../forms/risks/create-risk-form.tsx | 4 +- .../components/forms/risks/risk-overview.tsx | 2 +- .../forms/risks/task/update-task-form.tsx | 2 +- .../risks/task/update-task-overview-form.tsx | 2 +- .../forms/risks/update-risk-form.tsx | 2 +- apps/app/src/components/framework-card.tsx | 2 +- apps/app/src/components/framework-pill.tsx | 2 +- .../src/components/layout/MinimalHeader.tsx | 2 +- .../layout/MinimalOrganizationSwitcher.tsx | 2 +- apps/app/src/components/mobile-menu.tsx | 2 +- .../onboarding/OnboardingLayout.tsx | 2 +- .../src/components/organization-switcher.tsx | 4 +- .../policies/charts/policies-by-assignee.tsx | 2 +- .../risks/charts/InherentRiskChart.tsx | 2 +- .../risks/charts/ResidualRiskChart.tsx | 2 +- .../risks/charts/RiskMatrixChart.tsx | 2 +- .../components/risks/charts/RisksAssignee.tsx | 2 +- .../risks/charts/risks-by-department.tsx | 2 +- .../risks/charts/risks-by-status.tsx | 2 +- .../src/components/risks/risk-overview.tsx | 2 +- .../components/risks/tasks/task-overview.tsx | 2 +- .../components/sheets/create-risk-sheet.tsx | 2 +- .../components/sheets/risk-overview-sheet.tsx | 2 +- .../components/sheets/task-overview-sheet.tsx | 2 +- apps/app/src/components/sidebar.tsx | 2 +- .../tables/risk-register/columns.tsx | 2 +- .../tables/risk-register/filter-toolbar.tsx | 2 +- .../components/tables/risk-tasks/columns.tsx | 2 +- .../tables/risk-tasks/filter-toolbar.tsx | 2 +- .../tests/charts/tests-by-assignee.tsx | 2 +- apps/app/src/data/getOrganizations.ts | 2 +- apps/app/src/data/tools/organization.ts | 2 +- apps/app/src/data/tools/policies.ts | 2 +- apps/app/src/data/tools/risks-tool.ts | 2 +- apps/app/src/hooks/use-comments-api.ts | 2 +- .../app/src/hooks/use-organization-members.ts | 2 +- apps/app/src/hooks/use-tasks-api.ts | 2 +- apps/app/src/hooks/use-users.ts | 2 +- apps/app/src/jobs/lib/prompts.ts | 2 +- .../device/create-fleet-label-for-all-orgs.ts | 2 +- .../device/create-fleet-label-for-org.ts | 2 +- .../src/jobs/tasks/email/new-policy-email.ts | 2 +- .../tasks/email/publish-all-policies-email.ts | 3 +- .../tasks/integration/integration-results.ts | 2 +- .../tasks/integration/integration-schedule.ts | 2 +- .../integration/run-integration-tests.ts | 2 +- .../backfill-training-videos-for-all-orgs.ts | 2 +- .../backfill-training-videos-for-org.ts | 2 +- .../onboarding/generate-full-policies.ts | 2 +- .../onboarding/generate-risk-mitigation.ts | 2 +- .../onboarding/generate-vendor-mitigation.ts | 2 +- .../onboard-organization-helpers.ts | 4 +- .../tasks/onboarding/onboard-organization.ts | 2 +- .../onboarding/update-policies-helpers.ts | 7 +- apps/app/src/jobs/tasks/scrape/research.ts | 2 +- .../src/jobs/tasks/task/policy-schedule.ts | 2 +- apps/app/src/jobs/tasks/task/task-schedule.ts | 2 +- .../jobs/tasks/task/weekly-task-reminder.ts | 2 +- .../jobs/tasks/vendors/parse-questionnaire.ts | 238 ++-- apps/app/src/lib/api-key.ts | 2 +- apps/app/src/lib/control-compliance.ts | 2 +- apps/app/src/lib/currentOrganization.ts | 4 +- apps/app/src/lib/db/employee.ts | 4 +- apps/app/src/lib/pdf-generator.ts | 443 ++++--- .../src/lib/utils/calculate-next-review.ts | 2 +- apps/app/src/lib/validations.ts | 2 +- .../src/lib/vector/sync/sync-organization.ts | 63 +- .../lib/vector/utils/extract-policy-text.ts | 7 +- apps/app/src/middleware.test.ts | 2 +- apps/app/src/test-utils/mocks/auth.ts | 2 +- apps/app/src/utils/auth.ts | 4 +- apps/app/tsconfig.json | 5 +- apps/portal/next.config.ts | 2 +- apps/portal/package.json | 27 +- apps/portal/prisma/client.ts | 7 - apps/portal/prisma/index.ts | 2 - apps/portal/src/actions/accept-policies.ts | 2 +- .../(app)/(home)/actions/getPolicyPdfUrl.ts | 2 +- .../(home)/actions/markPolicyAsCompleted.ts | 2 +- .../(home)/actions/markVideoAsCompleted.ts | 2 +- .../src/app/api/download-agent/fleet-label.ts | 2 +- .../src/app/api/download-agent/utils.ts | 2 +- apps/portal/src/app/lib/auth.ts | 2 +- bun.lock | 1114 ++++++----------- bunfig.toml | 2 + package.json | 110 +- packages/analytics/package.json | 10 +- packages/analytics/src/server.ts | 4 +- packages/analytics/tsconfig.json | 1 + packages/analytics/tsdown.config.ts | 7 + packages/db/.gitignore | 34 +- packages/db/docker-compose.yml | 2 +- packages/db/package.json | 30 +- packages/db/prisma.config.ts | 11 +- packages/db/prisma/{ => schema}/schema.prisma | 5 +- packages/db/src/client.ts | 7 - packages/db/src/index.ts | 8 +- packages/db/tsconfig.json | 22 +- packages/db/tsdown.config.ts | 7 + packages/docs/package.json | 5 + packages/email/package.json | 34 +- .../email/{ => src}/components/column.tsx | 0 .../{ => src}/components/dual-column.tsx | 0 .../email/{ => src}/components/footer.tsx | 0 .../{ => src}/components/get-started.tsx | 0 packages/email/{ => src}/components/logo.tsx | 0 .../email/{ => src}/emails/access-granted.tsx | 0 .../email/{ => src}/emails/access-reclaim.tsx | 0 .../emails/all-policy-notification.tsx | 8 +- .../email/{ => src}/emails/invite-portal.tsx | 0 packages/email/{ => src}/emails/invite.tsx | 0 .../email/{ => src}/emails/magic-link.tsx | 2 +- .../{ => src}/emails/marketing/welcome.tsx | 6 +- .../email/{ => src}/emails/nda-signing.tsx | 0 packages/email/{ => src}/emails/otp.tsx | 0 .../{ => src}/emails/policy-notification.tsx | 11 +- .../emails/reminders/task-reminder.tsx | 0 .../emails/reminders/weekly-task-digest.tsx | 0 packages/email/{ => src}/emails/waitlist.tsx | 0 packages/email/{ => src}/index.ts | 0 .../{ => src}/lib/all-policy-notification.ts | 8 +- packages/email/{ => src}/lib/invite-member.ts | 0 packages/email/{ => src}/lib/magic-link.ts | 0 .../{ => src}/lib/policy-notification.ts | 10 +- packages/email/{ => src}/lib/resend.ts | 21 +- packages/email/{ => src}/lib/waitlist.ts | 0 .../email/{ => src}/lib/weekly-task-digest.ts | 1 - packages/email/tsconfig.json | 4 +- packages/email/tsdown.config.ts | 7 + packages/integrations/package.json | 19 +- .../integrations/src/azure/assets/logo.tsx | 2 +- packages/integrations/src/azure/src/index.ts | 28 - .../integrations/src/deel/assets/logo.tsx | 2 +- packages/integrations/src/factory.ts | 4 +- packages/integrations/src/gcp/assets/logo.tsx | 2 +- packages/integrations/tsdown.config.ts | 7 + packages/kv/package.json | 9 +- packages/kv/tsdown.config.ts | 7 + packages/tsconfig/base.json | 23 +- packages/tsconfig/nextjs.json | 13 - packages/tsconfig/package.json | 13 +- packages/tsconfig/react-library.json | 8 - packages/ui/package.json | 372 +----- packages/ui/scripts/generate-exports.cjs | 77 -- packages/ui/tsconfig.json | 11 +- packages/ui/tsup.config.ts | 30 - packages/utils/package.json | 2 +- packages/utils/tsdown.config.ts | 7 + turbo.json | 97 +- 448 files changed, 1689 insertions(+), 2578 deletions(-) delete mode 100644 .syncpackrc.json delete mode 100644 apps/api/prisma/client.ts delete mode 100644 apps/api/prisma/index.ts delete mode 100644 apps/app/prisma/client.ts delete mode 100644 apps/app/prisma/index.ts delete mode 100644 apps/portal/prisma/client.ts delete mode 100644 apps/portal/prisma/index.ts create mode 100644 bunfig.toml create mode 100644 packages/analytics/tsdown.config.ts rename packages/db/prisma/{ => schema}/schema.prisma (73%) delete mode 100644 packages/db/src/client.ts create mode 100644 packages/db/tsdown.config.ts create mode 100644 packages/docs/package.json rename packages/email/{ => src}/components/column.tsx (100%) rename packages/email/{ => src}/components/dual-column.tsx (100%) rename packages/email/{ => src}/components/footer.tsx (100%) rename packages/email/{ => src}/components/get-started.tsx (100%) rename packages/email/{ => src}/components/logo.tsx (100%) rename packages/email/{ => src}/emails/access-granted.tsx (100%) rename packages/email/{ => src}/emails/access-reclaim.tsx (100%) rename packages/email/{ => src}/emails/all-policy-notification.tsx (96%) rename packages/email/{ => src}/emails/invite-portal.tsx (100%) rename packages/email/{ => src}/emails/invite.tsx (100%) rename packages/email/{ => src}/emails/magic-link.tsx (97%) rename packages/email/{ => src}/emails/marketing/welcome.tsx (94%) rename packages/email/{ => src}/emails/nda-signing.tsx (100%) rename packages/email/{ => src}/emails/otp.tsx (100%) rename packages/email/{ => src}/emails/policy-notification.tsx (95%) rename packages/email/{ => src}/emails/reminders/task-reminder.tsx (100%) rename packages/email/{ => src}/emails/reminders/weekly-task-digest.tsx (100%) rename packages/email/{ => src}/emails/waitlist.tsx (100%) rename packages/email/{ => src}/index.ts (100%) rename packages/email/{ => src}/lib/all-policy-notification.ts (90%) rename packages/email/{ => src}/lib/invite-member.ts (100%) rename packages/email/{ => src}/lib/magic-link.ts (100%) rename packages/email/{ => src}/lib/policy-notification.ts (88%) rename packages/email/{ => src}/lib/resend.ts (75%) rename packages/email/{ => src}/lib/waitlist.ts (100%) rename packages/email/{ => src}/lib/weekly-task-digest.ts (99%) create mode 100644 packages/email/tsdown.config.ts create mode 100644 packages/integrations/tsdown.config.ts create mode 100644 packages/kv/tsdown.config.ts delete mode 100644 packages/tsconfig/nextjs.json delete mode 100644 packages/tsconfig/react-library.json delete mode 100644 packages/ui/scripts/generate-exports.cjs delete mode 100644 packages/ui/tsup.config.ts create mode 100644 packages/utils/tsdown.config.ts diff --git a/.syncpackrc.json b/.syncpackrc.json deleted file mode 100644 index fa39a0481..000000000 --- a/.syncpackrc.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "source": ["package.json", "apps/*/package.json", "packages/*/package.json"], - "dependencyTypes": ["prod", "dev", "peer"], - "semverGroups": [ - { - "label": "Use exact versions for internal packages", - "packages": ["@comp/**"], - "dependencies": ["@comp/**"], - "range": "workspace:*" - } - ], - "versionGroups": [ - { - "label": "Ensure React is consistent", - "packages": ["**"], - "dependencies": ["react", "react-dom", "@types/react", "@types/react-dom", "react-is"], - "isIgnored": false - }, - { - "label": "Ensure Next.js is consistent", - "packages": ["**"], - "dependencies": ["next"], - "isIgnored": false - }, - { - "label": "Ensure TypeScript is consistent", - "packages": ["**"], - "dependencies": ["typescript"], - "isIgnored": false - }, - { - "label": "Ensure common build tools are consistent", - "packages": ["**"], - "dependencies": ["postcss", "tailwindcss", "@tailwindcss/**", "autoprefixer"], - "isIgnored": false - }, - { - "label": "Ensure testing tools are consistent", - "packages": ["**"], - "dependencies": ["@types/node", "prettier", "turbo"], - "isIgnored": false - }, - { - "label": "Ensure ESLint is consistent", - "packages": ["**"], - "dependencies": ["eslint", "eslint-config-next"], - "isIgnored": false - } - ], - "lintRules": { - "forbiddenDependencies": { - "dependencies": ["crypto", "buffer", "fs", "path", "os", "install", "npm"], - "message": "This is a Node.js built-in module or a mistakenly added dependency" - } - } -} diff --git a/apps/api/package.json b/apps/api/package.json index 4bed55244..27fecb850 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -11,8 +11,7 @@ "@nestjs/core": "^11.0.1", "@nestjs/platform-express": "^11.1.5", "@nestjs/swagger": "^11.2.0", - "@prisma/client": "^6.13.0", - "@trycompai/db": "^1.3.17", + "@trycompai/db": "workspace:*", "@trycompai/email": "workspace:*", "archiver": "^7.0.1", "axios": "^1.12.2", @@ -24,12 +23,13 @@ "jspdf": "^3.0.3", "nanoid": "^5.1.6", "pdf-lib": "^1.17.1", - "prisma": "^6.13.0", "reflect-metadata": "^0.2.2", "resend": "^6.4.2", "rxjs": "^7.8.1", "swagger-ui-express": "^5.0.1", - "zod": "^4.0.14" + "ts-node": "^10.9.2", + "tsx": "^4.20.6", + "zod": "^4.1.12" }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", @@ -37,10 +37,11 @@ "@nestjs/cli": "^11.0.0", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.0.1", + "@trycompai/tsconfig": "workspace:*", "@types/archiver": "^6.0.3", "@types/express": "^5.0.0", "@types/jest": "^30.0.0", - "@types/node": "^24.0.3", + "@types/node": "^24.2.0", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.8", "eslint": "^9.18.0", @@ -53,9 +54,8 @@ "supertest": "^7.0.0", "ts-jest": "^29.2.5", "ts-loader": "^9.5.2", - "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "typescript-eslint": "^8.20.0" }, "jest": { @@ -79,18 +79,15 @@ "private": true, "scripts": { "build": "nest build", - "build:docker": "bunx prisma generate && nest build", - "db:generate": "bun run db:getschema && bunx prisma generate", - "db:getschema": "node ../../packages/db/scripts/combine-schemas.js && cp ../../packages/db/dist/schema.prisma prisma/schema.prisma", - "db:migrate": "cd ../../packages/db && bunx prisma migrate dev && cd ../../apps/api", + "build:docker": "nest build", "dev": "nest start --watch", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", - "prebuild": "bun run db:generate", "start": "nest start", "start:debug": "nest start --debug --watch", "start:dev": "nest start --watch", "start:prod": "node dist/main", + "clean": "rm -rf dist .turbo node_modules", "test": "jest", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", diff --git a/apps/api/prisma/client.ts b/apps/api/prisma/client.ts deleted file mode 100644 index a696328be..000000000 --- a/apps/api/prisma/client.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { PrismaClient } from '@prisma/client'; - -const globalForPrisma = global as unknown as { prisma: PrismaClient }; - -export const db = globalForPrisma.prisma || new PrismaClient(); - -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db; diff --git a/apps/api/prisma/index.ts b/apps/api/prisma/index.ts deleted file mode 100644 index 54d1c4b9c..000000000 --- a/apps/api/prisma/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '@prisma/client'; -export { db } from './client'; diff --git a/apps/api/src/attachments/attachments.service.ts b/apps/api/src/attachments/attachments.service.ts index a63c72038..8e701cefc 100644 --- a/apps/api/src/attachments/attachments.service.ts +++ b/apps/api/src/attachments/attachments.service.ts @@ -5,7 +5,7 @@ import { S3Client, } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { AttachmentEntityType, AttachmentType, db } from '@db'; +import { AttachmentEntityType, AttachmentType } from '@trycompai/db'; import { BadRequestException, Injectable, diff --git a/apps/api/src/comments/comments.controller.ts b/apps/api/src/comments/comments.controller.ts index 2026055e3..79157952d 100644 --- a/apps/api/src/comments/comments.controller.ts +++ b/apps/api/src/comments/comments.controller.ts @@ -1,4 +1,4 @@ -import { CommentEntityType } from '@db'; +import { CommentEntityType } from '@trycompai/db'; import { BadRequestException, Body, diff --git a/apps/api/src/comments/comments.service.ts b/apps/api/src/comments/comments.service.ts index 7d245dd8b..66e1036a0 100644 --- a/apps/api/src/comments/comments.service.ts +++ b/apps/api/src/comments/comments.service.ts @@ -1,4 +1,4 @@ -import { AttachmentEntityType, CommentEntityType } from '@db'; +import { AttachmentEntityType, CommentEntityType } from '@trycompai/db'; import { BadRequestException, Injectable, diff --git a/apps/api/src/comments/dto/create-comment.dto.ts b/apps/api/src/comments/dto/create-comment.dto.ts index 6775f8832..02efc9a8d 100644 --- a/apps/api/src/comments/dto/create-comment.dto.ts +++ b/apps/api/src/comments/dto/create-comment.dto.ts @@ -1,4 +1,4 @@ -import { CommentEntityType } from '@db'; +import { CommentEntityType } from '@trycompai/db'; import { ApiProperty } from '@nestjs/swagger'; import { Type } from 'class-transformer'; import { diff --git a/apps/api/src/tasks/attachments.service.ts b/apps/api/src/tasks/attachments.service.ts index 876f9bce9..e580bdfd0 100644 --- a/apps/api/src/tasks/attachments.service.ts +++ b/apps/api/src/tasks/attachments.service.ts @@ -5,7 +5,7 @@ import { S3Client, } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { AttachmentEntityType, AttachmentType } from '@db'; +import { AttachmentEntityType, AttachmentType } from '@trycompai/db'; import { BadRequestException, Injectable, diff --git a/apps/api/src/tasks/tasks.controller.ts b/apps/api/src/tasks/tasks.controller.ts index cde966a7d..1e7250911 100644 --- a/apps/api/src/tasks/tasks.controller.ts +++ b/apps/api/src/tasks/tasks.controller.ts @@ -1,4 +1,4 @@ -import { AttachmentEntityType } from '@db'; +import { AttachmentEntityType } from '@trycompai/db'; import { BadRequestException, Body, diff --git a/apps/api/src/vendors/vendors.service.ts b/apps/api/src/vendors/vendors.service.ts index 159848356..f8787d171 100644 --- a/apps/api/src/vendors/vendors.service.ts +++ b/apps/api/src/vendors/vendors.service.ts @@ -1,5 +1,5 @@ import { Injectable, NotFoundException, Logger } from '@nestjs/common'; -import { db } from '@trycompai/db'; +import from '@trycompai/db'; import { CreateVendorDto } from './dto/create-vendor.dto'; import { UpdateVendorDto } from './dto/update-vendor.dto'; diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json index 7e903ec25..55abcba61 100644 --- a/apps/api/tsconfig.json +++ b/apps/api/tsconfig.json @@ -22,8 +22,7 @@ "strictBindCallApply": false, "noFallthroughCasesInSwitch": false, "paths": { - "@/*": ["./src/*"], - "@db": ["./prisma/index"] + "@/*": ["./src/*"] } } } diff --git a/apps/app/next.config.ts b/apps/app/next.config.ts index affee2e36..8c19cc13f 100644 --- a/apps/app/next.config.ts +++ b/apps/app/next.config.ts @@ -40,7 +40,7 @@ const config: NextConfig = { ? `${process.env.STATIC_ASSETS_URL}/app` : '', reactStrictMode: false, - transpilePackages: ['@trycompai/db', '@prisma/client'], + transpilePackages: ['@trycompai/ui'], images: { remotePatterns: [ { @@ -61,7 +61,7 @@ const config: NextConfig = { : undefined, }, authInterrupts: true, - optimizePackageImports: ['@trycompai/db', '@trycompai/ui'], + optimizePackageImports: ['@trycompai/ui'], // Reduce build peak memory webpackMemoryOptimizations: true, }, diff --git a/apps/app/package.json b/apps/app/package.json index 6de9953a8..783ef7d92 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -29,14 +29,14 @@ "@mendable/firecrawl-js": "^1.24.0", "@monaco-editor/react": "^4.7.0", "@nangohq/frontend": "^0.53.2", - "@next/third-parties": "^15.3.1", + "@next/third-parties": "^16.0.3", "@novu/api": "^1.6.0", "@novu/nextjs": "^3.10.1", "@number-flow/react": "^0.5.9", - "@prisma/client": "^6.13.0", - "@prisma/instrumentation": "6.6.0", + "@prisma/client": "^6.19.0", + "@prisma/instrumentation": "^6.19.0", "@prisma/nextjs-monorepo-workaround-plugin": "^6.13.0", - "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-slot": "^1.2.4", "@react-email/components": "^0.0.41", "@react-email/render": "^1.1.2", "@react-three/drei": "^10.3.0", @@ -54,17 +54,14 @@ "@trigger.dev/sdk": "4.0.6", "@trycompai/db": "^1.3.17", "@trycompai/email": "workspace:*", - "@types/canvas-confetti": "^1.9.0", - "@types/react-syntax-highlighter": "^15.5.13", - "@types/three": "^0.180.0", "@uploadthing/react": "^7.3.0", "@upstash/ratelimit": "^2.0.5", "@vercel/analytics": "^1.5.0", "@vercel/sandbox": "^0.0.21", "@vercel/sdk": "^1.7.1", - "ai": "^5.0.60", + "ai": "^5.0.93", "ai-elements": "^1.6.1", - "axios": "^1.9.0", + "axios": "^1.12.2", "better-auth": "^1.3.27", "botid": "^1.5.5", "canvas-confetti": "^1.9.3", @@ -73,10 +70,10 @@ "dub": "^0.66.1", "framer-motion": "^12.18.1", "geist": "^1.3.1", - "jspdf": "^3.0.2", - "lucide-react": "^0.544.0", + "jspdf": "^3.0.3", + "lucide-react": "^0.553.0", "motion": "^12.9.2", - "next": "^15.4.6", + "next": "^16.0.3", "next-safe-action": "^8.0.3", "next-themes": "^0.4.4", "nuqs": "^2.4.3", @@ -85,8 +82,8 @@ "posthog-js": "^1.236.6", "posthog-node": "^5.8.2", "puppeteer-core": "^24.7.2", - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-email": "^4.0.15", "react-hook-form": "^7.61.1", "react-hotkeys-hook": "^5.1.0", @@ -100,7 +97,7 @@ "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", - "resend": "^4.4.1", + "resend": "^6.4.2", "sonner": "^2.0.5", "swr": "^2.3.4", "three": "^0.177.0", @@ -111,7 +108,7 @@ "xlsx": "^0.18.5", "xml2js": "^0.6.2", "zaraz-ts": "^1.2.0", - "zod": "^3.25.76", + "zod": "^4.1.12", "zustand": "^5.0.3" }, "devDependencies": { @@ -122,21 +119,24 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@trigger.dev/build": "4.0.6", + "@types/canvas-confetti": "^1.9.0", "@types/d3": "^7.4.3", "@types/jspdf": "^2.0.0", - "@types/node": "^24.0.3", + "@types/node": "^24.2.0", + "@types/react-syntax-highlighter": "^15.5.13", + "@types/three": "^0.180.0", "@vitejs/plugin-react": "^4.6.0", "@vitest/ui": "^3.2.4", "eslint": "^9.18.0", - "eslint-config-next": "15.5.2", + "eslint-config-next": "^16.0.3", "fleetctl": "^4.68.1", "glob": "^11.0.3", "jsdom": "^26.1.0", "postcss": "^8.5.4", - "prisma": "^6.13.0", + "prisma": "^6.19.0", "raw-loader": "^4.0.2", "tailwindcss": "^4.1.8", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4" }, @@ -156,14 +156,11 @@ "scripts": { "analyze-locale-usage": "bunx tsx src/locales/analyze-locale-usage.ts", "build": "next build", - "build:docker": "prisma generate && next build", - "db:generate": "bun run db:getschema && prisma generate", - "db:getschema": "node ../../packages/db/scripts/combine-schemas.js && cp ../../packages/db/dist/schema.prisma prisma/schema.prisma", - "db:migrate": "cd ../../packages/db && bunx prisma migrate dev && cd ../../apps/app", + "build:docker": "next build", "deploy:trigger-prod": "npx trigger.dev@4.0.6 deploy", "dev": "bun i && bunx concurrently --kill-others --names \"next,trigger\" --prefix-colors \"yellow,blue\" \"next dev --turbo -p 3000\" \"bunx trigger.dev@4.0.6 dev\"", "lint": "next lint && prettier --check .", - "prebuild": "bun run db:generate", + "clean": "rm -rf .next .turbo .trigger node_modules", "start": "next start", "test": "vitest", "test:all": "./scripts/test-all.sh", @@ -179,4 +176,4 @@ "test:watch": "vitest --watch", "typecheck": "tsc --noEmit" } -} \ No newline at end of file +} diff --git a/apps/app/prisma/client.ts b/apps/app/prisma/client.ts deleted file mode 100644 index a696328be..000000000 --- a/apps/app/prisma/client.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { PrismaClient } from '@prisma/client'; - -const globalForPrisma = global as unknown as { prisma: PrismaClient }; - -export const db = globalForPrisma.prisma || new PrismaClient(); - -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db; diff --git a/apps/app/prisma/index.ts b/apps/app/prisma/index.ts deleted file mode 100644 index 54d1c4b9c..000000000 --- a/apps/app/prisma/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '@prisma/client'; -export { db } from './client'; diff --git a/apps/app/src/actions/add-comment.ts b/apps/app/src/actions/add-comment.ts index 40a92dbf7..919a7e3e0 100644 --- a/apps/app/src/actions/add-comment.ts +++ b/apps/app/src/actions/add-comment.ts @@ -1,7 +1,7 @@ 'use server'; import { AppError, appErrors } from '@/lib/errors'; -import { CommentEntityType, db } from '@db'; +import { CommentEntityType, db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/actions/change-organization.ts b/apps/app/src/actions/change-organization.ts index 32e768bb0..8ed662616 100644 --- a/apps/app/src/actions/change-organization.ts +++ b/apps/app/src/actions/change-organization.ts @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/actions/context-hub/create-context-entry-action.ts b/apps/app/src/actions/context-hub/create-context-entry-action.ts index 261ed96de..3f60ae5f5 100644 --- a/apps/app/src/actions/context-hub/create-context-entry-action.ts +++ b/apps/app/src/actions/context-hub/create-context-entry-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/context-hub/delete-context-entry-action.ts b/apps/app/src/actions/context-hub/delete-context-entry-action.ts index a04488d35..029e32d1e 100644 --- a/apps/app/src/actions/context-hub/delete-context-entry-action.ts +++ b/apps/app/src/actions/context-hub/delete-context-entry-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/context-hub/update-context-entry-action.ts b/apps/app/src/actions/context-hub/update-context-entry-action.ts index a7c103b88..9ab6e5f62 100644 --- a/apps/app/src/actions/context-hub/update-context-entry-action.ts +++ b/apps/app/src/actions/context-hub/update-context-entry-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/controls/create-control-action.ts b/apps/app/src/actions/controls/create-control-action.ts index 72cd1af66..eb7eb6d46 100644 --- a/apps/app/src/actions/controls/create-control-action.ts +++ b/apps/app/src/actions/controls/create-control-action.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/actions/files/upload-file.ts b/apps/app/src/actions/files/upload-file.ts index e4f90ff1e..90bf9ab16 100644 --- a/apps/app/src/actions/files/upload-file.ts +++ b/apps/app/src/actions/files/upload-file.ts @@ -8,7 +8,7 @@ import { auth } from '@/utils/auth'; import { logger } from '@/utils/logger'; import { GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { AttachmentEntityType, AttachmentType, db } from '@db'; +import { AttachmentEntityType, AttachmentType, db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/actions/integrations/delete-integration-connection.ts b/apps/app/src/actions/integrations/delete-integration-connection.ts index d47db08c9..9af08c8b0 100644 --- a/apps/app/src/actions/integrations/delete-integration-connection.ts +++ b/apps/app/src/actions/integrations/delete-integration-connection.ts @@ -2,7 +2,7 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { authActionClient } from '../safe-action'; import { deleteIntegrationConnectionSchema } from '../schema'; diff --git a/apps/app/src/actions/integrations/update-integration-settings-action.ts b/apps/app/src/actions/integrations/update-integration-settings-action.ts index e4e2a6d2b..7026917cb 100644 --- a/apps/app/src/actions/integrations/update-integration-settings-action.ts +++ b/apps/app/src/actions/integrations/update-integration-settings-action.ts @@ -1,7 +1,7 @@ 'use server'; import { encrypt } from '@/lib/encryption'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/organization/accept-invitation.ts b/apps/app/src/actions/organization/accept-invitation.ts index 78e0bf7ac..027645697 100644 --- a/apps/app/src/actions/organization/accept-invitation.ts +++ b/apps/app/src/actions/organization/accept-invitation.ts @@ -1,7 +1,7 @@ 'use server'; import { createTrainingVideoEntries } from '@/lib/db/employee'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { redirect } from 'next/navigation'; import { z } from 'zod'; diff --git a/apps/app/src/actions/organization/add-frameworks-to-organization-action.ts b/apps/app/src/actions/organization/add-frameworks-to-organization-action.ts index 37068764e..e77e60ab1 100644 --- a/apps/app/src/actions/organization/add-frameworks-to-organization-action.ts +++ b/apps/app/src/actions/organization/add-frameworks-to-organization-action.ts @@ -1,7 +1,7 @@ 'use server'; import { addFrameworksSchema } from '@/actions/schema'; -import { db, Prisma } from '@db'; +import { db, Prisma } from '@trycompai/db'; import { authWithOrgAccessClient } from '../safe-action'; import { _upsertOrgFrameworkStructureCore } from './lib/initialize-organization'; diff --git a/apps/app/src/actions/organization/create-api-key-action.ts b/apps/app/src/actions/organization/create-api-key-action.ts index 3b9389368..c390cf8eb 100644 --- a/apps/app/src/actions/organization/create-api-key-action.ts +++ b/apps/app/src/actions/organization/create-api-key-action.ts @@ -3,7 +3,7 @@ import { authActionClient } from '@/actions/safe-action'; import { apiKeySchema } from '@/actions/schema'; import { generateApiKey, generateSalt, hashApiKey } from '@/lib/api-key'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; export const createApiKeyAction = authActionClient diff --git a/apps/app/src/actions/organization/delete-organization-action.ts b/apps/app/src/actions/organization/delete-organization-action.ts index 232f301d4..0d649bc0b 100644 --- a/apps/app/src/actions/organization/delete-organization-action.ts +++ b/apps/app/src/actions/organization/delete-organization-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { authActionClient } from '../safe-action'; import { deleteOrganizationSchema } from '../schema'; diff --git a/apps/app/src/actions/organization/get-api-keys-action.ts b/apps/app/src/actions/organization/get-api-keys-action.ts index 85149c4e7..a2db4d577 100644 --- a/apps/app/src/actions/organization/get-api-keys-action.ts +++ b/apps/app/src/actions/organization/get-api-keys-action.ts @@ -2,7 +2,7 @@ import type { ActionResponse } from '@/actions/types'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; export const getApiKeysAction = async (): Promise< diff --git a/apps/app/src/actions/organization/get-organization-users-action.ts b/apps/app/src/actions/organization/get-organization-users-action.ts index dcd33e6a8..d5256cc4c 100644 --- a/apps/app/src/actions/organization/get-organization-users-action.ts +++ b/apps/app/src/actions/organization/get-organization-users-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { authActionClient } from '../safe-action'; interface User { diff --git a/apps/app/src/actions/organization/lib/get-framework-names.ts b/apps/app/src/actions/organization/lib/get-framework-names.ts index 5e6b8eab8..98dfbe71b 100644 --- a/apps/app/src/actions/organization/lib/get-framework-names.ts +++ b/apps/app/src/actions/organization/lib/get-framework-names.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; /** * Fetch framework names by IDs and convert them to lowercase with no spaces diff --git a/apps/app/src/actions/organization/lib/initialize-organization.ts b/apps/app/src/actions/organization/lib/initialize-organization.ts index 6eff295be..57cfaa315 100644 --- a/apps/app/src/actions/organization/lib/initialize-organization.ts +++ b/apps/app/src/actions/organization/lib/initialize-organization.ts @@ -1,4 +1,4 @@ -import { db, Prisma } from '@db'; +import { db, Prisma } from '@trycompai/db'; // Define a type for FrameworkEditorFramework with requirements included // This assumes FrameworkEditorFramework and FrameworkEditorRequirement are valid Prisma types. diff --git a/apps/app/src/actions/organization/remove-employee.ts b/apps/app/src/actions/organization/remove-employee.ts index 602648a11..a42e83506 100644 --- a/apps/app/src/actions/organization/remove-employee.ts +++ b/apps/app/src/actions/organization/remove-employee.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/organization/revoke-api-key-action.ts b/apps/app/src/actions/organization/revoke-api-key-action.ts index f3a4d6e6c..bbe207a34 100644 --- a/apps/app/src/actions/organization/revoke-api-key-action.ts +++ b/apps/app/src/actions/organization/revoke-api-key-action.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/actions/organization/update-organization-advanced-mode-action.ts b/apps/app/src/actions/organization/update-organization-advanced-mode-action.ts index 0044f1a30..aee6cbf01 100644 --- a/apps/app/src/actions/organization/update-organization-advanced-mode-action.ts +++ b/apps/app/src/actions/organization/update-organization-advanced-mode-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { headers } from 'next/headers'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/organization/update-organization-name-action.ts b/apps/app/src/actions/organization/update-organization-name-action.ts index 24b402f0c..64830fe1e 100644 --- a/apps/app/src/actions/organization/update-organization-name-action.ts +++ b/apps/app/src/actions/organization/update-organization-name-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { organizationNameSchema } from '../schema'; diff --git a/apps/app/src/actions/organization/update-organization-website-action.ts b/apps/app/src/actions/organization/update-organization-website-action.ts index fbcf37869..3a0a015bb 100644 --- a/apps/app/src/actions/organization/update-organization-website-action.ts +++ b/apps/app/src/actions/organization/update-organization-website-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { organizationWebsiteSchema } from '../schema'; diff --git a/apps/app/src/actions/policies/accept-requested-policy-changes.ts b/apps/app/src/actions/policies/accept-requested-policy-changes.ts index f60e30acc..c2013d1ca 100644 --- a/apps/app/src/actions/policies/accept-requested-policy-changes.ts +++ b/apps/app/src/actions/policies/accept-requested-policy-changes.ts @@ -1,8 +1,8 @@ 'use server'; import { sendNewPolicyEmail } from '@/jobs/tasks/email/new-policy-email'; -import { db, PolicyStatus } from '@db'; import { tasks } from '@trigger.dev/sdk'; +import { db, PolicyStatus } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/policies/archive-policy.ts b/apps/app/src/actions/policies/archive-policy.ts index 48dd1bf26..89df9ae3e 100644 --- a/apps/app/src/actions/policies/archive-policy.ts +++ b/apps/app/src/actions/policies/archive-policy.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/policies/create-new-policy.ts b/apps/app/src/actions/policies/create-new-policy.ts index 9f7e75a82..dc8fee8dd 100644 --- a/apps/app/src/actions/policies/create-new-policy.ts +++ b/apps/app/src/actions/policies/create-new-policy.ts @@ -1,6 +1,6 @@ 'use server'; -import { db, Departments, Frequency } from '@db'; +import { db, Departments, Frequency } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { createPolicySchema } from '../schema'; diff --git a/apps/app/src/actions/policies/delete-policy.ts b/apps/app/src/actions/policies/delete-policy.ts index b836aa26f..5a6ad10e2 100644 --- a/apps/app/src/actions/policies/delete-policy.ts +++ b/apps/app/src/actions/policies/delete-policy.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/policies/deny-requested-policy-changes.ts b/apps/app/src/actions/policies/deny-requested-policy-changes.ts index 5c937edbe..93566e79a 100644 --- a/apps/app/src/actions/policies/deny-requested-policy-changes.ts +++ b/apps/app/src/actions/policies/deny-requested-policy-changes.ts @@ -1,6 +1,6 @@ 'use server'; -import { db, PolicyStatus } from '@db'; +import { db, PolicyStatus } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; diff --git a/apps/app/src/actions/policies/publish-all.ts b/apps/app/src/actions/policies/publish-all.ts index 8ce0cdf79..42d736238 100644 --- a/apps/app/src/actions/policies/publish-all.ts +++ b/apps/app/src/actions/policies/publish-all.ts @@ -1,7 +1,7 @@ 'use server'; import { sendPublishAllPoliciesEmail } from '@/jobs/tasks/email/publish-all-policies-email'; -import { db, PolicyStatus, Role } from '@db'; +import { db, PolicyStatus, Role } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; import { authActionClient } from '../safe-action'; @@ -104,10 +104,7 @@ export const publishAllPoliciesAction = authActionClient where: { organizationId: parsedInput.organizationId, isActive: true, - OR: [ - { role: { contains: Role.employee } }, - { role: { contains: Role.contractor } }, - ], + OR: [{ role: { contains: Role.employee } }, { role: { contains: Role.contractor } }], }, include: { user: { diff --git a/apps/app/src/actions/policies/submit-policy-for-approval-action.ts b/apps/app/src/actions/policies/submit-policy-for-approval-action.ts index ad25e71ca..a2ae074a5 100644 --- a/apps/app/src/actions/policies/submit-policy-for-approval-action.ts +++ b/apps/app/src/actions/policies/submit-policy-for-approval-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db, PolicyStatus } from '@db'; +import { db, PolicyStatus } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updatePolicyFormSchema } from '../schema'; diff --git a/apps/app/src/actions/policies/update-policy-action.ts b/apps/app/src/actions/policies/update-policy-action.ts index 41deb66a0..7e3e470a0 100644 --- a/apps/app/src/actions/policies/update-policy-action.ts +++ b/apps/app/src/actions/policies/update-policy-action.ts @@ -1,7 +1,7 @@ 'use server'; -import { db } from '@db'; import { logger } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updatePolicySchema } from '../schema'; diff --git a/apps/app/src/actions/policies/update-policy-form-action.ts b/apps/app/src/actions/policies/update-policy-form-action.ts index 3edac74d0..e17bf8ce4 100644 --- a/apps/app/src/actions/policies/update-policy-form-action.ts +++ b/apps/app/src/actions/policies/update-policy-form-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db, PolicyStatus } from '@db'; +import { db, PolicyStatus } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updatePolicyFormSchema } from '../schema'; diff --git a/apps/app/src/actions/policies/update-policy-overview-action.ts b/apps/app/src/actions/policies/update-policy-overview-action.ts index 9445d40c1..5bdcaf2e1 100644 --- a/apps/app/src/actions/policies/update-policy-overview-action.ts +++ b/apps/app/src/actions/policies/update-policy-overview-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updatePolicyOverviewSchema } from '../schema'; diff --git a/apps/app/src/actions/risk/create-risk-action.ts b/apps/app/src/actions/risk/create-risk-action.ts index 29eb5a03c..7dcb0d065 100644 --- a/apps/app/src/actions/risk/create-risk-action.ts +++ b/apps/app/src/actions/risk/create-risk-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db, Impact, Likelihood } from '@db'; +import { db, Impact, Likelihood } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { createRiskSchema } from '../schema'; diff --git a/apps/app/src/actions/risk/task/update-task-action.ts b/apps/app/src/actions/risk/task/update-task-action.ts index dd185312a..12f7f3c9e 100644 --- a/apps/app/src/actions/risk/task/update-task-action.ts +++ b/apps/app/src/actions/risk/task/update-task-action.ts @@ -2,8 +2,8 @@ 'use server'; -import type { TaskStatus } from '@db'; -import { db } from '@db'; +import type { TaskStatus } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../../safe-action'; import { updateTaskSchema } from '../../schema'; diff --git a/apps/app/src/actions/risk/update-inherent-risk-action.ts b/apps/app/src/actions/risk/update-inherent-risk-action.ts index b21f5f27e..660be1150 100644 --- a/apps/app/src/actions/risk/update-inherent-risk-action.ts +++ b/apps/app/src/actions/risk/update-inherent-risk-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updateInherentRiskSchema } from '../schema'; diff --git a/apps/app/src/actions/risk/update-residual-risk-action.ts b/apps/app/src/actions/risk/update-residual-risk-action.ts index d7b8101db..1ca15978d 100644 --- a/apps/app/src/actions/risk/update-residual-risk-action.ts +++ b/apps/app/src/actions/risk/update-residual-risk-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db, Impact, Likelihood } from '@db'; +import { db, Impact, Likelihood } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updateResidualRiskSchema } from '../schema'; diff --git a/apps/app/src/actions/risk/update-residual-risk-enum-action.ts b/apps/app/src/actions/risk/update-residual-risk-enum-action.ts index 12adc136d..eeaf9e158 100644 --- a/apps/app/src/actions/risk/update-residual-risk-enum-action.ts +++ b/apps/app/src/actions/risk/update-residual-risk-enum-action.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updateResidualRiskEnumSchema } from '../schema'; // Use the new enum schema diff --git a/apps/app/src/actions/risk/update-risk-action.ts b/apps/app/src/actions/risk/update-risk-action.ts index 69809efef..b96f21f3c 100644 --- a/apps/app/src/actions/risk/update-risk-action.ts +++ b/apps/app/src/actions/risk/update-risk-action.ts @@ -2,7 +2,7 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { authActionClient } from '../safe-action'; import { updateRiskSchema } from '../schema'; diff --git a/apps/app/src/actions/safe-action.ts b/apps/app/src/actions/safe-action.ts index 3814b4f65..f149cfe25 100644 --- a/apps/app/src/actions/safe-action.ts +++ b/apps/app/src/actions/safe-action.ts @@ -3,7 +3,7 @@ import { env } from '@/env.mjs'; import { auth } from '@/utils/auth'; import { logger } from '@/utils/logger'; import { client } from '@comp/kv'; -import { AuditLogEntityType, db } from '@db'; +import { AuditLogEntityType, db } from '@trycompai/db'; import { Ratelimit } from '@upstash/ratelimit'; import { DEFAULT_SERVER_ERROR_MESSAGE, createSafeActionClient } from 'next-safe-action'; import { revalidatePath } from 'next/cache'; diff --git a/apps/app/src/actions/schema.ts b/apps/app/src/actions/schema.ts index 6dc15fe11..eea4e8055 100644 --- a/apps/app/src/actions/schema.ts +++ b/apps/app/src/actions/schema.ts @@ -8,7 +8,7 @@ import { RiskCategory, RiskStatus, TaskStatus, -} from '@db'; +} from '@trycompai/db'; import { z } from 'zod'; export const organizationSchema = z.object({ diff --git a/apps/app/src/actions/tasks/create-task-action.ts b/apps/app/src/actions/tasks/create-task-action.ts index db77e88e9..f5f425a6f 100644 --- a/apps/app/src/actions/tasks/create-task-action.ts +++ b/apps/app/src/actions/tasks/create-task-action.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db, Departments, TaskFrequency } from '@db'; +import { db, Departments, TaskFrequency } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/actions/tasks/regenerate-task-action.ts b/apps/app/src/actions/tasks/regenerate-task-action.ts index afce4aa54..94a7c1fb2 100644 --- a/apps/app/src/actions/tasks/regenerate-task-action.ts +++ b/apps/app/src/actions/tasks/regenerate-task-action.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts index 0174f9ace..92d24646a 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/connect-cloud.ts @@ -2,7 +2,7 @@ import { encrypt } from '@/lib/encryption'; import { getIntegrationHandler } from '@comp/integrations'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { cookies, headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/disconnect-cloud.ts b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/disconnect-cloud.ts index 5e5aa7c75..baad78bea 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/disconnect-cloud.ts +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/disconnect-cloud.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/update-cloud-credentials.ts b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/update-cloud-credentials.ts index 7550d7099..b843802bb 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/update-cloud-credentials.ts +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/actions/update-cloud-credentials.ts @@ -1,7 +1,7 @@ 'use server'; import { encrypt } from '@/lib/encryption'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx index d3f090c58..2f6e3d80f 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx @@ -3,8 +3,8 @@ import type { runIntegrationTests } from '@/jobs/tasks/integration/run-integration-tests'; import { Button } from '@comp/ui/button'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; -import { Integration } from '@db'; import { useRealtimeTaskTrigger } from '@trigger.dev/react-hooks'; +import { Integration } from '@trycompai/db'; import { Plus, Settings } from 'lucide-react'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/page.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/page.tsx index 41fc245d1..8fffe9204 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/page.tsx @@ -1,6 +1,6 @@ import { auth as betterAuth } from '@/utils/auth'; import { auth } from '@trigger.dev/sdk'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { TestsLayout } from './components/TestsLayout'; diff --git a/apps/app/src/app/(app)/[orgId]/components/ConditionalOnboardingTracker.tsx b/apps/app/src/app/(app)/[orgId]/components/ConditionalOnboardingTracker.tsx index 89e7ae2c7..705fd135e 100644 --- a/apps/app/src/app/(app)/[orgId]/components/ConditionalOnboardingTracker.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/ConditionalOnboardingTracker.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Onboarding } from '@db'; +import type { Onboarding } from '@trycompai/db'; import { usePathname } from 'next/navigation'; import { OnboardingTracker } from './OnboardingTracker'; diff --git a/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx b/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx index 835dcf5f2..76ebf7efe 100644 --- a/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx @@ -2,8 +2,8 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent } from '@comp/ui/card'; -import type { Onboarding } from '@db'; import { useRealtimeRun } from '@trigger.dev/react-hooks'; +import type { Onboarding } from '@trycompai/db'; import { AnimatePresence, motion } from 'framer-motion'; import { AlertTriangle, diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/actions/delete-control.ts b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/actions/delete-control.ts index fd92bd9cd..fd638ff31 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/actions/delete-control.ts +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/actions/delete-control.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx index b9e77bd38..0299764db 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx @@ -11,8 +11,8 @@ import { DialogTitle, } from '@comp/ui/dialog'; import { Form } from '@comp/ui/form'; -import { Control } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Control } from '@trycompai/db'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx index 0f0c7aa21..025ceb4ed 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx @@ -6,8 +6,8 @@ import { StatusIndicator } from '@/components/status-indicator'; import { useDataTable } from '@/hooks/use-data-table'; import { Icons } from '@comp/ui/icons'; import { Input } from '@comp/ui/input'; -import { Policy } from '@db'; import { ColumnDef } from '@tanstack/react-table'; +import { Policy } from '@trycompai/db'; import { useMemo, useState } from 'react'; interface PoliciesTableProps { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx index 1a8be77fb..e08fb2dea 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx @@ -5,13 +5,13 @@ import { DataTableColumnHeader } from '@/components/data-table/data-table-column import { useDataTable } from '@/hooks/use-data-table'; import { Icons } from '@comp/ui/icons'; import { Input } from '@comp/ui/input'; +import { ColumnDef } from '@tanstack/react-table'; import type { FrameworkEditorFramework, FrameworkEditorRequirement, FrameworkInstance, RequirementMap, -} from '@db'; -import { ColumnDef } from '@tanstack/react-table'; +} from '@trycompai/db'; import { useMemo, useState } from 'react'; interface RequirementsTableProps { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx index a610b08f8..d65fcd5da 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx @@ -17,7 +17,7 @@ import type { Policy, RequirementMap, Task, -} from '@db'; +} from '@trycompai/db'; import { MoreVertical, Trash2 } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx index ac56bbceb..cd68819d4 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx @@ -6,8 +6,8 @@ import { StatusIndicator } from '@/components/status-indicator'; import { useDataTable } from '@/hooks/use-data-table'; import { Icons } from '@comp/ui/icons'; import { Input } from '@comp/ui/input'; -import { Task } from '@db'; import { ColumnDef } from '@tanstack/react-table'; +import { Task } from '@trycompai/db'; import { useMemo, useState } from 'react'; interface TasksTableProps { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx index 64e52dbea..4281f55a1 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx @@ -3,7 +3,7 @@ import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; import { Table, TableBody, TableCell, TableRow } from '@comp/ui/table'; -import type { FrameworkEditorRequirement, Policy, Task } from '@db'; +import type { FrameworkEditorRequirement, Policy, Task } from '@trycompai/db'; import { useParams, useRouter } from 'next/navigation'; import { ControlRequirementsTableColumns } from './ControlRequirementsTableColumns'; import { ControlRequirementsTableHeader } from './ControlRequirementsTableHeader'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getControl.ts b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getControl.ts index 206d905ae..960f84ae1 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getControl.ts +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getControl.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; export const getControl = async (id: string) => { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getOrganizationControlProgress.ts b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getOrganizationControlProgress.ts index 5e06b0708..76e0c50e1 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getOrganizationControlProgress.ts +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getOrganizationControlProgress.ts @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; export interface ControlProgressResponse { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getRelatedPolicies.ts b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getRelatedPolicies.ts index 10e07648f..469a88ba5 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getRelatedPolicies.ts +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/data/getRelatedPolicies.ts @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db, Policy } from '@db'; +import { db, Policy } from '@trycompai/db'; import { headers } from 'next/headers'; interface GetRelatedPoliciesParams { diff --git a/apps/app/src/app/(app)/[orgId]/controls/data/queries.ts b/apps/app/src/app/(app)/[orgId]/controls/data/queries.ts index 8b2c143d1..2d86e9dc1 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/data/queries.ts +++ b/apps/app/src/app/(app)/[orgId]/controls/data/queries.ts @@ -1,7 +1,7 @@ import 'server-only'; import { auth } from '@/utils/auth'; -import { db, Prisma } from '@db'; +import { db, Prisma } from '@trycompai/db'; import { headers } from 'next/headers'; // import { cache } from "react"; // Already handled: ensure it stays removed or remove if re-introduced import type { GetControlSchema } from './validations'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/data/validations.ts b/apps/app/src/app/(app)/[orgId]/controls/data/validations.ts index 8720ee45c..3ccbc87d8 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/data/validations.ts +++ b/apps/app/src/app/(app)/[orgId]/controls/data/validations.ts @@ -1,5 +1,5 @@ import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; -import { Control } from '@db'; +import { Control } from '@trycompai/db'; import { createSearchParamsCache, parseAsArrayOf, diff --git a/apps/app/src/app/(app)/[orgId]/controls/page.tsx b/apps/app/src/app/(app)/[orgId]/controls/page.tsx index 0d9360a04..3b9acf3ce 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/page.tsx @@ -1,7 +1,7 @@ import PageWithBreadcrumb from '@/components/pages/PageWithBreadcrumb'; import { getValidFilters } from '@/lib/data-table'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { Metadata } from 'next'; import { headers } from 'next/headers'; import { SearchParams } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/actions/delete-framework.ts b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/actions/delete-framework.ts index fb12ad4cc..92e8a891c 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/actions/delete-framework.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/actions/delete-framework.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx index 15fbd1da0..549ccb15e 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx @@ -11,7 +11,7 @@ import { DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; import { Progress } from '@comp/ui/progress'; -import { Control, Task } from '@db'; +import { Control, Task } from '@trycompai/db'; import { BarChart3, MoreVertical, Target, Trash2 } from 'lucide-react'; import { useState } from 'react'; import { getControlStatus } from '../../lib/utils'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkRequirements.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkRequirements.tsx index af2626a21..184559c4f 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkRequirements.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkRequirements.tsx @@ -4,8 +4,8 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { DataTableToolbar } from '@/components/data-table/data-table-toolbar'; import { useDataTable } from '@/hooks/use-data-table'; -import type { FrameworkEditorRequirement } from '@db'; import { ColumnDef } from '@tanstack/react-table'; +import type { FrameworkEditorRequirement } from '@trycompai/db'; import { useParams } from 'next/navigation'; import { useMemo } from 'react'; import type { FrameworkInstanceWithControls } from '../../types'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx index 4f9f7acac..6666e2f37 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx @@ -2,8 +2,8 @@ import { StatusIndicator, StatusType } from '@/components/status-indicator'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; -import type { Policy } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import type { Policy } from '@trycompai/db'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/page.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/page.tsx index 785c49d5e..88ea4ee64 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import PageWithBreadcrumb from '../../../../../components/pages/PageWithBreadcrumb'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/RequirementControls.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/RequirementControls.tsx index 1bde771dd..41770f581 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/RequirementControls.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/RequirementControls.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Control, FrameworkEditorRequirement, RequirementMap, Task } from '@db'; +import type { Control, FrameworkEditorRequirement, RequirementMap, Task } from '@trycompai/db'; import { RequirementControlsTable } from './table/RequirementControlsTable'; interface RequirementControlsProps { diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx index 5307600d9..c482e8f8b 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx @@ -4,8 +4,8 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { useDataTable } from '@/hooks/use-data-table'; import { Input } from '@comp/ui/input'; -import type { Control, Task } from '@db'; import { ColumnDef } from '@tanstack/react-table'; +import type { Control, Task } from '@trycompai/db'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx index 95eba77d2..63feda7cd 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx @@ -3,8 +3,8 @@ import { StatusIndicator } from '@/components/status-indicator'; import { isPolicyCompleted } from '@/lib/control-compliance'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; -import type { Control, Policy, Task } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import type { Control, Policy, Task } from '@trycompai/db'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { getControlStatus } from '../../../../../lib/utils'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/page.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/page.tsx index a4259e09b..8932cd607 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/page.tsx @@ -1,7 +1,7 @@ import PageWithBreadcrumb from '@/components/pages/PageWithBreadcrumb'; import { auth } from '@/utils/auth'; -import type { FrameworkEditorRequirement } from '@db'; -import { db } from '@db'; +import type { FrameworkEditorRequirement } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { getSingleFrameworkInstanceWithControls } from '../../../data/getSingleFrameworkInstanceWithControls'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx index aa24c80d6..ffda1453b 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx @@ -20,7 +20,7 @@ import { DialogTitle, } from '@comp/ui/dialog'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import type { FrameworkEditorFramework } from '@db'; +import type { FrameworkEditorFramework } from '@trycompai/db'; type Props = { onOpenChange: (isOpen: boolean) => void; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx index f4c690b3f..7e30e5647 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx @@ -2,7 +2,7 @@ import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; import { Progress } from '@comp/ui/progress'; -import { FrameworkInstance } from '@db'; +import { FrameworkInstance } from '@trycompai/db'; import { ComplianceProgressChart } from './ComplianceProgressChart'; import { PoliciesChart } from './PoliciesChart'; import { TasksChart } from './TasksChart'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx index db848d64e..2ffd08039 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx @@ -4,7 +4,7 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; import { Dialog } from '@comp/ui/dialog'; import { ScrollArea } from '@comp/ui/scroll-area'; -import type { FrameworkEditorFramework } from '@db'; +import type { FrameworkEditorFramework } from '@trycompai/db'; import { PlusIcon } from 'lucide-react'; import Image from 'next/image'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/Overview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/Overview.tsx index be88095ca..ac8e3b252 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/Overview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/Overview.tsx @@ -1,6 +1,6 @@ 'use client'; -import { FrameworkEditorFramework, Policy, Task } from '@db'; +import { FrameworkEditorFramework, Policy, Task } from '@trycompai/db'; import { FrameworkInstanceWithControls } from '../types'; import { ComplianceOverview } from './ComplianceOverview'; import { DraggableCards } from './DraggableCards'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx index 70af41486..3e8e853ce 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx @@ -5,7 +5,7 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; -import { Policy, Task } from '@db'; +import { Policy, Task } from '@trycompai/db'; import { ArrowRight, CheckCircle2, diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/types.ts b/apps/app/src/app/(app)/[orgId]/frameworks/components/types.ts index 508026af1..d5b07f3ce 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/types.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/types.ts @@ -1,4 +1,4 @@ -import type { FrameworkInstance, IntegrationResult, Policy, Task } from '@db'; +import type { FrameworkInstance, IntegrationResult, Policy, Task } from '@trycompai/db'; import { FrameworkInstanceWithControls } from '../types'; export interface ComplianceScoresProps { diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/data/getAllFrameworkInstancesWithControls.ts b/apps/app/src/app/(app)/[orgId]/frameworks/data/getAllFrameworkInstancesWithControls.ts index 13cef3dad..269253963 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/data/getAllFrameworkInstancesWithControls.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/data/getAllFrameworkInstancesWithControls.ts @@ -1,7 +1,7 @@ 'use server'; -import type { Control, PolicyStatus, RequirementMap } from '@db'; -import { db } from '@db'; +import type { Control, PolicyStatus, RequirementMap } from '@trycompai/db'; +import { db } from '@trycompai/db'; import type { FrameworkInstanceWithControls } from '../types'; export async function getAllFrameworkInstancesWithControls({ diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/data/getFrameworkWithComplianceScores.ts b/apps/app/src/app/(app)/[orgId]/frameworks/data/getFrameworkWithComplianceScores.ts index d6a5c324a..d6b90f8e9 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/data/getFrameworkWithComplianceScores.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/data/getFrameworkWithComplianceScores.ts @@ -1,6 +1,6 @@ 'use server'; -import { Control, type Task } from '@db'; +import { Control, type Task } from '@trycompai/db'; import { FrameworkInstanceWithComplianceScore } from '../components/types'; import { computeFrameworkStats } from '../lib/compute'; import { FrameworkInstanceWithControls } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/data/getSingleFrameworkInstanceWithControls.ts b/apps/app/src/app/(app)/[orgId]/frameworks/data/getSingleFrameworkInstanceWithControls.ts index 738e9940b..3dd791503 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/data/getSingleFrameworkInstanceWithControls.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/data/getSingleFrameworkInstanceWithControls.ts @@ -1,7 +1,7 @@ 'use server'; -import type { Control, PolicyStatus, RequirementMap } from '@db'; -import { db } from '@db'; +import type { Control, PolicyStatus, RequirementMap } from '@trycompai/db'; +import { db } from '@trycompai/db'; import type { FrameworkInstanceWithControls } from '../types'; export const getSingleFrameworkInstanceWithControls = async ({ diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/lib/compute.ts b/apps/app/src/app/(app)/[orgId]/frameworks/lib/compute.ts index 25286ae89..ab00523c9 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/lib/compute.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/lib/compute.ts @@ -1,4 +1,4 @@ -import type { Control, Task } from '@db'; +import type { Control, Task } from '@trycompai/db'; import type { FrameworkInstanceWithControls } from '../types'; export interface FrameworkStats { @@ -34,7 +34,9 @@ export function computeFrameworkStats( for (const t of frameworkTasks) uniqueTaskMap.set(t.id, t); const uniqueTasks = Array.from(uniqueTaskMap.values()); const totalTasks = uniqueTasks.length; - const doneTasks = uniqueTasks.filter((t) => t.status === 'done' || t.status === 'not_relevant').length; + const doneTasks = uniqueTasks.filter( + (t) => t.status === 'done' || t.status === 'not_relevant', + ).length; const taskRatio = totalTasks > 0 ? doneTasks / totalTasks : 1; const complianceScore = Math.round(((policyRatio + taskRatio) / 2) * 100); diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/lib/getFrameworks.ts b/apps/app/src/app/(app)/[orgId]/frameworks/lib/getFrameworks.ts index 2b81c90bd..de55aa1b8 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/lib/getFrameworks.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/lib/getFrameworks.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; export async function getFrameworks(organizationId: string) { const frameworks = await db.frameworkInstance.findMany({ diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/lib/getPolicies.ts b/apps/app/src/app/(app)/[orgId]/frameworks/lib/getPolicies.ts index eede592be..2ad3030d4 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/lib/getPolicies.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/lib/getPolicies.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; export async function getPublishedPoliciesScore(organizationId: string) { const allPolicies = await db.policy.findMany({ diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/lib/getTasks.ts b/apps/app/src/app/(app)/[orgId]/frameworks/lib/getTasks.ts index fac9e5544..58f337f13 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/lib/getTasks.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/lib/getTasks.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { cache } from 'react'; export const getDoneTasks = cache(async (organizationId: string) => { @@ -9,9 +9,7 @@ export const getDoneTasks = cache(async (organizationId: string) => { }); const doneTasks = tasks.filter((t) => t.status === 'done' || t.status === 'not_relevant'); - const incompleteTasks = tasks.filter( - (t) => t.status === 'todo' || t.status === 'in_progress', - ); + const incompleteTasks = tasks.filter((t) => t.status === 'todo' || t.status === 'in_progress'); return { totalTasks: tasks.length, diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/lib/utils.ts b/apps/app/src/app/(app)/[orgId]/frameworks/lib/utils.ts index a87cd8cf0..9b05e5c90 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/lib/utils.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/lib/utils.ts @@ -1,7 +1,7 @@ import { StatusType } from '@/components/status-indicator'; // Import base types explicitly -import type { Control, PolicyStatus } from '@db'; -import { Task } from '@db'; +import type { Control, PolicyStatus } from '@trycompai/db'; +import { Task } from '@trycompai/db'; // Define the expected structure for policies passed to getControlStatus // This should match the data structure provided by the calling code (e.g., from a Prisma select) @@ -34,7 +34,8 @@ export function getControlStatus( (policy) => policy.status === 'published', // Simplified from artifact.policy.status ); const allTasksDone = - controlTasks.length > 0 && controlTasks.every((task) => task.status === 'done' || task.status === 'not_relevant'); + controlTasks.length > 0 && + controlTasks.every((task) => task.status === 'done' || task.status === 'not_relevant'); if (allPoliciesPublished && (controlTasks.length === 0 || allTasksDone)) return 'completed'; if (allPoliciesDraft && allTasksTodo) return 'not_started'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/page.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/page.tsx index d26062890..bb369d649 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { cache } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/types.ts b/apps/app/src/app/(app)/[orgId]/frameworks/types.ts index a50e40e38..9488fb64e 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/types.ts +++ b/apps/app/src/app/(app)/[orgId]/frameworks/types.ts @@ -4,7 +4,7 @@ import { FrameworkInstance, PolicyStatus, RequirementMap, -} from '@db'; +} from '@trycompai/db'; export type FrameworkInstanceWithControls = FrameworkInstance & { framework: FrameworkEditorFramework; diff --git a/apps/app/src/app/(app)/[orgId]/integrations/page.tsx b/apps/app/src/app/(app)/[orgId]/integrations/page.tsx index 267b10c06..e124a7320 100644 --- a/apps/app/src/app/(app)/[orgId]/integrations/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/integrations/page.tsx @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { IntegrationsGrid } from './components/IntegrationsGrid'; export default async function IntegrationsPage() { @@ -23,8 +23,8 @@ export default async function IntegrationsPage() {

- Connect to any system through the AI agent. This directory shows common patterns—the - agent can integrate with anything that has an API or web interface. + Connect to any system through the AI agent. This directory shows common patterns—the agent + can integrate with anything that has an API or web interface.

diff --git a/apps/app/src/app/(app)/[orgId]/layout.tsx b/apps/app/src/app/(app)/[orgId]/layout.tsx index c54c4ac87..4961e1f24 100644 --- a/apps/app/src/app/(app)/[orgId]/layout.tsx +++ b/apps/app/src/app/(app)/[orgId]/layout.tsx @@ -6,7 +6,7 @@ import { Sidebar } from '@/components/sidebar'; import { TriggerTokenProvider } from '@/components/trigger-token-provider'; import { SidebarProvider } from '@/context/sidebar-context'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import dynamic from 'next/dynamic'; import { cookies, headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/actions/update-employee.ts b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/actions/update-employee.ts index d902f73ac..7804ba097 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/actions/update-employee.ts +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/actions/update-employee.ts @@ -1,8 +1,8 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import type { Departments } from '@db'; -import { db, Prisma } from '@db'; +import type { Departments } from '@trycompai/db'; +import { db, Prisma } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; import { appErrors } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Employee.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Employee.tsx index 25bb950b2..cb94735d4 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Employee.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Employee.tsx @@ -1,7 +1,7 @@ 'use client'; import type { TrainingVideo } from '@/lib/data/training-videos'; -import type { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@db'; +import type { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@trycompai/db'; import type { FleetPolicy, Host } from '../../devices/types'; import { EmployeeDetails } from './EmployeeDetails'; import { EmployeeTasks } from './EmployeeTasks'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx index e12d1f074..4e78478fe 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx @@ -3,8 +3,8 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; import { Form } from '@comp/ui/form'; -import type { Departments, Member, User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Departments, Member, User } from '@trycompai/db'; import { Save } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useForm } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx index fc96b5309..563e664b5 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx @@ -1,5 +1,5 @@ import type { TrainingVideo } from '@/lib/data/training-videos'; -import type { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@db'; +import type { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@trycompai/db'; import { cn } from '@/lib/utils'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx index c08004b8e..ff35287ad 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx @@ -1,6 +1,6 @@ import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import type { Departments } from '@db'; +import type { Departments } from '@trycompai/db'; import type { Control } from 'react-hook-form'; import type { EmployeeFormValues } from '../EmployeeDetails'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx index d7e9dc9c5..693e8d137 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/page.tsx @@ -6,8 +6,8 @@ import { trainingVideos as trainingVideosData, } from '@/lib/data/training-videos'; import { getFleetInstance } from '@/lib/fleet'; -import type { EmployeeTrainingVideoCompletion, Member, User } from '@db'; -import { db } from '@db'; +import type { EmployeeTrainingVideoCompletion, Member, User } from '@trycompai/db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { notFound, redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/actions/addEmployeeWithoutInvite.ts b/apps/app/src/app/(app)/[orgId]/people/all/actions/addEmployeeWithoutInvite.ts index 5ee3eae37..455e347ed 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/actions/addEmployeeWithoutInvite.ts +++ b/apps/app/src/app/(app)/[orgId]/people/all/actions/addEmployeeWithoutInvite.ts @@ -2,8 +2,8 @@ import { createTrainingVideoEntries } from '@/lib/db/employee'; import { auth } from '@/utils/auth'; -import type { Role } from '@db'; -import { db } from '@db'; +import type { Role } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; export const addEmployeeWithoutInvite = async ({ diff --git a/apps/app/src/app/(app)/[orgId]/people/all/actions/removeMember.ts b/apps/app/src/app/(app)/[orgId]/people/all/actions/removeMember.ts index a734a9124..9f62629bd 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/actions/removeMember.ts +++ b/apps/app/src/app/(app)/[orgId]/people/all/actions/removeMember.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; // Adjust safe-action import for colocalized structure diff --git a/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts b/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts index 8558f1805..2aeae7285 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts +++ b/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; // Remove unused Role import if not needed elsewhere // import { Role } from "@comp/db/types"; import { revalidatePath, revalidateTag } from 'next/cache'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/actions/updateMemberRole.ts b/apps/app/src/app/(app)/[orgId]/people/all/actions/updateMemberRole.ts index cc6ce1e9a..33dfecb26 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/actions/updateMemberRole.ts +++ b/apps/app/src/app/(app)/[orgId]/people/all/actions/updateMemberRole.ts @@ -1,6 +1,6 @@ 'use server'; -import { db, Departments, Role } from '@db'; +import { db, Departments, Role } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; // Adjust safe-action import for colocalized structure diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx index aa9d5ff5d..d03a715a2 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx @@ -1,7 +1,7 @@ 'use client'; -import type { Role } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Role } from '@trycompai/db'; import { Loader2, PlusCircle, Trash2 } from 'lucide-react'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx index cfc421958..0dce565df 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx @@ -34,7 +34,7 @@ import { DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; import { Label } from '@comp/ui/label'; -import type { Role } from '@db'; +import type { Role } from '@trycompai/db'; import { MultiRoleCombobox } from './MultiRoleCombobox'; import type { MemberWithUser } from './TeamMembers'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx index 694bfef7f..8c81f62e0 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Role } from '@db'; +import type { Role } from '@trycompai/db'; import * as React from 'react'; import { Dialog, DialogContent } from '@comp/ui/dialog'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx index 3c56dcbe2..57edb8009 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx @@ -8,7 +8,7 @@ import { CommandItem, CommandList, } from '@comp/ui/command'; -import type { Role } from '@db'; // Assuming Role is from prisma +import type { Role } from '@trycompai/db'; // Assuming Role is from prisma import { Check } from 'lucide-react'; import { cn } from '@comp/ui/cn'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx index ce7eb4fd5..b5ab52073 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx @@ -4,7 +4,7 @@ import { Badge } from '@comp/ui/badge'; import { Button } from '@comp/ui/button'; import { cn } from '@comp/ui/cn'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; -import type { Role } from '@db'; // Assuming Role is from prisma +import type { Role } from '@trycompai/db'; // Assuming Role is from prisma import { ChevronsUpDown, Lock, X } from 'lucide-react'; interface MultiRoleComboboxTriggerProps { diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx index ff561a63d..adf210bed 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx @@ -18,7 +18,7 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; -import type { Invitation } from '@db'; +import type { Invitation } from '@trycompai/db'; import { Clock, MoreHorizontal, Trash2 } from 'lucide-react'; import { useEffect, useMemo, useRef, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembers.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembers.tsx index fdeff7173..56bbe450f 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembers.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembers.tsx @@ -1,8 +1,8 @@ 'use server'; import { auth } from '@/utils/auth'; -import type { Invitation, Member, User } from '@db'; -import { db } from '@db'; +import type { Invitation, Member, User } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { removeMember } from '../actions/removeMember'; import { revokeInvitation } from '../actions/revokeInvitation'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx index 358470b3a..1864a9704 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx @@ -12,7 +12,7 @@ import { Card, CardContent } from '@comp/ui/card'; import { Input } from '@comp/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Separator } from '@comp/ui/separator'; -import type { Invitation, Role } from '@db'; +import type { Invitation, Role } from '@trycompai/db'; import { MemberRow } from './MemberRow'; import { PendingInvitationRow } from './PendingInvitationRow'; @@ -158,7 +158,7 @@ export function TeamMembersClient({ const member = data.members.find((m) => m.id === memberId); // Client-side check (optional, robust check should be server-side in authClient) - const memberRoles = member?.role?.split(',').map(r => r.trim()) ?? []; + const memberRoles = member?.role?.split(',').map((r) => r.trim()) ?? []; if (member && memberRoles.includes('owner') && !rolesArray.includes('owner')) { // Show toast error directly, no need to return an error object toast.error('The Owner role cannot be removed.'); diff --git a/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx b/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx index 166937bb0..bd3ce4a2c 100644 --- a/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx @@ -10,7 +10,7 @@ import * as React from 'react'; // Use correct types from the database import { TrainingVideo } from '@/lib/data/training-videos'; -import { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@db'; +import { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@trycompai/db'; interface EmployeeCompletionChartProps { employees: (Member & { diff --git a/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeesOverview.tsx b/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeesOverview.tsx index 09a5cd1c5..495c1d258 100644 --- a/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeesOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeesOverview.tsx @@ -1,7 +1,7 @@ import { trainingVideos as trainingVideosData } from '@/lib/data/training-videos'; import { auth } from '@/utils/auth'; -import type { Member, Policy, User } from '@db'; -import { db } from '@db'; +import type { Member, Policy, User } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { EmployeeCompletionChart } from './EmployeeCompletionChart'; diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/data/index.ts b/apps/app/src/app/(app)/[orgId]/people/devices/data/index.ts index 3ec1d54f5..ed10b7728 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/data/index.ts +++ b/apps/app/src/app/(app)/[orgId]/people/devices/data/index.ts @@ -2,7 +2,7 @@ import { getFleetInstance } from '@/lib/fleet'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import type { Host } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/people/layout.tsx b/apps/app/src/app/(app)/[orgId]/people/layout.tsx index 149b80caf..cd6d39350 100644 --- a/apps/app/src/app/(app)/[orgId]/people/layout.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/layout.tsx @@ -1,6 +1,6 @@ import { auth } from '@/utils/auth'; import { SecondaryMenu } from '@comp/ui/secondary-menu'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/(overview)/page.tsx b/apps/app/src/app/(app)/[orgId]/policies/(overview)/page.tsx index 6e70e7573..bc6a62202 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/(overview)/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/(overview)/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { Suspense } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/get-policy-pdf-url.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/get-policy-pdf-url.ts index 953472548..97d0047f5 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/get-policy-pdf-url.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/get-policy-pdf-url.ts @@ -4,7 +4,7 @@ import { authActionClient } from '@/actions/safe-action'; import { BUCKET_NAME, s3Client } from '@/app/s3'; import { GetObjectCommand } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { z } from 'zod'; export const getPolicyPdfUrlAction = authActionClient diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/mapPolicyToControls.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/mapPolicyToControls.ts index 2e6ab33f4..f0b0c6f17 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/mapPolicyToControls.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/mapPolicyToControls.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/regenerate-policy.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/regenerate-policy.ts index 9f98bcd28..d5fa5d11a 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/regenerate-policy.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/regenerate-policy.ts @@ -2,8 +2,8 @@ import { authActionClient } from '@/actions/safe-action'; import { updatePolicy } from '@/jobs/tasks/onboarding/update-policy'; -import { db } from '@db'; import { tasks } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { z } from 'zod'; export const regeneratePolicyAction = authActionClient diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/switch-policy-display-format.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/switch-policy-display-format.ts index 09f479e9b..aae6ccdd7 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/switch-policy-display-format.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/switch-policy-display-format.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/unmapPolicyFromControl.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/unmapPolicyFromControl.ts index 3f4343198..d15540ea9 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/unmapPolicyFromControl.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/unmapPolicyFromControl.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/upload-policy-pdf.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/upload-policy-pdf.ts index eb9c1c6bf..971740cae 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/upload-policy-pdf.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/actions/upload-policy-pdf.ts @@ -3,7 +3,7 @@ import { authActionClient } from '@/actions/safe-action'; import { BUCKET_NAME, s3Client } from '@/app/s3'; import { PutObjectCommand } from '@aws-sdk/client-s3'; -import { db, PolicyDisplayFormat } from '@db'; +import { db, PolicyDisplayFormat } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx index 5d169fff5..561bea213 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx @@ -5,7 +5,7 @@ import { Button } from '@comp/ui/button'; import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import { Policy } from '@db'; +import { Policy } from '@trycompai/db'; import { ArchiveIcon, ArchiveRestoreIcon, X } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx index 24e353dae..f2434c8a6 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx @@ -8,7 +8,7 @@ import { DialogTitle, DialogTrigger, } from '@comp/ui/dialog'; -import type { Control } from '@db'; +import type { Control } from '@trycompai/db'; import { X } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx index d76dfb849..87bc643ed 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx @@ -10,7 +10,7 @@ import { DialogTrigger, } from '@comp/ui/dialog'; import MultipleSelector, { Option } from '@comp/ui/multiple-selector'; -import { Control } from '@db'; +import { Control } from '@trycompai/db'; import { PlusIcon } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useEffect, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx index c93e87896..d9019ad74 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx @@ -1,6 +1,6 @@ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; import { SelectPills } from '@comp/ui/select-pills'; -import { Control } from '@db'; +import { Control } from '@trycompai/db'; import { useAction } from 'next-safe-action/hooks'; import { useParams } from 'next/navigation'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx index aa3612c0d..9e41c13c2 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx @@ -11,8 +11,8 @@ import { DialogTitle, } from '@comp/ui/dialog'; import { Form } from '@comp/ui/form'; -import { Policy } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Policy } from '@trycompai/db'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx index 6119ad09c..a4fc1e007 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx @@ -19,17 +19,17 @@ import { DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; import { Icons } from '@comp/ui/icons'; -import type { Policy, Member, User } from '@db'; import type { JSONContent } from '@tiptap/react'; +import type { Member, Policy, User } from '@trycompai/db'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; import { toast } from 'sonner'; import { AuditLogWithRelations } from '../data'; -export function PolicyHeaderActions({ +export function PolicyHeaderActions({ policy, - logs -}: { + logs, +}: { policy: (Policy & { approver: (Member & { user: User }) | null }) | null; logs: AuditLogWithRelations[]; }) { @@ -79,7 +79,10 @@ export function PolicyHeaderActions({ - setRegenerateConfirmOpen(true)} disabled={isPendingApproval}> + setRegenerateConfirmOpen(true)} + disabled={isPendingApproval} + > Regenerate policy Edit policy - handleDownloadPDF()} - > + handleDownloadPDF()}> Download as PDF - {policy.reviewDate ? ( - format(new Date(policy.reviewDate), 'PPP') - ) : ( - None - )} + {policy.reviewDate ? format(new Date(policy.reviewDate), 'PPP') : None} diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/data/index.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/data/index.ts index 314c0cb43..0f2dec80e 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/data/index.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/data/index.ts @@ -11,7 +11,7 @@ import { Member, Organization, User, -} from '@db'; +} from '@trycompai/db'; import { headers } from 'next/headers'; // Define the type for AuditLog with its relations diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/get-policy-details.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/get-policy-details.ts index 406915123..4baf889f5 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/get-policy-details.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/get-policy-details.ts @@ -2,7 +2,7 @@ import { authActionClient } from '@/actions/safe-action'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { appErrors, policyDetailsInputSchema } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/update-policy.ts b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/update-policy.ts index 85b268f10..6f74cae18 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/update-policy.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/actions/update-policy.ts @@ -3,7 +3,7 @@ import { authActionClient } from '@/actions/safe-action'; import type { ActionResponse } from '@/actions/types'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { appErrors, updatePolicySchema } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx index 7babaea01..7560f26a8 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx @@ -5,12 +5,12 @@ import { Card, CardContent } from '@comp/ui/card'; import { validateAndFixTipTapContent } from '@comp/ui/editor'; import '@comp/ui/editor.css'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; -import type { PolicyDisplayFormat } from '@db'; import type { JSONContent } from '@tiptap/react'; +import type { PolicyDisplayFormat } from '@trycompai/db'; import { useAction } from 'next-safe-action/hooks'; import { toast } from 'sonner'; -import { PdfViewer } from '../../components/PdfViewer'; import { switchPolicyDisplayFormatAction } from '../../actions/switch-policy-display-format'; +import { PdfViewer } from '../../components/PdfViewer'; import { updatePolicy } from '../actions/update-policy'; interface PolicyContentManagerProps { @@ -43,14 +43,14 @@ export function PolicyContentManager({ return ( - + - Editor View - PDF View + + Editor View + + + PDF View + - + @@ -81,7 +77,9 @@ function PolicyEditorWrapper({ policyContent: JSONContent | JSONContent[]; isPendingApproval: boolean; }) { - const formattedContent = Array.isArray(policyContent) ? policyContent : [policyContent as JSONContent]; + const formattedContent = Array.isArray(policyContent) + ? policyContent + : [policyContent as JSONContent]; const sanitizedContent = formattedContent.map((node) => { if (node.marks) node.marks = node.marks.filter((mark) => mark.type !== 'textStyle'); if (node.content) node.content = node.content.map((child) => child); diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx index 48f5b3523..4034d4a48 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx @@ -4,8 +4,8 @@ import { DataTableColumnHeader } from '@/components/data-table/data-table-column import { StatusIndicator } from '@/components/status-indicator'; import { formatDate } from '@/lib/format'; import { Badge } from '@comp/ui/badge'; -import { Policy } from '@db'; import { type ColumnDef, type Row } from '@tanstack/react-table'; +import { Policy } from '@trycompai/db'; import { ExternalLink, Loader2 } from 'lucide-react'; import Link from 'next/link'; @@ -75,8 +75,7 @@ function PolicyNameCell({ row, orgId }: { row: Row; orgId: string }) { const policyName = row.getValue('name') as string; const policyHref = `/${orgId}/policies/${row.original.id}`; const status = usePolicyTailoringStatus(row.original.id); - const isTailoring = - status === 'queued' || status === 'pending' || status === 'processing'; + const isTailoring = status === 'queued' || status === 'pending' || status === 'processing'; if (isTailoring) { return ( @@ -107,16 +106,11 @@ function PolicyNameCell({ row, orgId }: { row: Row; orgId: string }) { function PolicyStatusCell({ row }: { row: Row }) { const status = usePolicyTailoringStatus(row.original.id); - const isTailoring = - status === 'queued' || status === 'pending' || status === 'processing'; + const isTailoring = status === 'queued' || status === 'pending' || status === 'processing'; if (isTailoring) { const label = - status === 'processing' - ? 'Tailoring' - : status === 'queued' - ? 'Queued' - : 'Preparing'; + status === 'processing' ? 'Tailoring' : status === 'queued' ? 'Queued' : 'Preparing'; return (
diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx index caddf9fdf..309529986 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx @@ -10,7 +10,7 @@ import { CreatePolicySheet } from '@/components/sheets/create-policy-sheet'; import { useDataTable } from '@/hooks/use-data-table'; import { downloadAllPolicies } from '@/lib/pdf-generator'; import { Button } from '@comp/ui/button'; -import type { Policy } from '@db'; +import type { Policy } from '@trycompai/db'; import { useParams } from 'next/navigation'; import { getLogsForPolicy } from '../../[policyId]/data'; import { getPolicies } from '../data/queries'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/data/queries.ts b/apps/app/src/app/(app)/[orgId]/policies/all/data/queries.ts index 4b0a59987..fd036891b 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/data/queries.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/all/data/queries.ts @@ -1,7 +1,7 @@ import 'server-only'; import { auth } from '@/utils/auth'; -import { db, Prisma } from '@db'; +import { db, Prisma } from '@trycompai/db'; import { headers } from 'next/headers'; import { cache } from 'react'; import type { GetPolicySchema } from './validations'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/data/validations.ts b/apps/app/src/app/(app)/[orgId]/policies/all/data/validations.ts index 444ccd6ee..37e44e33b 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/data/validations.ts +++ b/apps/app/src/app/(app)/[orgId]/policies/all/data/validations.ts @@ -1,5 +1,5 @@ import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; -import { Policy, PolicyStatus } from '@db'; +import { Policy, PolicyStatus } from '@trycompai/db'; import { createSearchParamsCache, parseAsArrayOf, diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/page.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/page.tsx index 9869bb70e..3df5545f3 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/page.tsx @@ -1,7 +1,7 @@ import PageWithBreadcrumb from '@/components/pages/PageWithBreadcrumb'; import { getValidFilters } from '@/lib/data-table'; import type { SearchParams } from '@/types'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { FullPolicyHeaderActions } from './components/FullPolicyHeaderActions'; import { PoliciesTable } from './components/policies-table'; diff --git a/apps/app/src/app/(app)/[orgId]/risk/(overview)/RisksTable.tsx b/apps/app/src/app/(app)/[orgId]/risk/(overview)/RisksTable.tsx index 0e7bebd4c..5f6dcadf0 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/(overview)/RisksTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/risk/(overview)/RisksTable.tsx @@ -6,9 +6,9 @@ import { CreateRiskSheet } from '@/components/sheets/create-risk-sheet'; import { useDataTable } from '@/hooks/use-data-table'; import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; import { useSession } from '@/utils/auth-client'; -import type { Member, Risk, User } from '@db'; -import { Risk as RiskType } from '@db'; import { ColumnDef } from '@tanstack/react-table'; +import type { Member, Risk, User } from '@trycompai/db'; +import { Risk as RiskType } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { parseAsArrayOf, diff --git a/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/getRisks.ts b/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/getRisks.ts index 707589d97..0b0aa7459 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/getRisks.ts +++ b/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/getRisks.ts @@ -1,7 +1,7 @@ import 'server-only'; import { auth } from '@/utils/auth'; -import { db, Prisma, type User } from '@db'; +import { db, Prisma, type User } from '@trycompai/db'; import { headers } from 'next/headers'; import type { GetRiskSchema } from './validations'; diff --git a/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/validations.ts b/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/validations.ts index 969f0bf1c..e7fc63c20 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/validations.ts +++ b/apps/app/src/app/(app)/[orgId]/risk/(overview)/data/validations.ts @@ -1,5 +1,5 @@ import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; -import { Risk } from '@db'; +import { Risk } from '@trycompai/db'; import { createSearchParamsCache, parseAsArrayOf, diff --git a/apps/app/src/app/(app)/[orgId]/risk/(overview)/page.tsx b/apps/app/src/app/(app)/[orgId]/risk/(overview)/page.tsx index 7273c18c7..d6b13f953 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/(overview)/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/risk/(overview)/page.tsx @@ -3,7 +3,7 @@ import PageWithBreadcrumb from '@/components/pages/PageWithBreadcrumb'; import { CreateRiskSheet } from '@/components/sheets/create-risk-sheet'; import { getValidFilters } from '@/lib/data-table'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { cache } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/actions/regenerate-risk-mitigation.ts b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/actions/regenerate-risk-mitigation.ts index 0c5565b14..1014a5cad 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/actions/regenerate-risk-mitigation.ts +++ b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/actions/regenerate-risk-mitigation.ts @@ -6,8 +6,8 @@ import { findCommentAuthor, type PolicyContext, } from '@/jobs/tasks/onboarding/onboard-organization-helpers'; -import { db } from '@db'; import { tasks } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { z } from 'zod'; export const regenerateRiskMitigationAction = authActionClient diff --git a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/page.tsx b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/page.tsx index 7ad8e795e..cce4eabb5 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/page.tsx @@ -3,7 +3,7 @@ import { InherentRiskChart } from '@/components/risks/charts/InherentRiskChart'; import { ResidualRiskChart } from '@/components/risks/charts/ResidualRiskChart'; import { RiskOverview } from '@/components/risks/risk-overview'; import { auth } from '@/utils/auth'; -import { CommentEntityType, db } from '@db'; +import { CommentEntityType, db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/tasks/[taskId]/page.tsx b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/tasks/[taskId]/page.tsx index c40ad82d6..defa73ae1 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/tasks/[taskId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/tasks/[taskId]/page.tsx @@ -1,7 +1,7 @@ import { TaskOverview } from '@/components/risks/tasks/task-overview'; import { getUsers } from '@/hooks/use-users'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/export-questionnaire.ts b/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/export-questionnaire.ts index e949ee2d8..219d9f070 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/export-questionnaire.ts +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/export-questionnaire.ts @@ -1,9 +1,8 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; -import * as XLSX from 'xlsx'; import { jsPDF } from 'jspdf'; +import * as XLSX from 'xlsx'; import { z } from 'zod'; const inputSchema = z.object({ @@ -26,28 +25,24 @@ interface QuestionAnswer { */ function generateXLSX(questionsAndAnswers: QuestionAnswer[]): Buffer { const workbook = XLSX.utils.book_new(); - + // Create worksheet data const worksheetData = [ ['#', 'Question', 'Answer'], // Header row - ...questionsAndAnswers.map((qa, index) => [ - index + 1, - qa.question, - qa.answer || '', - ]), + ...questionsAndAnswers.map((qa, index) => [index + 1, qa.question, qa.answer || '']), ]; - + const worksheet = XLSX.utils.aoa_to_sheet(worksheetData); - + // Set column widths worksheet['!cols'] = [ - { wch: 5 }, // # + { wch: 5 }, // # { wch: 60 }, // Question { wch: 60 }, // Answer ]; - + XLSX.utils.book_append_sheet(workbook, worksheet, 'Questionnaire'); - + // Convert to buffer return Buffer.from(XLSX.write(workbook, { type: 'buffer', bookType: 'xlsx' })); } @@ -64,7 +59,7 @@ function generateCSV(questionsAndAnswers: QuestionAnswer[]): string { (qa.answer || '').replace(/"/g, '""'), // Escape quotes ]), ]; - + return rows.map((row) => row.map((cell) => `"${cell}"`).join(',')).join('\n'); } @@ -79,37 +74,37 @@ function generatePDF(questionsAndAnswers: QuestionAnswer[], vendorName?: string) const contentWidth = pageWidth - 2 * margin; let yPosition = margin; const lineHeight = 7; - + // Add title doc.setFontSize(16); doc.setFont('helvetica', 'bold'); const title = vendorName ? `Questionnaire: ${vendorName}` : 'Questionnaire'; doc.text(title, margin, yPosition); yPosition += lineHeight * 2; - + // Add date doc.setFontSize(10); doc.setFont('helvetica', 'normal'); doc.text(`Generated: ${new Date().toLocaleDateString()}`, margin, yPosition); yPosition += lineHeight * 2; - + // Process each question-answer pair doc.setFontSize(11); - + questionsAndAnswers.forEach((qa, index) => { // Check if we need a new page if (yPosition > pageHeight - 40) { doc.addPage(); yPosition = margin; } - + // Question number and question doc.setFont('helvetica', 'bold'); const questionText = `Q${index + 1}: ${qa.question}`; const questionLines = doc.splitTextToSize(questionText, contentWidth); doc.text(questionLines, margin, yPosition); yPosition += questionLines.length * lineHeight + 2; - + // Answer doc.setFont('helvetica', 'normal'); const answerText = qa.answer || 'No answer provided'; @@ -117,7 +112,7 @@ function generatePDF(questionsAndAnswers: QuestionAnswer[], vendorName?: string) doc.text(answerLines, margin, yPosition); yPosition += answerLines.length * lineHeight + 4; }); - + // Convert to buffer return Buffer.from(doc.output('arraybuffer')); } @@ -134,23 +129,23 @@ export const exportQuestionnaire = authActionClient .action(async ({ parsedInput, ctx }) => { const { questionsAndAnswers, format } = parsedInput; const { session } = ctx; - + if (!session?.activeOrganizationId) { throw new Error('No active organization'); } - + const organizationId = session.activeOrganizationId; - + try { const vendorName = 'security-questionnaire'; const sanitizedVendorName = vendorName.toLowerCase().replace(/[^a-z0-9]/g, '-'); const timestamp = new Date().toISOString().split('T')[0]; - + let fileBuffer: Buffer; let mimeType: string; let fileExtension: string; let filename: string; - + // Generate file based on format switch (format) { case 'xlsx': { @@ -160,7 +155,7 @@ export const exportQuestionnaire = authActionClient filename = `questionnaire-${sanitizedVendorName}-${timestamp}.xlsx`; break; } - + case 'csv': { const csvContent = generateCSV(questionsAndAnswers); fileBuffer = Buffer.from(csvContent, 'utf-8'); @@ -169,7 +164,7 @@ export const exportQuestionnaire = authActionClient filename = `questionnaire-${sanitizedVendorName}-${timestamp}.csv`; break; } - + case 'pdf': { fileBuffer = generatePDF(questionsAndAnswers, vendorName); mimeType = 'application/pdf'; @@ -177,15 +172,15 @@ export const exportQuestionnaire = authActionClient filename = `questionnaire-${sanitizedVendorName}-${timestamp}.pdf`; break; } - + default: throw new Error(`Unsupported format: ${format}`); } - + // Convert buffer to base64 data URL for direct download const base64Data = fileBuffer.toString('base64'); const dataUrl = `data:${mimeType};base64,${base64Data}`; - + return { success: true, data: { @@ -194,9 +189,6 @@ export const exportQuestionnaire = authActionClient }, }; } catch (error) { - throw error instanceof Error - ? error - : new Error('Failed to export questionnaire'); + throw error instanceof Error ? error : new Error('Failed to export questionnaire'); } }); - diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/upload-questionnaire-file.ts b/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/upload-questionnaire-file.ts index 6e1945c60..c278f9587 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/upload-questionnaire-file.ts +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/actions/upload-questionnaire-file.ts @@ -1,12 +1,11 @@ 'use server'; -import { APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET, s3Client } from '@/app/s3'; import { authActionClient } from '@/actions/safe-action'; +import { APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET, s3Client } from '@/app/s3'; import { PutObjectCommand } from '@aws-sdk/client-s3'; -import { db } from '@db'; -import { AttachmentEntityType, AttachmentType } from '@db'; -import { z } from 'zod'; +import { AttachmentType } from '@trycompai/db'; import { randomBytes } from 'crypto'; +import { z } from 'zod'; const uploadSchema = z.object({ fileName: z.string(), @@ -53,7 +52,9 @@ export const uploadQuestionnaireFile = authActionClient } if (!APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET) { - throw new Error('Questionnaire upload bucket is not configured. Please set APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET environment variable.'); + throw new Error( + 'Questionnaire upload bucket is not configured. Please set APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET environment variable.', + ); } try { @@ -100,35 +101,32 @@ export const uploadQuestionnaireFile = authActionClient // Provide more helpful error messages for common S3 errors if (error && typeof error === 'object' && 'Code' in error) { const awsError = error as { Code: string; message?: string }; - + if (awsError.Code === 'AccessDenied') { throw new Error( `Access denied to S3 bucket "${APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET}". ` + - `Please verify that:\n` + - `1. The bucket "${APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET}" exists\n` + - `2. Your AWS credentials have s3:PutObject permission for this bucket\n` + - `3. The bucket is in the correct region (${process.env.APP_AWS_REGION || 'not set'})\n` + - `4. The bucket name is correct` + `Please verify that:\n` + + `1. The bucket "${APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET}" exists\n` + + `2. Your AWS credentials have s3:PutObject permission for this bucket\n` + + `3. The bucket is in the correct region (${process.env.APP_AWS_REGION || 'not set'})\n` + + `4. The bucket name is correct`, ); } - + if (awsError.Code === 'NoSuchBucket') { throw new Error( `S3 bucket "${APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET}" does not exist. ` + - `Please create the bucket or update APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET environment variable.` + `Please create the bucket or update APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET environment variable.`, ); } - + if (awsError.Code === 'InvalidAccessKeyId' || awsError.Code === 'SignatureDoesNotMatch') { throw new Error( - `Invalid AWS credentials. Please check APP_AWS_ACCESS_KEY_ID and APP_AWS_SECRET_ACCESS_KEY environment variables.` + `Invalid AWS credentials. Please check APP_AWS_ACCESS_KEY_ID and APP_AWS_SECRET_ACCESS_KEY environment variables.`, ); } } - - throw error instanceof Error - ? error - : new Error('Failed to upload questionnaire file'); + + throw error instanceof Error ? error : new Error('Failed to upload questionnaire file'); } }); - diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/page.tsx b/apps/app/src/app/(app)/[orgId]/security-questionnaire/page.tsx index f960ef3ca..88114ca0d 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/page.tsx @@ -1,7 +1,7 @@ import { getFeatureFlags } from '@/app/posthog'; import { AppOnboarding } from '@/components/app-onboarding'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { notFound } from 'next/navigation'; import { cache } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/api-keys/page.tsx b/apps/app/src/app/(app)/[orgId]/settings/api-keys/page.tsx index b09fd8a05..c13e4995d 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/api-keys/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/api-keys/page.tsx @@ -3,7 +3,7 @@ import { headers } from 'next/headers'; import { cache } from 'react'; import PageCore from '@/components/pages/PageCore.tsx'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { ApiKeysTable } from './components/table/ApiKeysTable'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx index 3381b4830..a209e21fb 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx @@ -3,7 +3,7 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableToolbar } from '@/components/data-table/data-table-toolbar'; import { useDataTable } from '@/hooks/use-data-table'; import { Button } from '@comp/ui/button'; -import type { Context } from '@db'; +import type { Context } from '@trycompai/db'; import { Plus } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { useMemo } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx index f130f9428..55b3bcdff 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx @@ -7,7 +7,7 @@ import { Button } from '@comp/ui/button'; import { Input } from '@comp/ui/input'; import { Label } from '@comp/ui/label'; import { Textarea } from '@comp/ui/textarea'; -import type { Context } from '@db'; +import type { Context } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useTransition } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx index 0883b99d4..984a6e041 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx @@ -1,6 +1,6 @@ import { Badge } from '@comp/ui/badge'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import type { Context } from '@db'; +import type { Context } from '@trycompai/db'; export async function ContextHubList({ entries }: { entries: Context[] }) { return ( diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx index e8ca2081a..492685a11 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx @@ -29,7 +29,7 @@ import { DialogTitle, DialogTrigger, } from '@comp/ui/dialog'; -import type { Context } from '@db'; +import type { Context } from '@trycompai/db'; import { Pencil, Plus } from 'lucide-react'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx index 05e6c2eed..160c5fb5c 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx @@ -13,8 +13,8 @@ import { AlertDialogTrigger, } from '@comp/ui/alert-dialog'; import { Button } from '@comp/ui/button'; -import type { Context } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import type { Context } from '@trycompai/db'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/data/getContextEntries.ts b/apps/app/src/app/(app)/[orgId]/settings/context-hub/data/getContextEntries.ts index 85e429cd8..560d5208c 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/data/getContextEntries.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/data/getContextEntries.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { cache } from 'react'; import 'server-only'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/page.tsx b/apps/app/src/app/(app)/[orgId]/settings/page.tsx index 4e4a00f92..6a8f298cd 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/page.tsx @@ -3,7 +3,7 @@ import { UpdateOrganizationAdvancedMode } from '@/components/forms/organization/ import { UpdateOrganizationName } from '@/components/forms/organization/update-organization-name'; import { UpdateOrganizationWebsite } from '@/components/forms/organization/update-organization-website'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { cache } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/secrets/page.tsx b/apps/app/src/app/(app)/[orgId]/settings/secrets/page.tsx index 42c48fdf3..7096004a4 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/secrets/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/secrets/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { cache } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts index 0c2cc28b1..ed1c44243 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts @@ -2,7 +2,7 @@ import { authActionClient } from '@/actions/safe-action'; import { env } from '@/env.mjs'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { Vercel } from '@vercel/sdk'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/custom-domain.ts b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/custom-domain.ts index c2039536e..14260abfb 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/custom-domain.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/custom-domain.ts @@ -3,7 +3,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { Vercel } from '@vercel/sdk'; import { revalidatePath, revalidateTag } from 'next/cache'; import { env } from 'node:process'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/is-friendly-available.ts b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/is-friendly-available.ts index aa4f1c2d5..b4a8b89d0 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/is-friendly-available.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/is-friendly-available.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { z } from 'zod'; const isFriendlyAvailableSchema = z.object({ diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/trust-portal-switch.ts b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/trust-portal-switch.ts index 5c8522e2f..dfeadff52 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/trust-portal-switch.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/trust-portal-switch.ts @@ -3,7 +3,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/update-trust-portal-frameworks.ts b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/update-trust-portal-frameworks.ts index 03b9193fb..5980363b0 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/update-trust-portal-frameworks.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/update-trust-portal-frameworks.ts @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { headers } from 'next/headers'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/page.tsx b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/page.tsx index d2cd6f276..745288e06 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { cache } from 'react'; @@ -81,7 +81,10 @@ const getTrustPortal = cache(async (orgId: string) => { pcidss: trustPortal?.pci_dss, nen7510: trustPortal?.nen7510, soc2type1Status: trustPortal?.soc2type1_status, - soc2type2Status: !trustPortal?.soc2type2 && trustPortal?.soc2 ? trustPortal?.soc2_status : trustPortal?.soc2type2_status, + soc2type2Status: + !trustPortal?.soc2type2 && trustPortal?.soc2 + ? trustPortal?.soc2_status + : trustPortal?.soc2type2_status, iso27001Status: trustPortal?.iso27001_status, iso42001Status: trustPortal?.iso42001_status, gdprStatus: trustPortal?.gdpr_status, diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/actions/delete-task.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/actions/delete-task.ts index c5950816b..32450ba0b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/actions/delete-task.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/actions/delete-task.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/generate-suggestions.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/generate-suggestions.ts index 178b1f13d..7f8dbc64b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/generate-suggestions.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/generate-suggestions.ts @@ -1,7 +1,7 @@ 'use server'; import { groq } from '@ai-sdk/groq'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { generateObject, NoObjectGeneratedError } from 'ai'; import { performance } from 'perf_hooks'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/task-automation-actions.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/task-automation-actions.ts index 40100081b..a16d96162 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/task-automation-actions.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/actions/task-automation-actions.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; /** * Server actions for task automation * These actions securely call the enterprise API with server-side license key diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/workflow/workflow-visualizer-simple.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/workflow/workflow-visualizer-simple.tsx index fc642e8a0..bfb339d7a 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/workflow/workflow-visualizer-simple.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/workflow/workflow-visualizer-simple.tsx @@ -19,7 +19,7 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; -import { EvidenceAutomationVersion } from '@db'; +import { EvidenceAutomationVersion } from '@trycompai/db'; import { Code, Loader2, RotateCcw, Upload, Zap } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useEffect, useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/hooks/use-automation-versions.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/hooks/use-automation-versions.ts index d326455ad..6e5f2743e 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/hooks/use-automation-versions.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/hooks/use-automation-versions.ts @@ -1,5 +1,5 @@ import { api } from '@/lib/api-client'; -import { EvidenceAutomationVersion } from '@db'; +import { EvidenceAutomationVersion } from '@trycompai/db'; import { useParams } from 'next/navigation'; import { useCallback, useState } from 'react'; import useSWR from 'swr'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/page.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/page.tsx index 03b122f87..301a55f8b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/page.tsx @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { redirect } from 'next/navigation'; import { loadChatHistory } from './actions/task-automation-actions'; import { AutomationLayoutWrapper } from './automation-layout-wrapper'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/AutomationOverview.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/AutomationOverview.tsx index 601ba69bf..141edcbed 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/AutomationOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/AutomationOverview.tsx @@ -18,7 +18,12 @@ import { } from '@comp/ui/dropdown-menu'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Textarea } from '@comp/ui/textarea'; -import { EvidenceAutomation, EvidenceAutomationRun, EvidenceAutomationVersion, Task } from '@db'; +import { + EvidenceAutomation, + EvidenceAutomationRun, + EvidenceAutomationVersion, + Task, +} from '@trycompai/db'; import { ChevronRight, Loader2, MoreVertical, Play, Trash2 } from 'lucide-react'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/MetricsSection.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/MetricsSection.tsx index c2afef968..46bd4c60b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/MetricsSection.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/MetricsSection.tsx @@ -5,7 +5,7 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent } from '@comp/ui/card'; import { Input } from '@comp/ui/input'; import { Switch } from '@comp/ui/switch'; -import { EvidenceAutomationRun, EvidenceAutomationVersion } from '@db'; +import { EvidenceAutomationRun, EvidenceAutomationVersion } from '@trycompai/db'; import { Clock, Code2 } from 'lucide-react'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/VersionsCard.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/VersionsCard.tsx index bb356f9a9..bb60d9684 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/VersionsCard.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/components/VersionsCard.tsx @@ -10,7 +10,7 @@ import { DialogHeader, DialogTitle, } from '@comp/ui/dialog'; -import { EvidenceAutomationVersion } from '@db'; +import { EvidenceAutomationVersion } from '@trycompai/db'; import { formatDistanceToNow } from 'date-fns'; import { History, RotateCcw } from 'lucide-react'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/hooks/use-automation-runs.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/hooks/use-automation-runs.ts index e576838c0..46b5a55d6 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/hooks/use-automation-runs.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/hooks/use-automation-runs.ts @@ -1,4 +1,4 @@ -import { EvidenceAutomationRun } from '@db'; +import { EvidenceAutomationRun } from '@trycompai/db'; import { useParams } from 'next/navigation'; import useSWR from 'swr'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/page.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/page.tsx index 22eb87a11..5b554951c 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automations/[automationId]/overview/page.tsx @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { redirect } from 'next/navigation'; import { AutomationOverview } from './components/AutomationOverview'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AttachmentItem.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AttachmentItem.tsx index 2b3d82fc6..78e13f423 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AttachmentItem.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AttachmentItem.tsx @@ -11,7 +11,7 @@ import { } from '@comp/ui/alert-dialog'; import { Button } from '@comp/ui/button'; import { cn } from '@comp/ui/cn'; -import type { Attachment, AttachmentType } from '@db'; +import type { Attachment, AttachmentType } from '@trycompai/db'; import { Loader2, Trash2 } from 'lucide-react'; import React from 'react'; import { getAttachmentIconAndColor } from '../utils/attachmentUtils'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AutomationRunsCard.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AutomationRunsCard.tsx index 8852ded3e..801808287 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AutomationRunsCard.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/AutomationRunsCard.tsx @@ -3,7 +3,7 @@ import { Badge } from '@comp/ui/badge'; import { Button } from '@comp/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { EvidenceAutomationRun, EvidenceAutomationRunStatus } from '@db'; +import { EvidenceAutomationRun, EvidenceAutomationRunStatus } from '@trycompai/db'; import { formatDistanceToNow } from 'date-fns'; import { Activity, ChevronDown } from 'lucide-react'; import { useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/SingleTask.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/SingleTask.tsx index 68fe52095..198a20ac4 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/SingleTask.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/SingleTask.tsx @@ -25,7 +25,7 @@ import { type Member, type Task, type User, -} from '@db'; +} from '@trycompai/db'; import { ChevronRight, RefreshCw, Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import Link from 'next/link'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskAutomations.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskAutomations.tsx index 139a9448f..9fcb8651e 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskAutomations.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskAutomations.tsx @@ -3,7 +3,7 @@ import { cn } from '@/lib/utils'; import { Button } from '@comp/ui/button'; import { Separator } from '@comp/ui/separator'; -import { EvidenceAutomation, EvidenceAutomationRun } from '@db'; +import { EvidenceAutomation, EvidenceAutomationRun } from '@trycompai/db'; import { formatDistanceToNow } from 'date-fns'; import { ArrowRight, Brain, CheckCircle2, Loader2, Plus, TrendingUp, XCircle } from 'lucide-react'; import Link from 'next/link'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskBody.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskBody.tsx index 320b37ef3..443730b48 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskBody.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskBody.tsx @@ -1,7 +1,7 @@ 'use client'; import { useTaskAttachmentActions, useTaskAttachments } from '@/hooks/use-tasks-api'; -import type { AttachmentEntityType } from '@db'; +import type { AttachmentEntityType } from '@trycompai/db'; import { FileIcon, FileText, ImageIcon, Loader2, Plus, X } from 'lucide-react'; import type React from 'react'; import { useCallback, useEffect, useRef, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskDeleteDialog.tsx index 1f4feb880..dafb34e90 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskDeleteDialog.tsx @@ -10,8 +10,8 @@ import { DialogTitle, } from '@comp/ui/dialog'; import { Form } from '@comp/ui/form'; -import { Task } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Task } from '@trycompai/db'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskMainContent.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskMainContent.tsx index b1a5bba22..db675d8c1 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskMainContent.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskMainContent.tsx @@ -1,6 +1,6 @@ 'use client'; -import { type Task } from '@db'; +import { type Task } from '@trycompai/db'; import { TaskBody } from './TaskBody'; interface TaskMainContentProps { diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskPropertiesSidebar.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskPropertiesSidebar.tsx index da06eb905..0af4d841c 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskPropertiesSidebar.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/TaskPropertiesSidebar.tsx @@ -4,7 +4,7 @@ import { useOrganizationMembers } from '@/hooks/use-organization-members'; import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; import { Badge } from '@comp/ui/badge'; import { Button } from '@comp/ui/button'; -import type { Departments, Member, Task, TaskFrequency, TaskStatus, User } from '@db'; +import type { Departments, Member, Task, TaskFrequency, TaskStatus, User } from '@trycompai/db'; import { format } from 'date-fns'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/commentUtils.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/commentUtils.tsx index e8ac84613..2bb022700 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/commentUtils.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/commentUtils.tsx @@ -1,4 +1,4 @@ -import { AttachmentType } from '@db'; +import { AttachmentType } from '@trycompai/db'; import { FileAudio, FileQuestion, FileText, FileVideo } from 'lucide-react'; // Formats a date (string or Date object) into relative time string (e.g., "5m ago") diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/constants.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/constants.ts index c2a1481f7..225cb86d2 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/constants.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/components/constants.ts @@ -1,4 +1,4 @@ -import { Departments, TaskFrequency, TaskStatus } from '@db'; +import { Departments, TaskFrequency, TaskStatus } from '@trycompai/db'; // Define possible statuses based on the Prisma schema export const taskStatuses: TaskStatus[] = Object.values(TaskStatus); diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automation-runs.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automation-runs.ts index 3b387ed5f..4087eb472 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automation-runs.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automation-runs.ts @@ -1,5 +1,5 @@ import { api } from '@/lib/api-client'; -import { EvidenceAutomationRun } from '@db'; +import { EvidenceAutomationRun } from '@trycompai/db'; import { useParams } from 'next/navigation'; import useSWR from 'swr'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automations.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automations.ts index 9141946c6..4159c6ac0 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automations.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task-automations.ts @@ -1,5 +1,5 @@ import { api } from '@/lib/api-client'; -import { EvidenceAutomation, EvidenceAutomationRun } from '@db'; +import { EvidenceAutomation, EvidenceAutomationRun } from '@trycompai/db'; import { useParams } from 'next/navigation'; import useSWR from 'swr'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task.ts index dd0310c58..9514079b5 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/hooks/use-task.ts @@ -1,5 +1,5 @@ import { api } from '@/lib/api-client'; -import { Control, Task } from '@db'; +import { Control, Task } from '@trycompai/db'; import { useParams } from 'next/navigation'; import useSWR from 'swr'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/page.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/page.tsx index 1a30c19b9..8828c65c7 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/page.tsx @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { redirect } from 'next/navigation'; import { SingleTask } from './components/SingleTask'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/utils/attachmentUtils.ts b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/utils/attachmentUtils.ts index 3be85ca9c..71de4f49b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/utils/attachmentUtils.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/utils/attachmentUtils.ts @@ -1,4 +1,4 @@ -import type { AttachmentType } from '@db'; +import type { AttachmentType } from '@trycompai/db'; import { FileAudio, FileIcon, FileImage, FileText, FileVideo } from 'lucide-react'; import type React from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/actions/deleteTaskAttachment.ts b/apps/app/src/app/(app)/[orgId]/tasks/actions/deleteTaskAttachment.ts index 1c1ddae2f..a2b9da60f 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/actions/deleteTaskAttachment.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/actions/deleteTaskAttachment.ts @@ -3,7 +3,7 @@ import { BUCKET_NAME, extractS3KeyFromUrl, s3Client } from '@/app/s3'; import { auth } from '@/utils/auth'; import { DeleteObjectCommand } from '@aws-sdk/client-s3'; -import { Attachment, AttachmentEntityType, db } from '@db'; +import { Attachment, AttachmentEntityType, db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/actions/getTaskAttachmentUrl.ts b/apps/app/src/app/(app)/[orgId]/tasks/actions/getTaskAttachmentUrl.ts index 1f8f93867..7cd8b6b65 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/actions/getTaskAttachmentUrl.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/actions/getTaskAttachmentUrl.ts @@ -4,7 +4,7 @@ import { BUCKET_NAME, extractS3KeyFromUrl, s3Client } from '@/app/s3'; // Import import { auth } from '@/utils/auth'; import { GetObjectCommand } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { AttachmentEntityType, db } from '@db'; +import { AttachmentEntityType, db } from '@trycompai/db'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTask.ts b/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTask.ts index 020492bf3..daf7e4d08 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTask.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTask.ts @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db, Task } from '@db'; +import { db, Task } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskOrder.ts b/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskOrder.ts index 4134c612b..2aa56f06a 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskOrder.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskOrder.ts @@ -2,7 +2,7 @@ import type { ActionResponse } from '@/types/actions'; import { auth } from '@/utils/auth'; -import { db, TaskStatus } from '@db'; +import { db, TaskStatus } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskStatus.ts b/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskStatus.ts index 7ea952f6b..0832a824b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskStatus.ts +++ b/apps/app/src/app/(app)/[orgId]/tasks/actions/updateTaskStatus.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db, TaskStatus } from '@db'; +import { db, TaskStatus } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationIndicator.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationIndicator.tsx index f4c090c34..3da203d50 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationIndicator.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationIndicator.tsx @@ -1,6 +1,5 @@ 'use client'; -import type { EvidenceAutomation, EvidenceAutomationRun } from '@db'; import { CheckCircle2, Circle, Loader2, Sparkles, XCircle } from 'lucide-react'; import { useMemo } from 'react'; @@ -19,7 +18,10 @@ interface AutomationIndicatorProps { variant?: 'badge' | 'inline'; } -export function AutomationIndicator({ automations = [], variant = 'badge' }: AutomationIndicatorProps) { +export function AutomationIndicator({ + automations = [], + variant = 'badge', +}: AutomationIndicatorProps) { const automationState = useMemo(() => { if (!automations || automations.length === 0) return null; @@ -68,15 +70,17 @@ export function AutomationIndicator({ automations = [], variant = 'badge' }: Aut return (
- + {automationState.status === 'running' && ( )} @@ -109,13 +113,14 @@ export function AutomationIndicator({ automations = [], variant = 'badge' }: Aut
- + {automationState.count > 1 ? `${automationState.count} automations` : 'Automated'}
); } - diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationsSection.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationsSection.tsx index 13b3503a6..4f100210a 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationsSection.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/AutomationsSection.tsx @@ -2,7 +2,7 @@ import { Badge } from '@comp/ui/badge'; import { Card } from '@comp/ui/card'; -import type { EvidenceAutomation, EvidenceAutomationRun, Task } from '@db'; +import type { Task } from '@trycompai/db'; import { formatDistanceToNow } from 'date-fns'; import { Activity, ArrowRight, CheckCircle2, Clock, Sparkles, XCircle } from 'lucide-react'; import Link from 'next/link'; @@ -109,11 +109,7 @@ export function AutomationsSection({ automations }: AutomationsSectionProps) { }).length; const errorCount = automations.filter((a) => { const run = a.runs?.[0]; - return ( - a.isEnabled && - run && - (run.status === 'failed' || run.evaluationStatus === 'fail') - ); + return a.isEnabled && run && (run.status === 'failed' || run.evaluationStatus === 'fail'); }).length; return ( diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/CreateTaskSheet.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/CreateTaskSheet.tsx index ac9d3983f..418ae1766 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/CreateTaskSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/CreateTaskSheet.tsx @@ -12,8 +12,8 @@ import MultipleSelector, { Option } from '@comp/ui/multiple-selector'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@comp/ui/sheet'; import { Textarea } from '@comp/ui/textarea'; -import { Departments, Member, TaskFrequency, User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Departments, Member, TaskFrequency, User } from '@trycompai/db'; import { ArrowRightIcon, X } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/ModernTaskList.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/ModernTaskList.tsx index 91b82456d..48186e6f9 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/ModernTaskList.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/ModernTaskList.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Control, EvidenceAutomation, EvidenceAutomationRun, Member, Task, User } from '@db'; +import type { Member, Task, User } from '@trycompai/db'; import { Check, Circle, Loader2, XCircle } from 'lucide-react'; import Image from 'next/image'; import { usePathname, useRouter } from 'next/navigation'; @@ -140,7 +140,9 @@ export function ModernTaskList({ tasks, members, statusFilter }: ModernTaskListP
-
+
{task.title}
{task.description && ( -
+
{task.description}
)} diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/StatusGroup.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/StatusGroup.tsx index baae7caea..8a7b299bc 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/StatusGroup.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/StatusGroup.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Member, Task, User } from '@db'; +import type { Member, Task, User } from '@trycompai/db'; import clsx from 'clsx'; import { useRef } from 'react'; import { useDrop } from 'react-dnd'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskCard.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskCard.tsx index bebf84474..99a251813 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskCard.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskCard.tsx @@ -1,12 +1,12 @@ 'use client'; -import type { Member, Task, User } from '@db'; +import type { Member, Task, User } from '@trycompai/db'; +import { format } from 'date-fns'; import Image from 'next/image'; import { usePathname, useRouter } from 'next/navigation'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useDrag, useDrop } from 'react-dnd'; import { TaskStatusSelector } from './TaskStatusSelector'; -import { format } from 'date-fns'; // DnD Item Type identifier for tasks. export const ItemTypes = { @@ -198,9 +198,7 @@ export function TaskCard({ {task.title}
- {task.createdAt - ? format(new Date(task.createdAt), 'MMM d, yyyy') - : ''} + {task.createdAt ? format(new Date(task.createdAt), 'MMM d, yyyy') : ''}
{assignedMember?.user?.image ? ( diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskList.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskList.tsx index ab8fa7923..eb97a96d0 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskList.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskList.tsx @@ -2,7 +2,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Separator } from '@comp/ui/separator'; -import type { Member, Task, User } from '@db'; +import type { Member, Task, User } from '@trycompai/db'; import { Check, Circle, FolderTree, List, Plus, XCircle } from 'lucide-react'; import Image from 'next/image'; import { useParams } from 'next/navigation'; @@ -88,7 +88,9 @@ export function TaskList({ // Calculate overall stats from all tasks (not filtered) const overallStats = useMemo(() => { const total = initialTasks.length; - const done = initialTasks.filter((t) => t.status === 'done' || t.status === 'not_relevant').length; + const done = initialTasks.filter( + (t) => t.status === 'done' || t.status === 'not_relevant', + ).length; const inProgress = initialTasks.filter((t) => t.status === 'in_progress').length; const todo = initialTasks.filter((t) => t.status === 'todo').length; const completionRate = total > 0 ? Math.round((done / total) * 100) : 0; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusIndicator.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusIndicator.tsx index 50614f0e3..c3b478ead 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusIndicator.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusIndicator.tsx @@ -1,5 +1,5 @@ import { cn } from '@comp/ui/cn'; -import type { TaskStatus } from '@db'; +import type { TaskStatus } from '@trycompai/db'; import { BadgeCheck, Circle, CircleDashed, Loader2, OctagonX } from 'lucide-react'; interface TaskStatusIndicatorProps { diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusSelector.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusSelector.tsx index 58d34f765..2168224de 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusSelector.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/TaskStatusSelector.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Task, TaskStatus } from '@db'; +import type { Task, TaskStatus } from '@trycompai/db'; import { TaskStatusIndicator } from './TaskStatusIndicator'; interface TaskStatusSelectorProps { diff --git a/apps/app/src/app/(app)/[orgId]/tasks/components/TasksByCategory.tsx b/apps/app/src/app/(app)/[orgId]/tasks/components/TasksByCategory.tsx index a7ed8c453..43c9e74c9 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/components/TasksByCategory.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/components/TasksByCategory.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { Member, Task, User } from '@db'; +import type { Member, Task, User } from '@trycompai/db'; import { ArrowLeft, Folder } from 'lucide-react'; import Image from 'next/image'; import { usePathname, useRouter } from 'next/navigation'; @@ -112,7 +112,9 @@ export function TasksByCategory({ tasks, members, statusFilter }: TasksByCategor // Calculate stats for a category const getCategoryStats = (categoryTasks: Task[]) => { const total = categoryTasks.length; - const done = categoryTasks.filter((t) => t.status === 'done' || t.status === 'not_relevant').length; + const done = categoryTasks.filter( + (t) => t.status === 'done' || t.status === 'not_relevant', + ).length; const inProgress = categoryTasks.filter((t) => t.status === 'in_progress').length; const completionRate = total > 0 ? Math.round((done / total) * 100) : 0; return { total, done, inProgress, completionRate }; @@ -287,9 +289,11 @@ export function TasksByCategory({ tasks, members, statusFilter }: TasksByCategor
-

+

{task.title}

{task.description && ( -

+

{task.description}

)} diff --git a/apps/app/src/app/(app)/[orgId]/tasks/page.tsx b/apps/app/src/app/(app)/[orgId]/tasks/page.tsx index 66d9a544f..91b3dd51b 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db, Role } from '@db'; +import { db, Role } from '@trycompai/db'; import { Metadata } from 'next'; import { headers } from 'next/headers'; import { TaskList } from './components/TaskList'; @@ -57,27 +57,27 @@ const getTasks = async () => { name: true, }, }, - evidenceAutomations: { + evidenceAutomations: { + select: { + id: true, + isEnabled: true, + name: true, + runs: { + orderBy: { + createdAt: 'desc', + }, + take: 3, select: { - id: true, - isEnabled: true, - name: true, - runs: { - orderBy: { - createdAt: 'desc', - }, - take: 3, - select: { - status: true, - success: true, - evaluationStatus: true, - createdAt: true, - triggeredBy: true, - runDuration: true, - }, - }, + status: true, + success: true, + evaluationStatus: true, + createdAt: true, + triggeredBy: true, + runDuration: true, }, }, + }, + }, }, orderBy: [{ status: 'asc' }, { title: 'asc' }], }); diff --git a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/actions/deleteVendor.ts b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/actions/deleteVendor.ts index 51ef230c3..a424235c4 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/actions/deleteVendor.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/actions/deleteVendor.ts @@ -2,7 +2,7 @@ import { authActionClient } from '@/actions/safe-action'; import type { ActionResponse } from '@/actions/types'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/components/VendorsTable.tsx b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/components/VendorsTable.tsx index 7cd700543..a80aab219 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/components/VendorsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/components/VendorsTable.tsx @@ -6,8 +6,8 @@ import { OnboardingLoadingAnimation } from '@/components/onboarding-loading-anim import { useDataTable } from '@/hooks/use-data-table'; import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; import { useSession } from '@/utils/auth-client'; -import { Departments, Vendor } from '@db'; import { ColumnDef } from '@tanstack/react-table'; +import { Departments, Vendor } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { parseAsInteger, parseAsString, parseAsStringEnum, useQueryState } from 'nuqs'; import { useCallback, useMemo } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/queries.ts b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/queries.ts index a50090586..600d7750c 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/queries.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/queries.ts @@ -1,5 +1,5 @@ -import type { Member, User, Vendor } from '@db'; -import { db } from '@db'; +import type { Member, User, Vendor } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { cache } from 'react'; import type { GetVendorsSchema } from './validations'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/validations.ts b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/validations.ts index d284f0a13..c239f124d 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/validations.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/data/validations.ts @@ -1,5 +1,5 @@ import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; -import { Departments, Vendor, VendorStatus } from '@db'; +import { Departments, Vendor, VendorStatus } from '@trycompai/db'; import { createSearchParamsCache, parseAsInteger, diff --git a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/page.tsx b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/page.tsx index fd7e4116a..093f620bc 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/(overview)/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/(overview)/page.tsx @@ -1,7 +1,7 @@ import { AppOnboarding } from '@/components/app-onboarding'; import PageWithBreadcrumb from '@/components/pages/PageWithBreadcrumb'; import type { SearchParams } from '@/types'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { Metadata } from 'next'; import { CreateVendorSheet } from '../components/create-vendor-sheet'; import { VendorsTable } from './components/VendorsTable'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/regenerate-vendor-mitigation.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/regenerate-vendor-mitigation.ts index eb21d3d0e..411988a67 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/regenerate-vendor-mitigation.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/regenerate-vendor-mitigation.ts @@ -6,8 +6,8 @@ import { findCommentAuthor, type PolicyContext, } from '@/jobs/tasks/onboarding/onboard-organization-helpers'; -import { db } from '@db'; import { tasks } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { z } from 'zod'; export const regenerateVendorMitigationAction = authActionClient diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/schema.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/schema.ts index fa93708db..53806398a 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/schema.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/schema.ts @@ -1,4 +1,4 @@ -import { TaskStatus, VendorCategory, VendorStatus } from '@db'; +import { TaskStatus, VendorCategory, VendorStatus } from '@trycompai/db'; import { z } from 'zod'; export const createVendorTaskCommentSchema = z.object({ diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/create-task-action.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/create-task-action.ts index 18039c216..1115a8abd 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/create-task-action.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/create-task-action.ts @@ -3,7 +3,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { createVendorTaskSchema } from '../schema'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/update-task-action.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/update-task-action.ts index 9cb1ebd8d..52dd0f406 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/update-task-action.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/task/update-task-action.ts @@ -3,8 +3,8 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import type { TaskStatus } from '@db'; -import { db } from '@db'; +import type { TaskStatus } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { updateVendorTaskSchema } from '../schema'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-action.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-action.ts index b7336da7c..ee7031f7f 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-action.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-action.ts @@ -3,7 +3,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath, revalidateTag } from 'next/cache'; import { updateVendorSchema } from './schema'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-inherent-risk.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-inherent-risk.ts index 835d943b4..d49cd555b 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-inherent-risk.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-inherent-risk.ts @@ -2,7 +2,7 @@ import { appErrors } from '@/lib/errors'; import type { ActionResponse } from '@/types/actions'; -import { db, Impact, Likelihood } from '@db'; +import { db, Impact, Likelihood } from '@trycompai/db'; import { createSafeActionClient } from 'next-safe-action'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-residual-risk.ts b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-residual-risk.ts index 50a066d76..889ca0135 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-residual-risk.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/actions/update-vendor-residual-risk.ts @@ -2,7 +2,7 @@ import { appErrors } from '@/lib/errors'; import type { ActionResponse } from '@/types/actions'; -import { db, Impact, Likelihood } from '@db'; +import { db, Impact, Likelihood } from '@trycompai/db'; import { createSafeActionClient } from 'next-safe-action'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskChart.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskChart.tsx index 886f636b8..b484ed3a5 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskChart.tsx @@ -1,7 +1,7 @@ 'use client'; import { RiskMatrixChart } from '@/components/risks/charts/RiskMatrixChart'; -import type { Vendor } from '@db'; +import type { Vendor } from '@trycompai/db'; import { updateVendorInherentRisk } from '../actions/update-vendor-inherent-risk'; interface InherentRiskChartProps { diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskSheet.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskSheet.tsx index be0c9a485..d093c39f2 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorInherentRiskSheet.tsx @@ -6,7 +6,7 @@ import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import { Impact, Likelihood } from '@db'; +import { Impact, Likelihood } from '@trycompai/db'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskChart.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskChart.tsx index 5a02945d8..5a8c3e36d 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskChart.tsx @@ -1,7 +1,7 @@ 'use client'; import { RiskMatrixChart } from '@/components/risks/charts/RiskMatrixChart'; -import type { Vendor } from '@db'; +import type { Vendor } from '@trycompai/db'; import { updateVendorResidualRisk } from '../actions/update-vendor-residual-risk'; interface ResidualRiskChartProps { diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskSheet.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskSheet.tsx index b7cd3fd55..42bde9cdf 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/VendorResidualRiskSheet.tsx @@ -6,7 +6,7 @@ import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import type { Vendor } from '@db'; +import type { Vendor } from '@trycompai/db'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/secondary-fields.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/secondary-fields.tsx index 6281f18fe..30ed16c9e 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/secondary-fields.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/secondary-fields.tsx @@ -2,7 +2,7 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import type { GlobalVendors, Member, User, Vendor } from '@db'; +import type { GlobalVendors, Member, User, Vendor } from '@trycompai/db'; import { PencilIcon } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { UpdateTitleAndDescriptionSheet } from '../title-and-description/update-title-and-description-sheet'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/update-secondary-fields-form.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/update-secondary-fields-form.tsx index 4e030e3bc..9af2d795d 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/update-secondary-fields-form.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/secondary-fields/update-secondary-fields-form.tsx @@ -5,8 +5,8 @@ import { VENDOR_STATUS_TYPES, VendorStatus } from '@/components/vendor-status'; import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Member, type User, type Vendor, VendorCategory } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Member, type User, type Vendor, VendorCategory } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useForm } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/create-vendor-task-form.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/create-vendor-task-form.tsx index 718b1d4f4..7b18e7410 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/create-vendor-task-form.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/create-vendor-task-form.tsx @@ -9,8 +9,8 @@ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from ' import { Input } from '@comp/ui/input'; import { Popover, PopoverContent, PopoverTrigger } from '@comp/ui/popover'; import { Textarea } from '@comp/ui/textarea'; -import { Member, User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Member, User } from '@trycompai/db'; import { format } from 'date-fns'; import { ArrowRightIcon, CalendarIcon } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/client-columns.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/client-columns.tsx index 86cdc92de..598d2e92f 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/client-columns.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/client-columns.tsx @@ -1,7 +1,7 @@ import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; import { Badge } from '@comp/ui/badge'; -import { Task, TaskStatus } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import { Task, TaskStatus } from '@trycompai/db'; import { format } from 'date-fns'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/columns.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/columns.tsx index e62d5d8df..4e337c973 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/columns.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/columns.tsx @@ -2,8 +2,8 @@ import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; import { Badge } from '@comp/ui/badge'; -import { VendorStatus } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import { VendorStatus } from '@trycompai/db'; import { format } from 'date-fns'; import Link from 'next/link'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/data-table.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/data-table.tsx index 2ccaff2b3..b0e273a81 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/data-table.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/data-table.tsx @@ -1,8 +1,8 @@ 'use client'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@comp/ui/table'; -import type { Task } from '@db'; import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; +import type { Task } from '@trycompai/db'; import { usePathname, useRouter, useSearchParams } from 'next/navigation'; import { useGetColumnHeaders } from './client-columns'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/filter-toolbar.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/filter-toolbar.tsx index 9e29ab6bd..591da4b37 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/filter-toolbar.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/tasks/data-table/filter-toolbar.tsx @@ -3,7 +3,7 @@ import { Button } from '@comp/ui/button'; import { Input } from '@comp/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import type { TaskStatus, User } from '@db'; +import type { TaskStatus, User } from '@trycompai/db'; import { XIcon } from 'lucide-react'; import { usePathname, useRouter, useSearchParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/title-and-description.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/title-and-description.tsx index 91e5c8286..03b872f15 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/title-and-description.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/title-and-description.tsx @@ -3,7 +3,7 @@ import { Alert, AlertDescription, AlertTitle } from '@comp/ui/alert'; import { Button } from '@comp/ui/button'; import { Icons } from '@comp/ui/icons'; -import type { User, Vendor } from '@db'; +import type { User, Vendor } from '@trycompai/db'; import { PencilIcon } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { UpdateTitleAndDescriptionSheet } from './update-title-and-description-sheet'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-form.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-form.tsx index 80c88a99e..18dd8cc05 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-form.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-form.tsx @@ -5,8 +5,8 @@ import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Input } from '@comp/ui/input'; import { Textarea } from '@comp/ui/textarea'; -import type { Vendor } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Vendor } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-sheet.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-sheet.tsx index ad743854b..de913f3da 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-sheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/components/title-and-description/update-title-and-description-sheet.tsx @@ -5,7 +5,7 @@ import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import type { Vendor } from '@db'; +import type { Vendor } from '@trycompai/db'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/InherentRiskForm.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/InherentRiskForm.tsx index 83713894f..dd28b978a 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/InherentRiskForm.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/InherentRiskForm.tsx @@ -5,8 +5,8 @@ import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { useToast } from '@comp/ui/use-toast'; -import { Impact, Likelihood } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Impact, Likelihood } from '@trycompai/db'; import { useQueryState } from 'nuqs'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/ResidualRiskForm.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/ResidualRiskForm.tsx index 768a8a792..c8d46f0ed 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/ResidualRiskForm.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/forms/risks/ResidualRiskForm.tsx @@ -5,8 +5,8 @@ import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { useToast } from '@comp/ui/use-toast'; -import { Impact, Likelihood } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Impact, Likelihood } from '@trycompai/db'; import { useQueryState } from 'nuqs'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/page.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/page.tsx index 1d03a7c75..e3a0e23db 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/page.tsx @@ -2,7 +2,7 @@ import PageWithBreadcrumb from '@/components/pages/PageWithBreadcrumb'; import { auth } from '@/utils/auth'; -import { CommentEntityType, db } from '@db'; +import { CommentEntityType, db } from '@trycompai/db'; import type { Metadata } from 'next'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/secondary-fields/secondary-fields.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/secondary-fields/secondary-fields.tsx index 120151982..f48b9d01b 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/secondary-fields/secondary-fields.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/secondary-fields/secondary-fields.tsx @@ -5,8 +5,8 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import type { Member, Task, User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Member, Task, User } from '@trycompai/db'; import { ArrowRightIcon, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useForm } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/title.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/title.tsx index 8eb3fd57c..b114e8c3b 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/title.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/title.tsx @@ -4,7 +4,7 @@ import { Alert, AlertDescription, AlertTitle } from '@comp/ui/alert'; import { Button } from '@comp/ui/button'; import { Icons } from '@comp/ui/icons'; import { Sheet, SheetContent } from '@comp/ui/sheet'; -import type { Member, Task, User } from '@db'; +import type { Member, Task, User } from '@trycompai/db'; import { PencilIcon } from 'lucide-react'; import dynamic from 'next/dynamic'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/update-task-sheet.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/update-task-sheet.tsx index 3d391c8e8..da270b062 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/update-task-sheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/components/title/update-task-sheet.tsx @@ -7,8 +7,8 @@ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from ' import { Input } from '@comp/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Textarea } from '@comp/ui/textarea'; -import type { Member, Task, User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Member, Task, User } from '@trycompai/db'; import { ArrowRightIcon } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/page.tsx b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/page.tsx index 8d4239106..20d348855 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/page.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/[vendorId]/tasks/[taskId]/page.tsx @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { notFound, redirect } from 'next/navigation'; import SecondaryFields from './components/secondary-fields/secondary-fields'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/actions/create-vendor-action.ts b/apps/app/src/app/(app)/[orgId]/vendors/actions/create-vendor-action.ts index ec18e43d7..03a63e9d1 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/actions/create-vendor-action.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/actions/create-vendor-action.ts @@ -2,7 +2,7 @@ import type { ActionResponse } from '@/types/actions'; import { auth } from '@/utils/auth'; -import { db, type Vendor, VendorCategory, VendorStatus } from '@db'; +import { db, type Vendor, VendorCategory, VendorStatus } from '@trycompai/db'; import { createSafeActionClient } from 'next-safe-action'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/actions/search-global-vendors-action.ts b/apps/app/src/app/(app)/[orgId]/vendors/actions/search-global-vendors-action.ts index f345cdb06..f1f1e5a13 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/actions/search-global-vendors-action.ts +++ b/apps/app/src/app/(app)/[orgId]/vendors/actions/search-global-vendors-action.ts @@ -1,7 +1,7 @@ 'use server'; import { authActionClient } from '@/actions/safe-action'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { z } from 'zod'; const schema = z.object({ diff --git a/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-category.tsx b/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-category.tsx index 314d4a3bf..8e37ae85a 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-category.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-category.tsx @@ -1,5 +1,5 @@ import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { db, VendorCategory } from '@db'; +import { db, VendorCategory } from '@trycompai/db'; import { VendorCategoryChart } from './category-chart'; const VENDOR_CATEGORIES = Object.values(VendorCategory); diff --git a/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-status.tsx b/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-status.tsx index d98fe1ed7..236306411 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-status.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/components/charts/vendors-by-status.tsx @@ -1,5 +1,5 @@ import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { StatusChart } from './status-chart'; interface Props { organizationId: string; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/layout.tsx b/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/layout.tsx index e7317863d..0e3804328 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/layout.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/backup-overview/layout.tsx @@ -1,7 +1,7 @@ import { AppOnboarding } from '@/components/app-onboarding'; import { getServersideSession } from '@/lib/get-session'; import { SecondaryMenu } from '@comp/ui/secondary-menu'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { Suspense, cache } from 'react'; import { CreateVendorSheet } from '../components/create-vendor-sheet'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-form.tsx b/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-form.tsx index 4dbefb8ae..faa0d5d19 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-form.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-form.tsx @@ -9,9 +9,9 @@ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from ' import { Input } from '@comp/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Textarea } from '@comp/ui/textarea'; -import type { GlobalVendors } from '@db'; -import { type Member, type User, VendorCategory, VendorStatus } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { GlobalVendors } from '@trycompai/db'; +import { type Member, type User, VendorCategory, VendorStatus } from '@trycompai/db'; import { ArrowRightIcon } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-sheet.tsx b/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-sheet.tsx index 32d037400..7d610664d 100644 --- a/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-sheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/vendors/components/create-vendor-sheet.tsx @@ -5,7 +5,7 @@ import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import { Member, User } from '@db'; +import { Member, User } from '@trycompai/db'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { CreateVendorForm } from './create-vendor-form'; diff --git a/apps/app/src/app/(app)/invite/[code]/page.tsx b/apps/app/src/app/(app)/invite/[code]/page.tsx index 7ad36bd76..8fc2d177a 100644 --- a/apps/app/src/app/(app)/invite/[code]/page.tsx +++ b/apps/app/src/app/(app)/invite/[code]/page.tsx @@ -1,6 +1,6 @@ import { OnboardingLayout } from '@/components/onboarding/OnboardingLayout'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { AcceptInvite } from '../../setup/components/accept-invite'; diff --git a/apps/app/src/app/(app)/layout.tsx b/apps/app/src/app/(app)/layout.tsx index 8fd5117a1..eb3d8a4ae 100644 --- a/apps/app/src/app/(app)/layout.tsx +++ b/apps/app/src/app/(app)/layout.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/no-access/page.tsx b/apps/app/src/app/(app)/no-access/page.tsx index 376a971c9..7634ed1db 100644 --- a/apps/app/src/app/(app)/no-access/page.tsx +++ b/apps/app/src/app/(app)/no-access/page.tsx @@ -1,7 +1,7 @@ import { Header } from '@/components/header'; import { OrganizationSwitcher } from '@/components/organization-switcher'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import Link from 'next/link'; import { redirect } from 'next/navigation'; @@ -38,7 +38,8 @@ export default async function NoAccess() {

Access Denied

- Employees and Contractors don't have access to app.trycomp.ai, did you mean to go to{' '} + Employees and Contractors don't have access to app.trycomp.ai, did + you mean to go to{' '} portal.trycomp.ai diff --git a/apps/app/src/app/(app)/onboarding/[orgId]/layout.tsx b/apps/app/src/app/(app)/onboarding/[orgId]/layout.tsx index c270f5c48..9ba1cce78 100644 --- a/apps/app/src/app/(app)/onboarding/[orgId]/layout.tsx +++ b/apps/app/src/app/(app)/onboarding/[orgId]/layout.tsx @@ -1,7 +1,7 @@ import { CheckoutCompleteDialog } from '@/components/dialogs/checkout-complete-dialog'; import { MinimalHeader } from '@/components/layout/MinimalHeader'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { notFound } from 'next/navigation'; import { OnboardingSidebar } from '../../setup/components/OnboardingSidebar'; diff --git a/apps/app/src/app/(app)/onboarding/[orgId]/page.tsx b/apps/app/src/app/(app)/onboarding/[orgId]/page.tsx index a8a5e59ce..28c5db0b9 100644 --- a/apps/app/src/app/(app)/onboarding/[orgId]/page.tsx +++ b/apps/app/src/app/(app)/onboarding/[orgId]/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { notFound, redirect } from 'next/navigation'; import { PostPaymentOnboarding } from '../components/PostPaymentOnboarding'; diff --git a/apps/app/src/app/(app)/onboarding/actions/complete-onboarding.ts b/apps/app/src/app/(app)/onboarding/actions/complete-onboarding.ts index bbe85dc1f..3871819fe 100644 --- a/apps/app/src/app/(app)/onboarding/actions/complete-onboarding.ts +++ b/apps/app/src/app/(app)/onboarding/actions/complete-onboarding.ts @@ -4,8 +4,8 @@ import { authActionClient } from '@/actions/safe-action'; import { steps } from '@/app/(app)/setup/lib/constants'; import { createFleetLabelForOrg } from '@/jobs/tasks/device/create-fleet-label-for-org'; import { onboardOrganization as onboardOrganizationTask } from '@/jobs/tasks/onboarding/onboard-organization'; -import { db } from '@db'; import { tasks } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { cookies, headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/onboarding/components/PostPaymentOnboarding.tsx b/apps/app/src/app/(app)/onboarding/components/PostPaymentOnboarding.tsx index 9af1b2431..6f65c4cea 100644 --- a/apps/app/src/app/(app)/onboarding/components/PostPaymentOnboarding.tsx +++ b/apps/app/src/app/(app)/onboarding/components/PostPaymentOnboarding.tsx @@ -5,7 +5,7 @@ import { AnimatedWrapper } from '@/components/animated-wrapper'; import { LogoSpinner } from '@/components/logo-spinner'; import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormMessage } from '@comp/ui/form'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { AnimatePresence, motion } from 'framer-motion'; import { Loader2 } from 'lucide-react'; import { useEffect, useMemo } from 'react'; diff --git a/apps/app/src/app/(app)/setup/actions/create-organization-minimal.ts b/apps/app/src/app/(app)/setup/actions/create-organization-minimal.ts index f0089796a..c2ef33731 100644 --- a/apps/app/src/app/(app)/setup/actions/create-organization-minimal.ts +++ b/apps/app/src/app/(app)/setup/actions/create-organization-minimal.ts @@ -4,7 +4,7 @@ import { initializeOrganization } from '@/actions/organization/lib/initialize-or import { authActionClientWithoutOrg } from '@/actions/safe-action'; import { createTrainingVideoEntries } from '@/lib/db/employee'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/setup/actions/create-organization.ts b/apps/app/src/app/(app)/setup/actions/create-organization.ts index 9df1720c2..7788b654f 100644 --- a/apps/app/src/app/(app)/setup/actions/create-organization.ts +++ b/apps/app/src/app/(app)/setup/actions/create-organization.ts @@ -6,8 +6,8 @@ import { createFleetLabelForOrg } from '@/jobs/tasks/device/create-fleet-label-f import { onboardOrganization as onboardOrganizationTask } from '@/jobs/tasks/onboarding/onboard-organization'; import { createTrainingVideoEntries } from '@/lib/db/employee'; import { auth } from '@/utils/auth'; -import { db } from '@db'; import { tasks } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { cookies, headers } from 'next/headers'; import { companyDetailsSchema, steps } from '../lib/constants'; diff --git a/apps/app/src/app/(app)/setup/components/FrameworkSelection.tsx b/apps/app/src/app/(app)/setup/components/FrameworkSelection.tsx index 28287c9a3..67ed6a4e9 100644 --- a/apps/app/src/app/(app)/setup/components/FrameworkSelection.tsx +++ b/apps/app/src/app/(app)/setup/components/FrameworkSelection.tsx @@ -1,7 +1,7 @@ 'use client'; import { FrameworkPill } from '@/components/framework-pill'; -import type { FrameworkEditorFramework } from '@db'; +import type { FrameworkEditorFramework } from '@trycompai/db'; import { useEffect, useRef, useState } from 'react'; interface FrameworkSelectionProps { diff --git a/apps/app/src/app/(app)/setup/go/[id]/page.tsx b/apps/app/src/app/(app)/setup/go/[id]/page.tsx index 5e271eda8..1eb0e91c7 100644 --- a/apps/app/src/app/(app)/setup/go/[id]/page.tsx +++ b/apps/app/src/app/(app)/setup/go/[id]/page.tsx @@ -1,6 +1,6 @@ import { LogoSpinner } from '@/components/logo-spinner'; import { TriggerTokenProvider } from '@/components/trigger-token-provider'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { cookies } from 'next/headers'; import { OnboardingStatus } from './components/onboarding-status'; diff --git a/apps/app/src/app/(app)/setup/layout.tsx b/apps/app/src/app/(app)/setup/layout.tsx index fb43ad136..dfcb47b0b 100644 --- a/apps/app/src/app/(app)/setup/layout.tsx +++ b/apps/app/src/app/(app)/setup/layout.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/setup/loading/[orgId]/page.tsx b/apps/app/src/app/(app)/setup/loading/[orgId]/page.tsx index 12c934b43..49795b8e7 100644 --- a/apps/app/src/app/(app)/setup/loading/[orgId]/page.tsx +++ b/apps/app/src/app/(app)/setup/loading/[orgId]/page.tsx @@ -1,7 +1,7 @@ import { SetupLoadingStep } from '@/app/(app)/setup/components/SetupLoadingStep'; import { getOrganizations } from '@/data/getOrganizations'; import { auth } from '@/utils/auth'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/upgrade/[orgId]/page.tsx b/apps/app/src/app/(app)/upgrade/[orgId]/page.tsx index 2abf813fe..a067fad6b 100644 --- a/apps/app/src/app/(app)/upgrade/[orgId]/page.tsx +++ b/apps/app/src/app/(app)/upgrade/[orgId]/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { BookingStep } from './components/booking-step'; diff --git a/apps/app/src/app/(app)/upgrade/components/MinimalOrganizationSwitcher.tsx b/apps/app/src/app/(app)/upgrade/components/MinimalOrganizationSwitcher.tsx index d5878ea08..34ee7139a 100644 --- a/apps/app/src/app/(app)/upgrade/components/MinimalOrganizationSwitcher.tsx +++ b/apps/app/src/app/(app)/upgrade/components/MinimalOrganizationSwitcher.tsx @@ -8,7 +8,7 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { Check, ChevronsUpDown, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/api/auth/test-db/route.ts b/apps/app/src/app/api/auth/test-db/route.ts index 2f0e0036d..4b190cadd 100644 --- a/apps/app/src/app/api/auth/test-db/route.ts +++ b/apps/app/src/app/api/auth/test-db/route.ts @@ -1,4 +1,4 @@ -import { db, Departments } from '@db'; +import { db, Departments } from '@trycompai/db'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/apps/app/src/app/api/auth/test-grant-access/route.ts b/apps/app/src/app/api/auth/test-grant-access/route.ts index 3bd83621c..da6ba26a9 100644 --- a/apps/app/src/app/api/auth/test-grant-access/route.ts +++ b/apps/app/src/app/api/auth/test-grant-access/route.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextRequest, NextResponse } from 'next/server'; // Force dynamic rendering for this route diff --git a/apps/app/src/app/api/auth/test-login/route.ts b/apps/app/src/app/api/auth/test-login/route.ts index a0338f9bb..ca68d122d 100644 --- a/apps/app/src/app/api/auth/test-login/route.ts +++ b/apps/app/src/app/api/auth/test-login/route.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db, Departments } from '@db'; +import { db, Departments } from '@trycompai/db'; import { NextRequest, NextResponse } from 'next/server'; // Force dynamic rendering for this route diff --git a/apps/app/src/app/api/automations/[automationId]/runs/route.ts b/apps/app/src/app/api/automations/[automationId]/runs/route.ts index 55b802628..f5f9ac5dc 100644 --- a/apps/app/src/app/api/automations/[automationId]/runs/route.ts +++ b/apps/app/src/app/api/automations/[automationId]/runs/route.ts @@ -1,9 +1,9 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextRequest, NextResponse } from 'next/server'; export async function GET( request: NextRequest, - { params }: { params: Promise<{ automationId: string }> } + { params }: { params: Promise<{ automationId: string }> }, ) { try { const { automationId } = await params; @@ -28,12 +28,6 @@ export async function GET( return NextResponse.json({ success: true, runs }); } catch (error) { console.error('Failed to fetch automation runs:', error); - return NextResponse.json( - { success: false, error: 'Failed to fetch runs' }, - { status: 500 } - ); + return NextResponse.json({ success: false, error: 'Failed to fetch runs' }, { status: 500 }); } } - - - diff --git a/apps/app/src/app/api/cloud-tests/findings/route.ts b/apps/app/src/app/api/cloud-tests/findings/route.ts index 4428b6c44..ca02d324e 100644 --- a/apps/app/src/app/api/cloud-tests/findings/route.ts +++ b/apps/app/src/app/api/cloud-tests/findings/route.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { NextResponse } from 'next/server'; diff --git a/apps/app/src/app/api/cloud-tests/providers/route.ts b/apps/app/src/app/api/cloud-tests/providers/route.ts index 167ef757b..f02b403de 100644 --- a/apps/app/src/app/api/cloud-tests/providers/route.ts +++ b/apps/app/src/app/api/cloud-tests/providers/route.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { NextResponse } from 'next/server'; diff --git a/apps/app/src/app/api/frameworks/route.ts b/apps/app/src/app/api/frameworks/route.ts index cf2a98a7c..2977515fd 100644 --- a/apps/app/src/app/api/frameworks/route.ts +++ b/apps/app/src/app/api/frameworks/route.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextResponse } from 'next/server'; export async function GET() { diff --git a/apps/app/src/app/api/health/route.ts b/apps/app/src/app/api/health/route.ts index ae1a37908..7499d2695 100644 --- a/apps/app/src/app/api/health/route.ts +++ b/apps/app/src/app/api/health/route.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextResponse } from 'next/server'; export const dynamic = 'force-dynamic'; diff --git a/apps/app/src/app/api/qa/approve-org/route.ts b/apps/app/src/app/api/qa/approve-org/route.ts index 251c5b853..056752848 100644 --- a/apps/app/src/app/api/qa/approve-org/route.ts +++ b/apps/app/src/app/api/qa/approve-org/route.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { type NextRequest, NextResponse } from 'next/server'; /** diff --git a/apps/app/src/app/api/qa/delete-user/route.ts b/apps/app/src/app/api/qa/delete-user/route.ts index 6f725f628..4c890097d 100644 --- a/apps/app/src/app/api/qa/delete-user/route.ts +++ b/apps/app/src/app/api/qa/delete-user/route.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { type NextRequest, NextResponse } from 'next/server'; /** diff --git a/apps/app/src/app/api/retool/reset-org/route.ts b/apps/app/src/app/api/retool/reset-org/route.ts index 46d634309..0a17d4159 100644 --- a/apps/app/src/app/api/retool/reset-org/route.ts +++ b/apps/app/src/app/api/retool/reset-org/route.ts @@ -1,5 +1,5 @@ import { initializeOrganization } from '@/actions/organization/lib/initialize-organization'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { type NextRequest, NextResponse } from 'next/server'; // Configure this route to use Node.js runtime instead of Edge diff --git a/apps/app/src/app/api/secrets/[id]/route.ts b/apps/app/src/app/api/secrets/[id]/route.ts index 9871f6620..e851db4e1 100644 --- a/apps/app/src/app/api/secrets/[id]/route.ts +++ b/apps/app/src/app/api/secrets/[id]/route.ts @@ -1,6 +1,6 @@ import { decrypt, encrypt, type EncryptedData } from '@/lib/encryption'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextRequest, NextResponse } from 'next/server'; import { z } from 'zod'; diff --git a/apps/app/src/app/api/secrets/route.ts b/apps/app/src/app/api/secrets/route.ts index 8cbcce324..88958c0a0 100644 --- a/apps/app/src/app/api/secrets/route.ts +++ b/apps/app/src/app/api/secrets/route.ts @@ -2,7 +2,7 @@ import { encrypt } from '@/lib/encryption'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextRequest, NextResponse } from 'next/server'; import { z } from 'zod'; diff --git a/apps/app/src/app/api/user-frameworks/route.ts b/apps/app/src/app/api/user-frameworks/route.ts index 8088c0244..7f33c3126 100644 --- a/apps/app/src/app/api/user-frameworks/route.ts +++ b/apps/app/src/app/api/user-frameworks/route.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import { NextResponse } from 'next/server'; export async function GET(request: Request) { diff --git a/apps/app/src/app/page.tsx b/apps/app/src/app/page.tsx index c83d58de7..a2c8eabc0 100644 --- a/apps/app/src/app/page.tsx +++ b/apps/app/src/app/page.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/components/SelectAssignee.tsx b/apps/app/src/components/SelectAssignee.tsx index b6f801f65..135b117af 100644 --- a/apps/app/src/components/SelectAssignee.tsx +++ b/apps/app/src/components/SelectAssignee.tsx @@ -1,7 +1,7 @@ import { authClient } from '@/utils/auth-client'; import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; import { Select, SelectContent, SelectItem, SelectTrigger } from '@comp/ui/select'; -import { Member, User } from '@db'; +import { Member, User } from '@trycompai/db'; import { UserIcon } from 'lucide-react'; import { useEffect, useState } from 'react'; diff --git a/apps/app/src/components/comments/CommentForm.tsx b/apps/app/src/components/comments/CommentForm.tsx index 8bc4a27af..21fae2aa3 100644 --- a/apps/app/src/components/comments/CommentForm.tsx +++ b/apps/app/src/components/comments/CommentForm.tsx @@ -4,7 +4,7 @@ import { useComments, useCommentWithAttachments } from '@/hooks/use-comments-api import { authClient } from '@/utils/auth-client'; import { Button } from '@comp/ui/button'; import { Textarea } from '@comp/ui/textarea'; -import type { CommentEntityType } from '@db'; +import type { CommentEntityType } from '@trycompai/db'; import { FileIcon, Loader2, Paperclip, X } from 'lucide-react'; import { useParams } from 'next/navigation'; import type React from 'react'; diff --git a/apps/app/src/components/comments/Comments.tsx b/apps/app/src/components/comments/Comments.tsx index fb040115b..88b29681a 100644 --- a/apps/app/src/components/comments/Comments.tsx +++ b/apps/app/src/components/comments/Comments.tsx @@ -2,7 +2,7 @@ import { useComments } from '@/hooks/use-comments-api'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { CommentEntityType } from '@db'; +import { CommentEntityType } from '@trycompai/db'; import { CommentForm } from './CommentForm'; import { CommentList } from './CommentList'; diff --git a/apps/app/src/components/forms/policies/policy-overview.tsx b/apps/app/src/components/forms/policies/policy-overview.tsx index 948295441..58e4b550a 100644 --- a/apps/app/src/components/forms/policies/policy-overview.tsx +++ b/apps/app/src/components/forms/policies/policy-overview.tsx @@ -10,8 +10,8 @@ import { cn } from '@comp/ui/cn'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Popover, PopoverContent, PopoverTrigger } from '@comp/ui/popover'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Departments, Frequency, type Policy, type PolicyStatus } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Departments, Frequency, type Policy, type PolicyStatus } from '@trycompai/db'; import { format } from 'date-fns'; import { CalendarIcon, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; diff --git a/apps/app/src/components/forms/policies/update-policy-form.tsx b/apps/app/src/components/forms/policies/update-policy-form.tsx index 2bbfe6e15..d6c3f47f8 100644 --- a/apps/app/src/components/forms/policies/update-policy-form.tsx +++ b/apps/app/src/components/forms/policies/update-policy-form.tsx @@ -7,8 +7,8 @@ import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Input } from '@comp/ui/input'; import { Textarea } from '@comp/ui/textarea'; -import { Policy } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Policy } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/forms/risks/InherentRiskForm.tsx b/apps/app/src/components/forms/risks/InherentRiskForm.tsx index 9abc4aac2..3e8138b8f 100644 --- a/apps/app/src/components/forms/risks/InherentRiskForm.tsx +++ b/apps/app/src/components/forms/risks/InherentRiskForm.tsx @@ -5,8 +5,8 @@ import { updateInherentRiskSchema } from '@/actions/schema'; import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Impact, Likelihood } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Impact, Likelihood } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/forms/risks/ResidualRiskForm.tsx b/apps/app/src/components/forms/risks/ResidualRiskForm.tsx index 7cfa5b27c..2e3598986 100644 --- a/apps/app/src/components/forms/risks/ResidualRiskForm.tsx +++ b/apps/app/src/components/forms/risks/ResidualRiskForm.tsx @@ -5,8 +5,8 @@ import { updateResidualRiskEnumSchema } from '@/actions/schema'; import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Impact, Likelihood } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Impact, Likelihood } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/forms/risks/create-risk-form.tsx b/apps/app/src/components/forms/risks/create-risk-form.tsx index 5e3e98f3a..979bc49ec 100644 --- a/apps/app/src/components/forms/risks/create-risk-form.tsx +++ b/apps/app/src/components/forms/risks/create-risk-form.tsx @@ -9,9 +9,9 @@ import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from ' import { Input } from '@comp/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Textarea } from '@comp/ui/textarea'; -import type { Member, RiskStatus, User } from '@db'; -import { Departments, RiskCategory } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Member, RiskStatus, User } from '@trycompai/db'; +import { Departments, RiskCategory } from '@trycompai/db'; import { ArrowRightIcon } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/forms/risks/risk-overview.tsx b/apps/app/src/components/forms/risks/risk-overview.tsx index 3d73d3bf5..b18f0236c 100644 --- a/apps/app/src/components/forms/risks/risk-overview.tsx +++ b/apps/app/src/components/forms/risks/risk-overview.tsx @@ -7,8 +7,8 @@ import { StatusIndicator } from '@/components/status-indicator'; import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Departments, Member, type Risk, RiskCategory, RiskStatus, type User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Departments, Member, type Risk, RiskCategory, RiskStatus, type User } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; diff --git a/apps/app/src/components/forms/risks/task/update-task-form.tsx b/apps/app/src/components/forms/risks/task/update-task-form.tsx index dbb8b5668..895a3fdd4 100644 --- a/apps/app/src/components/forms/risks/task/update-task-form.tsx +++ b/apps/app/src/components/forms/risks/task/update-task-form.tsx @@ -10,8 +10,8 @@ import { cn } from '@comp/ui/cn'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Popover, PopoverContent, PopoverTrigger } from '@comp/ui/popover'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { type Task, TaskStatus, type User } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { type Task, TaskStatus, type User } from '@trycompai/db'; import { format } from 'date-fns'; import { CalendarIcon, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; diff --git a/apps/app/src/components/forms/risks/task/update-task-overview-form.tsx b/apps/app/src/components/forms/risks/task/update-task-overview-form.tsx index df21bdbbe..c89efeb25 100644 --- a/apps/app/src/components/forms/risks/task/update-task-overview-form.tsx +++ b/apps/app/src/components/forms/risks/task/update-task-overview-form.tsx @@ -6,8 +6,8 @@ import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Input } from '@comp/ui/input'; import { Textarea } from '@comp/ui/textarea'; -import type { Task } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import type { Task } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/forms/risks/update-risk-form.tsx b/apps/app/src/components/forms/risks/update-risk-form.tsx index 79cd9e97c..784075fe8 100644 --- a/apps/app/src/components/forms/risks/update-risk-form.tsx +++ b/apps/app/src/components/forms/risks/update-risk-form.tsx @@ -7,8 +7,8 @@ import { Button } from '@comp/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; import { Input } from '@comp/ui/input'; import { Textarea } from '@comp/ui/textarea'; -import { Departments, type Risk } from '@db'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Departments, type Risk } from '@trycompai/db'; import { Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/framework-card.tsx b/apps/app/src/components/framework-card.tsx index 2693dcc90..8414ffd01 100644 --- a/apps/app/src/components/framework-card.tsx +++ b/apps/app/src/components/framework-card.tsx @@ -2,7 +2,7 @@ import { Checkbox } from '@comp/ui/checkbox'; import { cn } from '@comp/ui/cn'; -import type { FrameworkEditorFramework } from '@db'; +import type { FrameworkEditorFramework } from '@trycompai/db'; type FrameworkCardProps = { framework: Pick; diff --git a/apps/app/src/components/framework-pill.tsx b/apps/app/src/components/framework-pill.tsx index 8210b3c2b..e4cdc4a52 100644 --- a/apps/app/src/components/framework-pill.tsx +++ b/apps/app/src/components/framework-pill.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { FrameworkEditorFramework } from '@db'; +import type { FrameworkEditorFramework } from '@trycompai/db'; import { SelectablePill } from './selectable-pill'; type FrameworkPillProps = { diff --git a/apps/app/src/components/layout/MinimalHeader.tsx b/apps/app/src/components/layout/MinimalHeader.tsx index 0621a014a..adb90a1ee 100644 --- a/apps/app/src/components/layout/MinimalHeader.tsx +++ b/apps/app/src/components/layout/MinimalHeader.tsx @@ -2,7 +2,7 @@ import { changeOrganizationAction } from '@/actions/change-organization'; import { Logo } from '@/app/(app)/setup/components/Logo'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import type { User } from 'better-auth'; import { useAction } from 'next-safe-action/hooks'; import Link from 'next/link'; diff --git a/apps/app/src/components/layout/MinimalOrganizationSwitcher.tsx b/apps/app/src/components/layout/MinimalOrganizationSwitcher.tsx index af8ce0f71..f621fa6bf 100644 --- a/apps/app/src/components/layout/MinimalOrganizationSwitcher.tsx +++ b/apps/app/src/components/layout/MinimalOrganizationSwitcher.tsx @@ -9,7 +9,7 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from '@comp/ui/dropdown-menu'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { Check, ChevronsUpDown, Loader2, Plus } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/components/mobile-menu.tsx b/apps/app/src/components/mobile-menu.tsx index 02eeacef3..6b2c8e0a7 100644 --- a/apps/app/src/components/mobile-menu.tsx +++ b/apps/app/src/components/mobile-menu.tsx @@ -3,7 +3,7 @@ import { Button } from '@comp/ui/button'; import { Icons } from '@comp/ui/icons'; import { Sheet, SheetContent } from '@comp/ui/sheet'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { useState } from 'react'; import { MainMenu } from './main-menu'; import { OrganizationSwitcher } from './organization-switcher'; diff --git a/apps/app/src/components/onboarding/OnboardingLayout.tsx b/apps/app/src/components/onboarding/OnboardingLayout.tsx index 792fae7d7..d5282c025 100644 --- a/apps/app/src/components/onboarding/OnboardingLayout.tsx +++ b/apps/app/src/components/onboarding/OnboardingLayout.tsx @@ -2,7 +2,7 @@ import { getOrganizations } from '@/data/getOrganizations'; import { auth } from '@/utils/auth'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import type { ReactNode } from 'react'; diff --git a/apps/app/src/components/organization-switcher.tsx b/apps/app/src/components/organization-switcher.tsx index b5bea0042..c90a70d6f 100644 --- a/apps/app/src/components/organization-switcher.tsx +++ b/apps/app/src/components/organization-switcher.tsx @@ -14,7 +14,7 @@ import { } from '@comp/ui/command'; import { Dialog, DialogContent, DialogTitle, DialogTrigger } from '@comp/ui/dialog'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { Check, ChevronsUpDown, Loader2, Plus, Search } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; @@ -104,7 +104,7 @@ export function OrganizationSwitcher({ const sortedOrganizations = [...organizations].sort((a, b) => { if (sortOrder === 'alphabetical') { - return (a.name).localeCompare(b.name); + return a.name.localeCompare(b.name); } else if (sortOrder === 'recent') { return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(); } diff --git a/apps/app/src/components/policies/charts/policies-by-assignee.tsx b/apps/app/src/components/policies/charts/policies-by-assignee.tsx index 60c53a00d..afd408c64 100644 --- a/apps/app/src/components/policies/charts/policies-by-assignee.tsx +++ b/apps/app/src/components/policies/charts/policies-by-assignee.tsx @@ -1,5 +1,5 @@ import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { db, PolicyStatus } from '@db'; +import { db, PolicyStatus } from '@trycompai/db'; import type { CSSProperties } from 'react'; interface Props { diff --git a/apps/app/src/components/risks/charts/InherentRiskChart.tsx b/apps/app/src/components/risks/charts/InherentRiskChart.tsx index 8f8b5a3db..79a5bd113 100644 --- a/apps/app/src/components/risks/charts/InherentRiskChart.tsx +++ b/apps/app/src/components/risks/charts/InherentRiskChart.tsx @@ -1,7 +1,7 @@ 'use client'; import { updateInherentRiskAction } from '@/actions/risk/update-inherent-risk-action'; -import type { Risk } from '@db'; +import type { Risk } from '@trycompai/db'; import { RiskMatrixChart } from './RiskMatrixChart'; interface InherentRiskChartProps { diff --git a/apps/app/src/components/risks/charts/ResidualRiskChart.tsx b/apps/app/src/components/risks/charts/ResidualRiskChart.tsx index 71050f2c6..47865206f 100644 --- a/apps/app/src/components/risks/charts/ResidualRiskChart.tsx +++ b/apps/app/src/components/risks/charts/ResidualRiskChart.tsx @@ -1,7 +1,7 @@ 'use client'; import { updateResidualRiskEnumAction } from '@/actions/risk/update-residual-risk-enum-action'; -import type { Risk } from '@db'; +import type { Risk } from '@trycompai/db'; import { RiskMatrixChart } from './RiskMatrixChart'; interface ResidualRiskChartProps { diff --git a/apps/app/src/components/risks/charts/RiskMatrixChart.tsx b/apps/app/src/components/risks/charts/RiskMatrixChart.tsx index 1a0caf1b0..abd9c1005 100644 --- a/apps/app/src/components/risks/charts/RiskMatrixChart.tsx +++ b/apps/app/src/components/risks/charts/RiskMatrixChart.tsx @@ -2,7 +2,7 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { Impact, Likelihood } from '@db'; +import { Impact, Likelihood } from '@trycompai/db'; import { AnimatePresence, motion } from 'framer-motion'; import { Loader2 } from 'lucide-react'; import { useEffect, useState } from 'react'; diff --git a/apps/app/src/components/risks/charts/RisksAssignee.tsx b/apps/app/src/components/risks/charts/RisksAssignee.tsx index a4fd9cd78..bc607bc65 100644 --- a/apps/app/src/components/risks/charts/RisksAssignee.tsx +++ b/apps/app/src/components/risks/charts/RisksAssignee.tsx @@ -3,7 +3,7 @@ import { auth } from '@/utils/auth'; import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; import { ScrollArea } from '@comp/ui/scroll-area'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import Link from 'next/link'; import { cache } from 'react'; diff --git a/apps/app/src/components/risks/charts/risks-by-department.tsx b/apps/app/src/components/risks/charts/risks-by-department.tsx index b215c4f08..281e02eec 100644 --- a/apps/app/src/components/risks/charts/risks-by-department.tsx +++ b/apps/app/src/components/risks/charts/risks-by-department.tsx @@ -1,6 +1,6 @@ import { auth } from '@/utils/auth'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { cache } from 'react'; import { DepartmentChart } from './department-chart'; diff --git a/apps/app/src/components/risks/charts/risks-by-status.tsx b/apps/app/src/components/risks/charts/risks-by-status.tsx index 09f02c0bc..0775a3fd5 100644 --- a/apps/app/src/components/risks/charts/risks-by-status.tsx +++ b/apps/app/src/components/risks/charts/risks-by-status.tsx @@ -1,6 +1,6 @@ import { auth } from '@/utils/auth'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { cache } from 'react'; import { StatusChart } from './status-chart'; diff --git a/apps/app/src/components/risks/risk-overview.tsx b/apps/app/src/components/risks/risk-overview.tsx index 3f7ea1dfb..7d74db0fb 100644 --- a/apps/app/src/components/risks/risk-overview.tsx +++ b/apps/app/src/components/risks/risk-overview.tsx @@ -2,7 +2,7 @@ import { Button } from '@comp/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import type { Member, Risk, User } from '@db'; +import type { Member, Risk, User } from '@trycompai/db'; import { PencilIcon } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { UpdateRiskOverview } from '../forms/risks/risk-overview'; diff --git a/apps/app/src/components/risks/tasks/task-overview.tsx b/apps/app/src/components/risks/tasks/task-overview.tsx index e6c77f4c7..0084e37f4 100644 --- a/apps/app/src/components/risks/tasks/task-overview.tsx +++ b/apps/app/src/components/risks/tasks/task-overview.tsx @@ -5,7 +5,7 @@ import { TaskOverviewSheet } from '@/components/sheets/task-overview-sheet'; import { Alert, AlertDescription, AlertTitle } from '@comp/ui/alert'; import { Button } from '@comp/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import type { Task, User } from '@db'; +import type { Task, User } from '@trycompai/db'; import { PencilIcon, ShieldAlert } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/sheets/create-risk-sheet.tsx b/apps/app/src/components/sheets/create-risk-sheet.tsx index 7e8425f39..49c2d2944 100644 --- a/apps/app/src/components/sheets/create-risk-sheet.tsx +++ b/apps/app/src/components/sheets/create-risk-sheet.tsx @@ -5,7 +5,7 @@ import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import { Member, User } from '@db'; +import { Member, User } from '@trycompai/db'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { CreateRisk } from '../forms/risks/create-risk-form'; diff --git a/apps/app/src/components/sheets/risk-overview-sheet.tsx b/apps/app/src/components/sheets/risk-overview-sheet.tsx index d2d4f0839..3018b7742 100644 --- a/apps/app/src/components/sheets/risk-overview-sheet.tsx +++ b/apps/app/src/components/sheets/risk-overview-sheet.tsx @@ -5,7 +5,7 @@ import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; import { useMediaQuery } from '@comp/ui/hooks'; import { ScrollArea } from '@comp/ui/scroll-area'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import type { Risk } from '@db'; +import type { Risk } from '@trycompai/db'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/components/sheets/task-overview-sheet.tsx b/apps/app/src/components/sheets/task-overview-sheet.tsx index 114ddded2..a8dbdfdb0 100644 --- a/apps/app/src/components/sheets/task-overview-sheet.tsx +++ b/apps/app/src/components/sheets/task-overview-sheet.tsx @@ -8,7 +8,7 @@ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from ' import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; -import type { Task } from '@db'; +import type { Task } from '@trycompai/db'; import { UpdateTaskOverviewForm } from '../forms/risks/task/update-task-overview-form'; export function TaskOverviewSheet({ task }: { task: Task }) { diff --git a/apps/app/src/components/sidebar.tsx b/apps/app/src/components/sidebar.tsx index a5c9292f4..910ca2dd6 100644 --- a/apps/app/src/components/sidebar.tsx +++ b/apps/app/src/components/sidebar.tsx @@ -2,7 +2,7 @@ import { getFeatureFlags } from '@/app/posthog'; import { getOrganizations } from '@/data/getOrganizations'; import { auth } from '@/utils/auth'; import { cn } from '@comp/ui/cn'; -import type { Organization } from '@db'; +import type { Organization } from '@trycompai/db'; import { cookies, headers } from 'next/headers'; import { MainMenu } from './main-menu'; import { OrganizationSwitcher } from './organization-switcher'; diff --git a/apps/app/src/components/tables/risk-register/columns.tsx b/apps/app/src/components/tables/risk-register/columns.tsx index d83a0e6e6..ba931dd84 100644 --- a/apps/app/src/components/tables/risk-register/columns.tsx +++ b/apps/app/src/components/tables/risk-register/columns.tsx @@ -3,8 +3,8 @@ import { AssignedUser } from '@/components/assigned-user'; import { StatusIndicator } from '@/components/status-indicator'; import { Badge } from '@comp/ui/badge'; import { Button } from '@comp/ui/button'; -import type { Departments, RiskStatus } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import type { Departments, RiskStatus } from '@trycompai/db'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/components/tables/risk-register/filter-toolbar.tsx b/apps/app/src/components/tables/risk-register/filter-toolbar.tsx index 1449bbd78..b3917652d 100644 --- a/apps/app/src/components/tables/risk-register/filter-toolbar.tsx +++ b/apps/app/src/components/tables/risk-register/filter-toolbar.tsx @@ -6,7 +6,7 @@ import { cn } from '@comp/ui/cn'; import { Input } from '@comp/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Skeleton } from '@comp/ui/skeleton'; -import { Departments, Member, RiskStatus, User } from '@db'; +import { Departments, Member, RiskStatus, User } from '@trycompai/db'; import { Plus, Search, X } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { useCallback, useTransition } from 'react'; diff --git a/apps/app/src/components/tables/risk-tasks/columns.tsx b/apps/app/src/components/tables/risk-tasks/columns.tsx index feea9909c..9277e6b47 100644 --- a/apps/app/src/components/tables/risk-tasks/columns.tsx +++ b/apps/app/src/components/tables/risk-tasks/columns.tsx @@ -3,8 +3,8 @@ import { AssignedUser } from '@/components/assigned-user'; import { StatusDate } from '@/components/status-date'; import { StatusIndicator } from '@/components/status-indicator'; import { Button } from '@comp/ui/button'; -import type { RiskStatus } from '@db'; import type { ColumnDef } from '@tanstack/react-table'; +import type { RiskStatus } from '@trycompai/db'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/components/tables/risk-tasks/filter-toolbar.tsx b/apps/app/src/components/tables/risk-tasks/filter-toolbar.tsx index 0c10f8018..2307e1167 100644 --- a/apps/app/src/components/tables/risk-tasks/filter-toolbar.tsx +++ b/apps/app/src/components/tables/risk-tasks/filter-toolbar.tsx @@ -3,7 +3,7 @@ import { cn } from '@comp/ui/cn'; import { Input } from '@comp/ui/input'; import { Skeleton } from '@comp/ui/skeleton'; -import type { Member, User } from '@db'; +import type { Member, User } from '@trycompai/db'; import { Search } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { useTransition } from 'react'; diff --git a/apps/app/src/components/tests/charts/tests-by-assignee.tsx b/apps/app/src/components/tests/charts/tests-by-assignee.tsx index 030e4bfc1..4ba44849d 100644 --- a/apps/app/src/components/tests/charts/tests-by-assignee.tsx +++ b/apps/app/src/components/tests/charts/tests-by-assignee.tsx @@ -1,5 +1,5 @@ import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { CSSProperties } from 'react'; interface Props { diff --git a/apps/app/src/data/getOrganizations.ts b/apps/app/src/data/getOrganizations.ts index 6b34655e5..0c04438e2 100644 --- a/apps/app/src/data/getOrganizations.ts +++ b/apps/app/src/data/getOrganizations.ts @@ -1,7 +1,7 @@ 'use server'; import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; export async function getOrganizations() { diff --git a/apps/app/src/data/tools/organization.ts b/apps/app/src/data/tools/organization.ts index e7849ca2e..0ffcceb85 100644 --- a/apps/app/src/data/tools/organization.ts +++ b/apps/app/src/data/tools/organization.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/data/tools/policies.ts b/apps/app/src/data/tools/policies.ts index d0b87e7f9..f920acd40 100644 --- a/apps/app/src/data/tools/policies.ts +++ b/apps/app/src/data/tools/policies.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/data/tools/risks-tool.ts b/apps/app/src/data/tools/risks-tool.ts index ee34fcf1c..5aef7275e 100644 --- a/apps/app/src/data/tools/risks-tool.ts +++ b/apps/app/src/data/tools/risks-tool.ts @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { db, Departments, RiskCategory, RiskStatus } from '@db'; +import { db, Departments, RiskCategory, RiskStatus } from '@trycompai/db'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/app/src/hooks/use-comments-api.ts b/apps/app/src/hooks/use-comments-api.ts index 715828287..054bff708 100644 --- a/apps/app/src/hooks/use-comments-api.ts +++ b/apps/app/src/hooks/use-comments-api.ts @@ -2,7 +2,7 @@ import { useApi } from '@/hooks/use-api'; import { useApiSWR, UseApiSWROptions } from '@/hooks/use-api-swr'; -import type { CommentEntityType } from '@db'; +import type { CommentEntityType } from '@trycompai/db'; import { useCallback } from 'react'; // Helper function to convert API date strings to Date objects diff --git a/apps/app/src/hooks/use-organization-members.ts b/apps/app/src/hooks/use-organization-members.ts index d233d4be7..8823b43db 100644 --- a/apps/app/src/hooks/use-organization-members.ts +++ b/apps/app/src/hooks/use-organization-members.ts @@ -1,5 +1,5 @@ import { api } from '@/lib/api-client'; -import { Member, User } from '@db'; +import { Member, User } from '@trycompai/db'; import { useParams } from 'next/navigation'; import useSWR from 'swr'; diff --git a/apps/app/src/hooks/use-tasks-api.ts b/apps/app/src/hooks/use-tasks-api.ts index c6a14ee99..a310aa6fa 100644 --- a/apps/app/src/hooks/use-tasks-api.ts +++ b/apps/app/src/hooks/use-tasks-api.ts @@ -2,7 +2,7 @@ import { useApi } from '@/hooks/use-api'; import { useApiSWR, UseApiSWROptions } from '@/hooks/use-api-swr'; -import type { AttachmentType } from '@db'; +import type { AttachmentType } from '@trycompai/db'; import { useCallback } from 'react'; // Types for attachments API diff --git a/apps/app/src/hooks/use-users.ts b/apps/app/src/hooks/use-users.ts index 8871d4186..b3fd0596d 100644 --- a/apps/app/src/hooks/use-users.ts +++ b/apps/app/src/hooks/use-users.ts @@ -1,5 +1,5 @@ import { getServersideSession } from '@/lib/get-session'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; import { cache } from 'react'; diff --git a/apps/app/src/jobs/lib/prompts.ts b/apps/app/src/jobs/lib/prompts.ts index 1372487a2..63e0a2a8c 100644 --- a/apps/app/src/jobs/lib/prompts.ts +++ b/apps/app/src/jobs/lib/prompts.ts @@ -1,5 +1,5 @@ -import { FrameworkEditorFramework, FrameworkEditorPolicyTemplate } from '@db'; import { logger } from '@trigger.dev/sdk'; +import { FrameworkEditorFramework, FrameworkEditorPolicyTemplate } from '@trycompai/db'; export const generatePrompt = ({ policyTemplate, diff --git a/apps/app/src/jobs/tasks/device/create-fleet-label-for-all-orgs.ts b/apps/app/src/jobs/tasks/device/create-fleet-label-for-all-orgs.ts index f2e4f7164..b24ad4c21 100644 --- a/apps/app/src/jobs/tasks/device/create-fleet-label-for-all-orgs.ts +++ b/apps/app/src/jobs/tasks/device/create-fleet-label-for-all-orgs.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, task } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { createFleetLabelForOrg } from './create-fleet-label-for-org'; export const createFleetLabelForAllOrgs = task({ diff --git a/apps/app/src/jobs/tasks/device/create-fleet-label-for-org.ts b/apps/app/src/jobs/tasks/device/create-fleet-label-for-org.ts index 73548ef27..893ac6221 100644 --- a/apps/app/src/jobs/tasks/device/create-fleet-label-for-org.ts +++ b/apps/app/src/jobs/tasks/device/create-fleet-label-for-org.ts @@ -1,5 +1,5 @@ import { getFleetInstance } from '@/lib/fleet'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { logger, queue, task } from '@trigger.dev/sdk'; import { AxiosError } from 'axios'; diff --git a/apps/app/src/jobs/tasks/email/new-policy-email.ts b/apps/app/src/jobs/tasks/email/new-policy-email.ts index b9ee7f4da..0489b8daf 100644 --- a/apps/app/src/jobs/tasks/email/new-policy-email.ts +++ b/apps/app/src/jobs/tasks/email/new-policy-email.ts @@ -1,4 +1,4 @@ -import { sendPolicyNotificationEmail } from '@comp/email'; +import { sendPolicyNotificationEmail } from '@comp/email/src'; import { logger, queue, task } from '@trigger.dev/sdk'; // Queue with concurrency limit of 1 to ensure rate limiting (1 email per second max) diff --git a/apps/app/src/jobs/tasks/email/publish-all-policies-email.ts b/apps/app/src/jobs/tasks/email/publish-all-policies-email.ts index ae03d786c..b2a1e15dc 100644 --- a/apps/app/src/jobs/tasks/email/publish-all-policies-email.ts +++ b/apps/app/src/jobs/tasks/email/publish-all-policies-email.ts @@ -1,4 +1,4 @@ -import { sendAllPolicyNotificationEmail } from '@comp/email'; +import { sendAllPolicyNotificationEmail } from '@comp/email/src'; import { logger, queue, task } from '@trigger.dev/sdk'; // Queue with concurrency limit to ensure rate limiting @@ -45,4 +45,3 @@ export const sendPublishAllPoliciesEmail = task({ } }, }); - diff --git a/apps/app/src/jobs/tasks/integration/integration-results.ts b/apps/app/src/jobs/tasks/integration/integration-results.ts index 1d7cfb8d6..d7842431e 100644 --- a/apps/app/src/jobs/tasks/integration/integration-results.ts +++ b/apps/app/src/jobs/tasks/integration/integration-results.ts @@ -1,7 +1,7 @@ import { decrypt } from '@comp/app/src/lib/encryption'; import { type DecryptFunction, getIntegrationHandler } from '@comp/integrations'; -import { db } from '@db'; import { logger, schemaTask } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { z } from 'zod'; export const sendIntegrationResults = schemaTask({ diff --git a/apps/app/src/jobs/tasks/integration/integration-schedule.ts b/apps/app/src/jobs/tasks/integration/integration-schedule.ts index a20c7581b..0d066746c 100644 --- a/apps/app/src/jobs/tasks/integration/integration-schedule.ts +++ b/apps/app/src/jobs/tasks/integration/integration-schedule.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, schedules } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { sendIntegrationResults } from './integration-results'; export const sendIntegrationSchedule = schedules.task({ diff --git a/apps/app/src/jobs/tasks/integration/run-integration-tests.ts b/apps/app/src/jobs/tasks/integration/run-integration-tests.ts index 47ff98f8a..4d5d38e71 100644 --- a/apps/app/src/jobs/tasks/integration/run-integration-tests.ts +++ b/apps/app/src/jobs/tasks/integration/run-integration-tests.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, task } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { sendIntegrationResults } from './integration-results'; export const runIntegrationTests = task({ diff --git a/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-all-orgs.ts b/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-all-orgs.ts index d76a19834..09a6d509e 100644 --- a/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-all-orgs.ts +++ b/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-all-orgs.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, task } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { backfillTrainingVideosForOrg } from './backfill-training-videos-for-org'; export const backfillTrainingVideosForAllOrgs = task({ diff --git a/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-org.ts b/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-org.ts index 21828c0ea..410c1ac35 100644 --- a/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-org.ts +++ b/apps/app/src/jobs/tasks/onboarding/backfill-training-videos-for-org.ts @@ -1,6 +1,6 @@ import { trainingVideos } from '@/lib/data/training-videos'; -import { db } from '@db'; import { logger, task } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; export const backfillTrainingVideosForOrg = task({ id: 'backfill-training-videos-for-org', diff --git a/apps/app/src/jobs/tasks/onboarding/generate-full-policies.ts b/apps/app/src/jobs/tasks/onboarding/generate-full-policies.ts index 6d45810b7..0dae38de4 100644 --- a/apps/app/src/jobs/tasks/onboarding/generate-full-policies.ts +++ b/apps/app/src/jobs/tasks/onboarding/generate-full-policies.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, queue, task } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { getOrganizationContext, triggerPolicyUpdates } from './onboard-organization-helpers'; // v4 queues must be declared in advance diff --git a/apps/app/src/jobs/tasks/onboarding/generate-risk-mitigation.ts b/apps/app/src/jobs/tasks/onboarding/generate-risk-mitigation.ts index fc26e8213..cad5911e6 100644 --- a/apps/app/src/jobs/tasks/onboarding/generate-risk-mitigation.ts +++ b/apps/app/src/jobs/tasks/onboarding/generate-risk-mitigation.ts @@ -1,5 +1,5 @@ -import { RiskStatus, db } from '@db'; import { logger, metadata, queue, task } from '@trigger.dev/sdk'; +import { RiskStatus, db } from '@trycompai/db'; import axios from 'axios'; import { createRiskMitigationComment, diff --git a/apps/app/src/jobs/tasks/onboarding/generate-vendor-mitigation.ts b/apps/app/src/jobs/tasks/onboarding/generate-vendor-mitigation.ts index e1aa5776b..19cf70c69 100644 --- a/apps/app/src/jobs/tasks/onboarding/generate-vendor-mitigation.ts +++ b/apps/app/src/jobs/tasks/onboarding/generate-vendor-mitigation.ts @@ -1,5 +1,5 @@ -import { VendorStatus, db } from '@db'; import { logger, metadata, queue, task } from '@trigger.dev/sdk'; +import { VendorStatus, db } from '@trycompai/db'; import axios from 'axios'; import { createVendorRiskComment, diff --git a/apps/app/src/jobs/tasks/onboarding/onboard-organization-helpers.ts b/apps/app/src/jobs/tasks/onboarding/onboard-organization-helpers.ts index d010b7f1c..a4f0d5fd4 100644 --- a/apps/app/src/jobs/tasks/onboarding/onboard-organization-helpers.ts +++ b/apps/app/src/jobs/tasks/onboarding/onboard-organization-helpers.ts @@ -1,4 +1,5 @@ import { openai } from '@ai-sdk/openai'; +import { logger, metadata, tasks } from '@trigger.dev/sdk'; import { CommentEntityType, db, @@ -11,8 +12,7 @@ import { RiskStatus, RiskTreatmentType, VendorCategory, -} from '@db'; -import { logger, metadata, tasks } from '@trigger.dev/sdk'; +} from '@trycompai/db'; import { generateObject, generateText, jsonSchema } from 'ai'; import axios from 'axios'; import type { researchVendor } from '../scrape/research'; diff --git a/apps/app/src/jobs/tasks/onboarding/onboard-organization.ts b/apps/app/src/jobs/tasks/onboarding/onboard-organization.ts index c7bc12638..19f5ade57 100644 --- a/apps/app/src/jobs/tasks/onboarding/onboard-organization.ts +++ b/apps/app/src/jobs/tasks/onboarding/onboard-organization.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, metadata, queue, task, tasks } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import axios from 'axios'; import { generateRiskMitigationsForOrg } from './generate-risk-mitigation'; import { generateVendorMitigationsForOrg } from './generate-vendor-mitigation'; diff --git a/apps/app/src/jobs/tasks/onboarding/update-policies-helpers.ts b/apps/app/src/jobs/tasks/onboarding/update-policies-helpers.ts index b89896a87..49a0f5026 100644 --- a/apps/app/src/jobs/tasks/onboarding/update-policies-helpers.ts +++ b/apps/app/src/jobs/tasks/onboarding/update-policies-helpers.ts @@ -1,7 +1,12 @@ import { openai } from '@ai-sdk/openai'; -import { db, FrameworkEditorFramework, FrameworkEditorPolicyTemplate, type Policy } from '@db'; import type { JSONContent } from '@tiptap/react'; import { logger } from '@trigger.dev/sdk'; +import { + db, + FrameworkEditorFramework, + FrameworkEditorPolicyTemplate, + type Policy, +} from '@trycompai/db'; import { generateObject, NoObjectGeneratedError } from 'ai'; import { z } from 'zod'; import { generatePrompt } from '../../lib/prompts'; diff --git a/apps/app/src/jobs/tasks/scrape/research.ts b/apps/app/src/jobs/tasks/scrape/research.ts index 1665fb964..853a5c1c1 100644 --- a/apps/app/src/jobs/tasks/scrape/research.ts +++ b/apps/app/src/jobs/tasks/scrape/research.ts @@ -1,6 +1,6 @@ import { researchJobCore } from '@/jobs/lib/research'; -import { db } from '@db'; import { schemaTask } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { z } from 'zod'; const firecrawlDataSchema = z.object({ diff --git a/apps/app/src/jobs/tasks/task/policy-schedule.ts b/apps/app/src/jobs/tasks/task/policy-schedule.ts index 71a51eb89..c7e46603e 100644 --- a/apps/app/src/jobs/tasks/task/policy-schedule.ts +++ b/apps/app/src/jobs/tasks/task/policy-schedule.ts @@ -1,6 +1,6 @@ -import { db } from '@db'; import { Novu } from '@novu/api'; import { logger, schedules } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; export const policySchedule = schedules.task({ id: 'policy-schedule', diff --git a/apps/app/src/jobs/tasks/task/task-schedule.ts b/apps/app/src/jobs/tasks/task/task-schedule.ts index 5d2ae3913..047d9b29f 100644 --- a/apps/app/src/jobs/tasks/task/task-schedule.ts +++ b/apps/app/src/jobs/tasks/task/task-schedule.ts @@ -1,6 +1,6 @@ -import { db } from '@db'; import { Novu } from '@novu/api'; import { logger, schedules } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; export const taskSchedule = schedules.task({ id: 'task-schedule', diff --git a/apps/app/src/jobs/tasks/task/weekly-task-reminder.ts b/apps/app/src/jobs/tasks/task/weekly-task-reminder.ts index 03a83b0d3..1ddcc8db8 100644 --- a/apps/app/src/jobs/tasks/task/weekly-task-reminder.ts +++ b/apps/app/src/jobs/tasks/task/weekly-task-reminder.ts @@ -1,5 +1,5 @@ -import { db } from '@db'; import { logger, schedules } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { sendWeeklyTaskDigestEmailTask } from '../email/weekly-task-digest-email'; export const weeklyTaskReminder = schedules.task({ diff --git a/apps/app/src/jobs/tasks/vendors/parse-questionnaire.ts b/apps/app/src/jobs/tasks/vendors/parse-questionnaire.ts index 0facf6291..90fd69bbd 100644 --- a/apps/app/src/jobs/tasks/vendors/parse-questionnaire.ts +++ b/apps/app/src/jobs/tasks/vendors/parse-questionnaire.ts @@ -1,9 +1,9 @@ -import { logger, task } from '@trigger.dev/sdk'; import { extractS3KeyFromUrl } from '@/app/s3'; import { env } from '@/env.mjs'; -import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; import { openai } from '@ai-sdk/openai'; -import { db } from '@db'; +import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; +import { logger, task } from '@trigger.dev/sdk'; +import { db } from '@trycompai/db'; import { generateObject, generateText, jsonSchema } from 'ai'; import * as XLSX from 'xlsx'; // Sync moved to answer generation tasks for better performance @@ -16,12 +16,9 @@ interface QuestionAnswer { /** * Extracts content from a file using various methods based on file type */ -async function extractContentFromFile( - fileData: string, - fileType: string, -): Promise { +async function extractContentFromFile(fileData: string, fileType: string): Promise { const fileBuffer = Buffer.from(fileData, 'base64'); - + // Handle Excel files (.xlsx, .xls) if ( fileType === 'application/vnd.ms-excel' || @@ -31,38 +28,40 @@ async function extractContentFromFile( try { const excelStartTime = Date.now(); const fileSizeMB = (fileBuffer.length / (1024 * 1024)).toFixed(2); - + logger.info('Processing Excel file', { fileType, fileSizeMB, }); - + const workbook = XLSX.read(fileBuffer, { type: 'buffer' }); - + // Process sheets sequentially (XLSX is synchronous, but this is still fast) // For very large files, sheets are processed one by one to avoid memory issues const sheets: string[] = []; - + for (const sheetName of workbook.SheetNames) { const worksheet = workbook.Sheets[sheetName]; const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1, defval: '' }); - + // Convert to readable text format const sheetText = jsonData .map((row: any) => { if (Array.isArray(row)) { - return row.filter((cell) => cell !== null && cell !== undefined && cell !== '').join(' | '); + return row + .filter((cell) => cell !== null && cell !== undefined && cell !== '') + .join(' | '); } return String(row); }) .filter((line: string) => line.trim() !== '') .join('\n'); - + if (sheetText.trim()) { sheets.push(`Sheet: ${sheetName}\n${sheetText}`); } } - + const extractionTime = ((Date.now() - excelStartTime) / 1000).toFixed(2); logger.info('Excel file processed', { fileSizeMB, @@ -70,13 +69,15 @@ async function extractContentFromFile( extractedLength: sheets.join('\n\n').length, extractionTimeSeconds: extractionTime, }); - + return sheets.join('\n\n'); } catch (error) { - throw new Error(`Failed to parse Excel file: ${error instanceof Error ? error.message : 'Unknown error'}`); + throw new Error( + `Failed to parse Excel file: ${error instanceof Error ? error.message : 'Unknown error'}`, + ); } } - + // Handle CSV files if (fileType === 'text/csv' || fileType === 'text/comma-separated-values') { try { @@ -85,19 +86,23 @@ async function extractContentFromFile( const lines = text.split('\n').filter((line) => line.trim() !== ''); return lines.join('\n'); } catch (error) { - throw new Error(`Failed to parse CSV file: ${error instanceof Error ? error.message : 'Unknown error'}`); + throw new Error( + `Failed to parse CSV file: ${error instanceof Error ? error.message : 'Unknown error'}`, + ); } } - + // Handle plain text files if (fileType === 'text/plain' || fileType.startsWith('text/')) { try { return fileBuffer.toString('utf-8'); } catch (error) { - throw new Error(`Failed to read text file: ${error instanceof Error ? error.message : 'Unknown error'}`); + throw new Error( + `Failed to read text file: ${error instanceof Error ? error.message : 'Unknown error'}`, + ); } } - + // Handle Word documents - try to use OpenAI vision API if ( fileType === 'application/msword' || @@ -107,7 +112,7 @@ async function extractContentFromFile( 'Word documents (.docx) are best converted to PDF or image format for parsing. Alternatively, use a URL to view the document.', ); } - + // For images and PDFs, use OpenAI vision API // Note: To detect poor PDF text extraction quality (for hybrid approach): // 1. Check text density: words per page < 50 suggests poor extraction @@ -117,19 +122,19 @@ async function extractContentFromFile( // 5. Missing expected patterns: if document should have tables/forms but none detected const isImage = fileType.startsWith('image/'); const isPdf = fileType === 'application/pdf'; - + if (isImage || isPdf) { const base64Data = fileData; const mimeType = fileType; const fileSizeMB = (Buffer.from(fileData, 'base64').length / (1024 * 1024)).toFixed(2); - + logger.info('Extracting content from PDF/image using vision API', { fileType: mimeType, fileSizeMB, }); - + const startTime = Date.now(); - + try { const { text } = await generateText({ model: openai('gpt-5-mini'), @@ -149,14 +154,14 @@ async function extractContentFromFile( }, ], }); - + const extractionTime = ((Date.now() - startTime) / 1000).toFixed(2); logger.info('Content extracted from PDF/image', { fileType: mimeType, extractedLength: text.length, extractionTimeSeconds: extractionTime, }); - + return text; } catch (error) { const extractionTime = ((Date.now() - startTime) / 1000).toFixed(2); @@ -166,10 +171,12 @@ async function extractContentFromFile( extractionTimeSeconds: extractionTime, error: error instanceof Error ? error.message : 'Unknown error', }); - throw new Error(`Failed to extract content: ${error instanceof Error ? error.message : 'Unknown error'}`); + throw new Error( + `Failed to extract content: ${error instanceof Error ? error.message : 'Unknown error'}`, + ); } } - + // For other file types that might be binary formats, provide helpful error message throw new Error( `Unsupported file type: ${fileType}. Supported formats: PDF, images (PNG, JPG, etc.), Excel (.xlsx, .xls), CSV, text files (.txt), and Word documents (.docx - convert to PDF for best results).`, @@ -183,7 +190,7 @@ async function extractContentFromUrl(url: string): Promise { if (!env.FIRECRAWL_API_KEY) { throw new Error('Firecrawl API key is not configured'); } - + try { const initialResponse = await fetch('https://api.firecrawl.dev/v1/extract', { method: 'POST', @@ -193,28 +200,29 @@ async function extractContentFromUrl(url: string): Promise { }, body: JSON.stringify({ urls: [url], - prompt: 'Extract all text content from this page, including any questions and answers, forms, or questionnaire data.', + prompt: + 'Extract all text content from this page, including any questions and answers, forms, or questionnaire data.', scrapeOptions: { onlyMainContent: true, removeBase64Images: true, }, }), }); - + const initialData = await initialResponse.json(); - + if (!initialData.success || !initialData.id) { throw new Error('Failed to start Firecrawl extraction'); } - + const jobId = initialData.id; const maxWaitTime = 1000 * 60 * 5; // 5 minutes const pollInterval = 5000; // 5 seconds const startTime = Date.now(); - + while (Date.now() - startTime < maxWaitTime) { await new Promise((resolve) => setTimeout(resolve, pollInterval)); - + const statusResponse = await fetch(`https://api.firecrawl.dev/v1/extract/${jobId}`, { method: 'GET', headers: { @@ -222,9 +230,9 @@ async function extractContentFromUrl(url: string): Promise { Authorization: `Bearer ${env.FIRECRAWL_API_KEY}`, }, }); - + const statusData = await statusResponse.json(); - + if (statusData.status === 'completed' && statusData.data) { // Extract text from the response const extractedData = statusData.data; @@ -238,16 +246,16 @@ async function extractContentFromUrl(url: string): Promise { } return JSON.stringify(extractedData); } - + if (statusData.status === 'failed') { throw new Error('Firecrawl extraction failed'); } - + if (statusData.status === 'cancelled') { throw new Error('Firecrawl extraction was cancelled'); } } - + throw new Error('Firecrawl extraction timed out'); } catch (error) { throw error instanceof Error ? error : new Error('Failed to extract content from URL'); @@ -267,29 +275,29 @@ async function extractContentFromAttachment( organizationId, }, }); - + if (!attachment) { throw new Error('Attachment not found'); } - + const bucketName = process.env.APP_AWS_BUCKET_NAME; if (!bucketName) { throw new Error('APP_AWS_BUCKET_NAME environment variable is not set in Trigger.dev.'); } - + const key = extractS3KeyFromUrl(attachment.url); const s3Client = createS3Client(); const getCommand = new GetObjectCommand({ Bucket: bucketName, Key: key, }); - + const response = await s3Client.send(getCommand); - + if (!response.Body) { throw new Error('Failed to retrieve attachment from S3'); } - + // Convert stream to buffer const chunks: Uint8Array[] = []; for await (const chunk of response.Body as any) { @@ -297,14 +305,13 @@ async function extractContentFromAttachment( } const buffer = Buffer.concat(chunks); const base64Data = buffer.toString('base64'); - + // Determine file type from attachment or content type const fileType = - response.ContentType || - (attachment.type === 'image' ? 'image/png' : 'application/pdf'); - + response.ContentType || (attachment.type === 'image' ? 'image/png' : 'application/pdf'); + const content = await extractContentFromFile(base64Data, fileType); - + return { content, fileType }; } @@ -340,9 +347,11 @@ async function extractContentFromS3Key( fileType: string, ): Promise<{ content: string; fileType: string }> { const questionnaireBucket = process.env.APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET; - + if (!questionnaireBucket) { - throw new Error('Questionnaire upload bucket is not configured. Please set APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET environment variable in Trigger.dev.'); + throw new Error( + 'Questionnaire upload bucket is not configured. Please set APP_AWS_QUESTIONNAIRE_UPLOAD_BUCKET environment variable in Trigger.dev.', + ); } const s3Client = createS3Client(); @@ -351,13 +360,13 @@ async function extractContentFromS3Key( Bucket: questionnaireBucket, Key: s3Key, }); - + const response = await s3Client.send(getCommand); - + if (!response.Body) { throw new Error('Failed to retrieve file from S3'); } - + // Convert stream to buffer const chunks: Uint8Array[] = []; for await (const chunk of response.Body as any) { @@ -365,19 +374,23 @@ async function extractContentFromS3Key( } const buffer = Buffer.concat(chunks); const base64Data = buffer.toString('base64'); - + // Use provided fileType or determine from content type const detectedFileType = response.ContentType || fileType || 'application/octet-stream'; - + const content = await extractContentFromFile(base64Data, detectedFileType); - + return { content, fileType: detectedFileType }; } /** * Parses questions and answers from a single chunk of content */ -async function parseChunkQuestionsAndAnswers(chunk: string, chunkIndex: number, totalChunks: number): Promise { +async function parseChunkQuestionsAndAnswers( + chunk: string, + chunkIndex: number, + totalChunks: number, +): Promise { const { object } = await generateObject({ model: openai('gpt-5-mini'), // Fastest model for structured extraction (20-40% faster than GPT-4o-mini) mode: 'json', @@ -394,10 +407,7 @@ async function parseChunkQuestionsAndAnswers(chunk: string, chunkIndex: number, description: 'The question text', }, answer: { - anyOf: [ - { type: 'string' }, - { type: 'null' }, - ], + anyOf: [{ type: 'string' }, { type: 'null' }], description: 'The answer to the question. Use null if no answer is provided.', }, }, @@ -408,21 +418,22 @@ async function parseChunkQuestionsAndAnswers(chunk: string, chunkIndex: number, required: ['questionsAndAnswers'], }), system: `Extract question-answer pairs from vendor questionnaires. Return structured pairs. Use null for missing answers.`, - prompt: totalChunks > 1 - ? `Extract question-answer pairs from chunk ${chunkIndex + 1} of ${totalChunks}: + prompt: + totalChunks > 1 + ? `Extract question-answer pairs from chunk ${chunkIndex + 1} of ${totalChunks}: ${chunk} Return all question-answer pairs found in this chunk.` - : `Extract all question-answer pairs from: + : `Extract all question-answer pairs from: ${chunk} Return a structured list of questions and their corresponding answers.`, }); - + const parsed = (object as { questionsAndAnswers: QuestionAnswer[] }).questionsAndAnswers; - + // Post-process to ensure empty strings are converted to null return parsed.map((qa) => ({ question: qa.question, @@ -439,7 +450,7 @@ async function parseQuestionsAndAnswers(content: string): Promise MAX_CHUNK_SIZE_CHARS * 0.8) { let breakPoint = -1; - + // First try: break after question mark (best for Q&A content) const lastQuestionMark = chunk.lastIndexOf('?'); if (lastQuestionMark > MAX_CHUNK_SIZE_CHARS * 0.7) { @@ -473,50 +484,50 @@ async function parseQuestionsAndAnswers(content: string): Promise MAX_CHUNK_SIZE_CHARS * 0.7) { chunk = chunk.slice(0, breakPoint + 1); } } - + if (chunk.trim().length > 0) { chunks.push(chunk.trim()); } - + start = end; } - + logger.info('Content chunked, processing in parallel', { totalChunks: chunks.length, }); - + // Process ALL chunks in parallel for maximum speed // GPT-5-mini has high rate limits and is faster, so we can process all at once const parseStartTime = Date.now(); const allPromises = chunks.map((chunk, index) => parseChunkQuestionsAndAnswers(chunk, index, chunks.length), ); - + const allResults = await Promise.all(allPromises); const parseTime = ((Date.now() - parseStartTime) / 1000).toFixed(2); - + logger.info('All chunks processed in parallel', { totalChunks: chunks.length, parseTimeSeconds: parseTime, totalQuestions: allResults.flat().length, }); - + // Deduplicate questions (same question might appear in multiple chunks) // Use Map for O(1) lookups and preserve order const seenQuestions = new Map(); - + for (const qaArray of allResults) { for (const qa of qaArray) { const normalizedQuestion = qa.question.toLowerCase().trim(); @@ -526,14 +537,14 @@ async function parseQuestionsAndAnswers(content: string): Promise { const taskStartTime = Date.now(); - + logger.info('Starting parse questionnaire task', { inputType: payload.inputType, organizationId: payload.organizationId, @@ -566,22 +577,19 @@ export const parseQuestionnaireTask = task({ try { // Note: Sync is now done during answer generation for better performance // Parsing is fast and doesn't need embeddings - + let extractedContent: string; - + // Extract content based on input type switch (payload.inputType) { case 'file': { if (!payload.fileData || !payload.fileType) { throw new Error('File data and file type are required for file input'); } - extractedContent = await extractContentFromFile( - payload.fileData, - payload.fileType, - ); + extractedContent = await extractContentFromFile(payload.fileData, payload.fileType); break; } - + case 'url': { if (!payload.url) { throw new Error('URL is required for URL input'); @@ -589,7 +597,7 @@ export const parseQuestionnaireTask = task({ extractedContent = await extractContentFromUrl(payload.url); break; } - + case 'attachment': { if (!payload.attachmentId) { throw new Error('Attachment ID is required for attachment input'); @@ -601,45 +609,42 @@ export const parseQuestionnaireTask = task({ extractedContent = result.content; break; } - + case 's3': { if (!payload.s3Key || !payload.fileType) { throw new Error('S3 key and file type are required for S3 input'); } - const result = await extractContentFromS3Key( - payload.s3Key, - payload.fileType, - ); + const result = await extractContentFromS3Key(payload.s3Key, payload.fileType); extractedContent = result.content; break; } - + default: throw new Error(`Unsupported input type: ${payload.inputType}`); } - + logger.info('Content extracted successfully', { inputType: payload.inputType, contentLength: extractedContent.length, }); - + // Parse questions and answers from extracted content const parseStartTime = Date.now(); const questionsAndAnswers = await parseQuestionsAndAnswers(extractedContent); const parseTime = ((Date.now() - parseStartTime) / 1000).toFixed(2); - + const totalTime = ((Date.now() - taskStartTime) / 1000).toFixed(2); - + logger.info('Questions and answers parsed', { questionCount: questionsAndAnswers.length, parseTimeSeconds: parseTime, totalTimeSeconds: totalTime, }); - + // NOTE: We no longer add questionnaire Q&A pairs to the vector database // They are not used as a source for generating answers (only Policy and Context are used) // This prevents cluttering the vector DB with potentially outdated questionnaire answers - // + // // If you need to use questionnaire Q&A as a source in the future, uncomment this block: /* const vendorName = 'Security Questionnaire'; @@ -690,7 +695,7 @@ export const parseQuestionnaireTask = task({ // Don't fail parsing if vector DB addition fails } */ - + return { success: true, questionsAndAnswers, @@ -701,10 +706,7 @@ export const parseQuestionnaireTask = task({ error: error instanceof Error ? error.message : 'Unknown error', errorStack: error instanceof Error ? error.stack : undefined, }); - throw error instanceof Error - ? error - : new Error('Failed to parse questionnaire'); + throw error instanceof Error ? error : new Error('Failed to parse questionnaire'); } }, }); - diff --git a/apps/app/src/lib/api-key.ts b/apps/app/src/lib/api-key.ts index 2d6530264..fb1f21a62 100644 --- a/apps/app/src/lib/api-key.ts +++ b/apps/app/src/lib/api-key.ts @@ -1,4 +1,4 @@ -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { NextRequest } from 'next/server'; import { NextResponse } from 'next/server'; import { createHash, randomBytes } from 'node:crypto'; diff --git a/apps/app/src/lib/control-compliance.ts b/apps/app/src/lib/control-compliance.ts index b87d7c655..8e0622e0f 100644 --- a/apps/app/src/lib/control-compliance.ts +++ b/apps/app/src/lib/control-compliance.ts @@ -1,4 +1,4 @@ -import type { PolicyStatus } from '@db'; +import type { PolicyStatus } from '@trycompai/db'; // Define the expected structure for policies (typically with selected fields) export type SelectedPolicy = { diff --git a/apps/app/src/lib/currentOrganization.ts b/apps/app/src/lib/currentOrganization.ts index 5e2c909d4..69bf3474e 100644 --- a/apps/app/src/lib/currentOrganization.ts +++ b/apps/app/src/lib/currentOrganization.ts @@ -1,8 +1,8 @@ 'use server'; import { auth } from '@/utils/auth'; -import type { Organization } from '@db'; -import { db } from '@db'; +import type { Organization } from '@trycompai/db'; +import { db } from '@trycompai/db'; import { headers } from 'next/headers'; export async function getCurrentOrganization({ diff --git a/apps/app/src/lib/db/employee.ts b/apps/app/src/lib/db/employee.ts index 04fa786bb..b8563691c 100644 --- a/apps/app/src/lib/db/employee.ts +++ b/apps/app/src/lib/db/employee.ts @@ -1,7 +1,7 @@ import { env } from '@/env.mjs'; import { trainingVideos } from '@/lib/data/training-videos'; -import { InvitePortalEmail, sendEmail } from '@comp/email'; -import { db, type Departments, type Member, type Role } from '@db'; +import { InvitePortalEmail, sendEmail } from '@comp/email/src'; +import { db, type Departments, type Member, type Role } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; if (!env.NEXT_PUBLIC_PORTAL_URL) { diff --git a/apps/app/src/lib/pdf-generator.ts b/apps/app/src/lib/pdf-generator.ts index bbba4dbb9..8e20d369b 100644 --- a/apps/app/src/lib/pdf-generator.ts +++ b/apps/app/src/lib/pdf-generator.ts @@ -1,7 +1,7 @@ -import { jsPDF } from 'jspdf'; import type { JSONContent as TipTapJSONContent } from '@tiptap/react'; -import { AuditLog, User, Member, Organization, Policy } from '@db'; +import { AuditLog, Member, Organization, Policy, User } from '@trycompai/db'; import { format } from 'date-fns'; +import { jsPDF } from 'jspdf'; // Type definition for the JSON content structure interface JSONContent { @@ -65,42 +65,87 @@ const cleanTextForPDF = (text: string): string => { // For any remaining non-ASCII characters, try to preserve them first // Only replace if they cause font rendering issues - return cleanedText.replace(/[^\x00-\x7F]/g, function(char) { + return cleanedText.replace(/[^\x00-\x7F]/g, function (char) { // Common accented characters that should work fine in most PDF fonts const safeChars = /[àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß]/; - + if (safeChars.test(char)) { return char; // Keep safe accented characters } - + // For other characters, provide basic ASCII fallbacks const fallbacks: { [key: string]: string } = { - 'à': 'a', 'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', - 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', - 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', - 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ø': 'o', - 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', - 'ñ': 'n', 'ç': 'c', 'ß': 'ss', 'ÿ': 'y', - 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', - 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', - 'Ì': 'I', 'Í': 'I', 'Î': 'I', 'Ï': 'I', - 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö': 'O', 'Ø': 'O', - 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', - 'Ñ': 'N', 'Ç': 'C', 'Ý': 'Y' + à: 'a', + á: 'a', + â: 'a', + ã: 'a', + ä: 'a', + å: 'a', + æ: 'ae', + è: 'e', + é: 'e', + ê: 'e', + ë: 'e', + ì: 'i', + í: 'i', + î: 'i', + ï: 'i', + ò: 'o', + ó: 'o', + ô: 'o', + õ: 'o', + ö: 'o', + ø: 'o', + ù: 'u', + ú: 'u', + û: 'u', + ü: 'u', + ñ: 'n', + ç: 'c', + ß: 'ss', + ÿ: 'y', + À: 'A', + Á: 'A', + Â: 'A', + Ã: 'A', + Ä: 'A', + Å: 'A', + Æ: 'AE', + È: 'E', + É: 'E', + Ê: 'E', + Ë: 'E', + Ì: 'I', + Í: 'I', + Î: 'I', + Ï: 'I', + Ò: 'O', + Ó: 'O', + Ô: 'O', + Õ: 'O', + Ö: 'O', + Ø: 'O', + Ù: 'U', + Ú: 'U', + Û: 'U', + Ü: 'U', + Ñ: 'N', + Ç: 'C', + Ý: 'Y', }; - + return fallbacks[char] || '?'; // Use ? for unknown characters }); }; // Convert TipTap JSONContent to our internal format const convertToInternalFormat = (content: TipTapJSONContent[]): JSONContent[] => { - return content.map(item => ({ + return content.map((item) => ({ type: item.type || 'paragraph', attrs: item.attrs, content: item.content ? convertToInternalFormat(item.content) : undefined, text: item.text, - marks: item.marks + marks: item.marks, })); }; @@ -114,13 +159,13 @@ const checkPageBreak = (config: PDFConfig, requiredHeight: number = config.lineH // Helper function to add text with word wrapping const addTextWithWrapping = ( - config: PDFConfig, - text: string, - fontSize: number = config.defaultFontSize, - isBold: boolean = false + config: PDFConfig, + text: string, + fontSize: number = config.defaultFontSize, + isBold: boolean = false, ) => { const cleanText = cleanTextForPDF(text); - + // Always reset font properties and color before setting new ones config.doc.setFontSize(fontSize); config.doc.setTextColor(0, 0, 0); // Ensure text is black @@ -129,9 +174,9 @@ const addTextWithWrapping = ( } else { config.doc.setFont('helvetica', 'normal'); } - + const lines = config.doc.splitTextToSize(cleanText, config.contentWidth); - + for (const line of lines) { checkPageBreak(config); config.doc.text(line, config.margin, config.yPosition); @@ -141,32 +186,34 @@ const addTextWithWrapping = ( // Helper function to extract text from content array const extractTextFromContent = (content: JSONContent[]): string => { - return content.map(item => { - if (item.text) { - return item.text; - } else if (item.content) { - return extractTextFromContent(item.content); - } - return ''; - }).join(''); + return content + .map((item) => { + if (item.text) { + return item.text; + } else if (item.content) { + return extractTextFromContent(item.content); + } + return ''; + }) + .join(''); }; // Enhanced helper function that renders text with proper formatting const renderFormattedContent = ( config: PDFConfig, - content: JSONContent[], - xPos: number, - maxWidth: number + content: JSONContent[], + xPos: number, + maxWidth: number, ) => { for (const item of content) { if (item.text) { - const isBold = item.marks?.some(mark => mark.type === 'bold') || false; + const isBold = item.marks?.some((mark) => mark.type === 'bold') || false; const cleanText = cleanTextForPDF(item.text); - + config.doc.setFontSize(config.defaultFontSize); config.doc.setTextColor(0, 0, 0); // Ensure text is black config.doc.setFont('helvetica', isBold ? 'bold' : 'normal'); - + const lines = config.doc.splitTextToSize(cleanText, maxWidth); for (const line of lines) { checkPageBreak(config); @@ -188,7 +235,7 @@ const processContent = (config: PDFConfig, content: JSONContent[], level: number let fontSize: number; let spacingBefore: number; let spacingAfter: number; - + switch (headingLevel) { case 1: fontSize = 14; @@ -210,18 +257,18 @@ const processContent = (config: PDFConfig, content: JSONContent[], level: number spacingBefore = config.lineHeight; spacingAfter = config.lineHeight * 0.5; } - + config.yPosition += spacingBefore; checkPageBreak(config); - + if (item.content) { const headingText = extractTextFromContent(item.content); addTextWithWrapping(config, headingText, fontSize, true); } - + config.yPosition += spacingAfter; break; - + case 'paragraph': if (item.content) { const paragraphText = extractTextFromContent(item.content); @@ -236,26 +283,29 @@ const processContent = (config: PDFConfig, content: JSONContent[], level: number } } break; - + case 'bulletList': if (item.content) { for (const listItem of item.content) { if (listItem.type === 'listItem' && listItem.content) { const listText = extractTextFromContent(listItem.content); checkPageBreak(config); - + // Add bullet point with consistent font config.doc.setFontSize(config.defaultFontSize); config.doc.setFont('helvetica', 'normal'); config.doc.setTextColor(0, 0, 0); // Ensure bullet is black config.doc.text('•', config.margin + level * 10, config.yPosition); - + // Add indented text with proper font reset config.doc.setFontSize(config.defaultFontSize); config.doc.setFont('helvetica', 'normal'); config.doc.setTextColor(0, 0, 0); // Ensure text is black const cleanText = cleanTextForPDF(listText); - const lines = config.doc.splitTextToSize(cleanText, config.contentWidth - 8 - level * 10); + const lines = config.doc.splitTextToSize( + cleanText, + config.contentWidth - 8 - level * 10, + ); for (let i = 0; i < lines.length; i++) { checkPageBreak(config); config.doc.text(lines[i], config.margin + 5 + level * 10, config.yPosition); @@ -266,7 +316,7 @@ const processContent = (config: PDFConfig, content: JSONContent[], level: number } } break; - + case 'orderedList': if (item.content) { let itemNumber = 1; @@ -274,19 +324,22 @@ const processContent = (config: PDFConfig, content: JSONContent[], level: number if (listItem.type === 'listItem' && listItem.content) { const listText = extractTextFromContent(listItem.content); checkPageBreak(config); - + // Add number with consistent font config.doc.setFontSize(config.defaultFontSize); config.doc.setFont('helvetica', 'normal'); config.doc.setTextColor(0, 0, 0); // Ensure number is black config.doc.text(`${itemNumber}.`, config.margin + level * 10, config.yPosition); - + // Add indented text with proper font reset config.doc.setFontSize(config.defaultFontSize); config.doc.setFont('helvetica', 'normal'); config.doc.setTextColor(0, 0, 0); // Ensure text is black const cleanText = cleanTextForPDF(listText); - const lines = config.doc.splitTextToSize(cleanText, config.contentWidth - 10 - level * 10); + const lines = config.doc.splitTextToSize( + cleanText, + config.contentWidth - 10 - level * 10, + ); for (let i = 0; i < lines.length; i++) { checkPageBreak(config); config.doc.text(lines[i], config.margin + 8 + level * 10, config.yPosition); @@ -303,124 +356,164 @@ const processContent = (config: PDFConfig, content: JSONContent[], level: number }; // Function to add audit logs table -const addAuditLogsTable = (config: PDFConfig, auditLogs: AuditLogWithRelations[], isCompact: boolean = false) => { +const addAuditLogsTable = ( + config: PDFConfig, + auditLogs: AuditLogWithRelations[], + isCompact: boolean = false, +) => { checkPageBreak(config, config.lineHeight * 6); // Ensure we have space for at least the header - + // Reset text color to black for table config.doc.setTextColor(0, 0, 0); - + // Table configuration const tableStartY = config.yPosition; const colWidths = { - name: config.contentWidth * 0.25, // 25% for Name - description: config.contentWidth * 0.55, // 55% for Description - datetime: config.contentWidth * 0.20 // 20% for Date/Time + name: config.contentWidth * 0.25, // 25% for Name + description: config.contentWidth * 0.55, // 55% for Description + datetime: config.contentWidth * 0.2, // 20% for Date/Time }; - + const colPositions = { name: config.margin, description: config.margin + colWidths.name, - datetime: config.margin + colWidths.name + colWidths.description + datetime: config.margin + colWidths.name + colWidths.description, }; - + // Adjust font sizes based on compact mode const headerFontSize = isCompact ? 9 : 10; const contentFontSize = isCompact ? 8 : 9; - + // Draw table header config.doc.setFontSize(headerFontSize); config.doc.setFont('helvetica', 'bold'); - + // Header background (light gray) config.doc.setFillColor(240, 240, 240); - config.doc.rect(config.margin, config.yPosition - 2, config.contentWidth, config.lineHeight + 2, 'F'); - + config.doc.rect( + config.margin, + config.yPosition - 2, + config.contentWidth, + config.lineHeight + 2, + 'F', + ); + // Header text config.doc.setTextColor(0, 0, 0); config.doc.text('Name', colPositions.name + 2, config.yPosition + 4); config.doc.text('Description', colPositions.description + 2, config.yPosition + 4); config.doc.text('Date/Time', colPositions.datetime + 2, config.yPosition + 4); - + config.yPosition += config.lineHeight + 2; - + // Draw table rows config.doc.setFont('helvetica', 'normal'); config.doc.setFontSize(contentFontSize); - + auditLogs.forEach((log, index) => { const rowY = config.yPosition; - + // Check for page break checkPageBreak(config, config.lineHeight * 2); - + // Alternate row background if (index % 2 === 0) { config.doc.setFillColor(248, 248, 248); - config.doc.rect(config.margin, config.yPosition - 1, config.contentWidth, config.lineHeight + 2, 'F'); + config.doc.rect( + config.margin, + config.yPosition - 1, + config.contentWidth, + config.lineHeight + 2, + 'F', + ); } - + // Extract user info const userName = log.user?.name || `User ${log.userId.substring(0, 6)}`; const description = log.description || 'No description available'; const dateTime = format(log.timestamp, 'MMM d, yyyy h:mm a'); - + // Draw cell contents with text wrapping for description config.doc.setTextColor(0, 0, 0); - + // Name column (truncate if too long) const nameText = userName.length > 20 ? userName.substring(0, 17) + '...' : userName; config.doc.text(nameText, colPositions.name + 2, config.yPosition + 4); - + // Description column (wrap text) const descLines = config.doc.splitTextToSize(description, colWidths.description - 4); const maxDescLines = 2; // Limit to 2 lines to keep row height manageable const displayLines = descLines.slice(0, maxDescLines); - + displayLines.forEach((line: string, lineIndex: number) => { - config.doc.text(line, colPositions.description + 2, config.yPosition + 4 + (lineIndex * 4)); + config.doc.text(line, colPositions.description + 2, config.yPosition + 4 + lineIndex * 4); }); - + // If text was truncated, add ellipsis if (descLines.length > maxDescLines) { const lastLine = displayLines[displayLines.length - 1]; - const ellipsisLine = lastLine.length > 40 ? lastLine.substring(0, 37) + '...' : lastLine + '...'; - config.doc.text(ellipsisLine, colPositions.description + 2, config.yPosition + 4 + ((maxDescLines - 1) * 4)); + const ellipsisLine = + lastLine.length > 40 ? lastLine.substring(0, 37) + '...' : lastLine + '...'; + config.doc.text( + ellipsisLine, + colPositions.description + 2, + config.yPosition + 4 + (maxDescLines - 1) * 4, + ); } - + // Date/Time column config.doc.text(dateTime, colPositions.datetime + 2, config.yPosition + 4); - + // Calculate row height based on description lines - const rowHeight = Math.max(config.lineHeight + 2, (displayLines.length * 4) + 2); + const rowHeight = Math.max(config.lineHeight + 2, displayLines.length * 4 + 2); config.yPosition += rowHeight; - + // Draw row border config.doc.setDrawColor(200, 200, 200); config.doc.setLineWidth(0.1); - config.doc.line(config.margin, rowY + rowHeight, config.margin + config.contentWidth, rowY + rowHeight); + config.doc.line( + config.margin, + rowY + rowHeight, + config.margin + config.contentWidth, + rowY + rowHeight, + ); }); - + // Draw table borders config.doc.setDrawColor(150, 150, 150); config.doc.setLineWidth(0.3); - + // Outer border - config.doc.rect(config.margin, tableStartY - 2, config.contentWidth, config.yPosition - (tableStartY - 2)); - + config.doc.rect( + config.margin, + tableStartY - 2, + config.contentWidth, + config.yPosition - (tableStartY - 2), + ); + // Column separators - config.doc.line(colPositions.description, tableStartY - 2, colPositions.description, config.yPosition); + config.doc.line( + colPositions.description, + tableStartY - 2, + colPositions.description, + config.yPosition, + ); config.doc.line(colPositions.datetime, tableStartY - 2, colPositions.datetime, config.yPosition); - + // Add some space after the table config.yPosition += config.lineHeight; }; // Function to add audit logs section (table or no activity message) -const addAuditLogsSection = (config: PDFConfig, auditLogs: AuditLogWithRelations[], isCompact: boolean = false) => { +const addAuditLogsSection = ( + config: PDFConfig, + auditLogs: AuditLogWithRelations[], + isCompact: boolean = false, +) => { // Add some space before the section config.yPosition += config.lineHeight * 2; checkPageBreak(config, config.lineHeight * 3); // Ensure we have space for at least the header - + // Add section title const titleFontSize = isCompact ? 12 : 14; config.doc.setFontSize(titleFontSize); @@ -428,7 +521,7 @@ const addAuditLogsSection = (config: PDFConfig, auditLogs: AuditLogWithRelations config.doc.setTextColor(0, 0, 0); // Ensure title is black config.doc.text('Recent Activity', config.margin, config.yPosition); config.yPosition += config.lineHeight * 1.5; - + if (!auditLogs || auditLogs.length === 0) { // Show "No recent activity" message const messageFontSize = isCompact ? 9 : 10; @@ -437,12 +530,12 @@ const addAuditLogsSection = (config: PDFConfig, auditLogs: AuditLogWithRelations config.doc.setTextColor(100, 100, 100); // Gray color config.doc.text('No recent activity', config.margin, config.yPosition); config.yPosition += config.lineHeight; - + // Reset text color to black after gray message config.doc.setTextColor(0, 0, 0); return; } - + // Show the table addAuditLogsTable(config, auditLogs, isCompact); }; @@ -454,16 +547,24 @@ const addPageNumbers = (config: PDFConfig) => { config.doc.setPage(i); config.doc.setFontSize(8); config.doc.setFont('helvetica', 'normal'); - config.doc.text(`Page ${i} of ${totalPages}`, config.pageWidth - config.margin - 30, config.pageHeight - 10); + config.doc.text( + `Page ${i} of ${totalPages}`, + config.pageWidth - config.margin - 30, + config.pageHeight - 10, + ); } }; /** * Converts JSON content to a formatted PDF document */ -export function generatePolicyPDF(jsonContent: TipTapJSONContent[], logs: AuditLogWithRelations[], policyTitle?: string): void { +export function generatePolicyPDF( + jsonContent: TipTapJSONContent[], + logs: AuditLogWithRelations[], + policyTitle?: string, +): void { const internalContent = convertToInternalFormat(jsonContent); - + const doc = new jsPDF(); const config: PDFConfig = { doc, @@ -473,55 +574,58 @@ export function generatePolicyPDF(jsonContent: TipTapJSONContent[], logs: AuditL contentWidth: doc.internal.pageSize.getWidth() - 40, lineHeight: 6, defaultFontSize: 10, - yPosition: 20 + yPosition: 20, }; - + // Add title if provided if (policyTitle) { const cleanTitle = cleanTextForPDF(policyTitle); - + config.doc.setFontSize(16); config.doc.setFont('helvetica', 'bold'); config.doc.text(cleanTitle, config.margin, config.yPosition); config.yPosition += config.lineHeight * 2; } - + // Process the main content processContent(config, internalContent); - + // Add audit logs section addAuditLogsSection(config, logs); - + // Add page numbers addPageNumbers(config); - + // Save the PDF - const filename = policyTitle + const filename = policyTitle ? `${policyTitle.toLowerCase().replace(/[^a-z0-9]/g, '-')}-policy.pdf` : 'policy-document.pdf'; - + doc.save(filename); } /** * Alternative function that generates a more readable HTML-style PDF */ -export function generatePolicyPDFFromHTML(jsonContent: TipTapJSONContent[], policyTitle?: string): void { +export function generatePolicyPDFFromHTML( + jsonContent: TipTapJSONContent[], + policyTitle?: string, +): void { // Convert TipTap JSONContent to our internal format const convertToInternalFormat = (content: TipTapJSONContent[]): JSONContent[] => { - return content.map(item => ({ + return content.map((item) => ({ type: item.type || 'paragraph', attrs: item.attrs, content: item.content ? convertToInternalFormat(item.content) : undefined, text: item.text, - marks: item.marks + marks: item.marks, })); }; - + const internalContent = convertToInternalFormat(jsonContent); // Convert JSON to HTML first const htmlContent = convertJSONToHTML(internalContent); - + // Create a temporary HTML page for PDF generation const htmlPage = ` @@ -557,7 +661,7 @@ export function generatePolicyPDFFromHTML(jsonContent: TipTapJSONContent[], poli `; - + // Create a blob and download link const blob = new Blob([htmlPage], { type: 'text/html' }); const url = URL.createObjectURL(blob); @@ -586,51 +690,58 @@ export function generatePolicyPDFFromHTML(jsonContent: TipTapJSONContent[], poli * Convert JSON content to HTML string */ function convertJSONToHTML(content: JSONContent[]): string { - return content.map(item => { - switch (item.type) { - case 'heading': - const level = item.attrs?.level || 1; - const headingText = item.content ? extractTextFromContent(item.content) : ''; - return `${headingText}`; - - case 'paragraph': - const paragraphText = item.content ? extractTextFromContent(item.content) : ''; - return `

${paragraphText}

`; - - case 'bulletList': - const bulletItems = item.content?.map(listItem => { - if (listItem.type === 'listItem' && listItem.content) { - const text = extractTextFromContent(listItem.content); - return `
  • ${text}
  • `; - } - return ''; - }).join('') || ''; - return `
      ${bulletItems}
    `; - - case 'orderedList': - const orderedItems = item.content?.map(listItem => { - if (listItem.type === 'listItem' && listItem.content) { - const text = extractTextFromContent(listItem.content); - return `
  • ${text}
  • `; - } + return content + .map((item) => { + switch (item.type) { + case 'heading': + const level = item.attrs?.level || 1; + const headingText = item.content ? extractTextFromContent(item.content) : ''; + return `${headingText}`; + + case 'paragraph': + const paragraphText = item.content ? extractTextFromContent(item.content) : ''; + return `

    ${paragraphText}

    `; + + case 'bulletList': + const bulletItems = + item.content + ?.map((listItem) => { + if (listItem.type === 'listItem' && listItem.content) { + const text = extractTextFromContent(listItem.content); + return `
  • ${text}
  • `; + } + return ''; + }) + .join('') || ''; + return `
      ${bulletItems}
    `; + + case 'orderedList': + const orderedItems = + item.content + ?.map((listItem) => { + if (listItem.type === 'listItem' && listItem.content) { + const text = extractTextFromContent(listItem.content); + return `
  • ${text}
  • `; + } + return ''; + }) + .join('') || ''; + return `
      ${orderedItems}
    `; + + default: return ''; - }).join('') || ''; - return `
      ${orderedItems}
    `; - - default: - return ''; - } - }).join(''); + } + }) + .join(''); } - /** * Downloads all policies into one PDF document */ export function downloadAllPolicies( - policies: Policy[], + policies: Policy[], policyLogs: { [policyId: string]: AuditLogWithRelations[] }, - organizationName?: string + organizationName?: string, ): void { const doc = new jsPDF(); const config: PDFConfig = { @@ -641,29 +752,29 @@ export function downloadAllPolicies( contentWidth: doc.internal.pageSize.getWidth() - 40, lineHeight: 6, defaultFontSize: 10, - yPosition: 20 + yPosition: 20, }; - + // Add document title const documentTitle = organizationName ? `${organizationName} - All Policies` : 'All Policies'; const cleanTitle = cleanTextForPDF(documentTitle); - + config.doc.setFontSize(18); config.doc.setFont('helvetica', 'bold'); config.doc.text(cleanTitle, config.margin, config.yPosition); config.yPosition += config.lineHeight * 3; - + // Process each policy policies.forEach((policy, index) => { // Reset text color to black for each policy config.doc.setTextColor(0, 0, 0); - + // Start each policy on a new page (except the first one) if (index > 0) { config.doc.addPage(); config.yPosition = config.margin; } - + // Add policy title if (policy.name) { const cleanPolicyTitle = cleanTextForPDF(policy.name); @@ -673,7 +784,7 @@ export function downloadAllPolicies( config.doc.text(cleanPolicyTitle, config.margin, config.yPosition); config.yPosition += config.lineHeight * 2; } - + // Process policy content if (policy.content) { let policyContent: TipTapJSONContent[]; @@ -685,23 +796,23 @@ export function downloadAllPolicies( // Skip this policy if content format is invalid return; } - + const internalContent = convertToInternalFormat(policyContent); processContent(config, internalContent); } - + // Add audit logs section for this policy (compact mode) const logs = policyLogs[policy.id] || []; addAuditLogsSection(config, logs, true); // true for compact mode }); - + // Add page numbers addPageNumbers(config); - + // Save the PDF - const filename = organizationName + const filename = organizationName ? `${organizationName.toLowerCase().replace(/[^a-z0-9]/g, '-')}-all-policies.pdf` : 'all-policies.pdf'; - + doc.save(filename); } diff --git a/apps/app/src/lib/utils/calculate-next-review.ts b/apps/app/src/lib/utils/calculate-next-review.ts index 947523243..f3582ab18 100644 --- a/apps/app/src/lib/utils/calculate-next-review.ts +++ b/apps/app/src/lib/utils/calculate-next-review.ts @@ -1,4 +1,4 @@ -import { TaskFrequency } from '@db'; +import { TaskFrequency } from '@trycompai/db'; import { differenceInDays, startOfDay } from 'date-fns'; interface ReviewInfo { diff --git a/apps/app/src/lib/validations.ts b/apps/app/src/lib/validations.ts index a36b92085..075c23048 100644 --- a/apps/app/src/lib/validations.ts +++ b/apps/app/src/lib/validations.ts @@ -1,5 +1,5 @@ import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers'; -import { Policy, PolicyStatus } from '@db'; +import { Policy, PolicyStatus } from '@trycompai/db'; import { createSearchParamsCache, parseAsArrayOf, diff --git a/apps/app/src/lib/vector/sync/sync-organization.ts b/apps/app/src/lib/vector/sync/sync-organization.ts index d5b14d756..5cebe10b9 100644 --- a/apps/app/src/lib/vector/sync/sync-organization.ts +++ b/apps/app/src/lib/vector/sync/sync-organization.ts @@ -1,13 +1,15 @@ import 'server-only'; -import { db } from '@db'; +import { logger } from '@/utils/logger'; +import { db } from '@trycompai/db'; +import { vectorIndex } from '../core/client'; +import { + findAllOrganizationEmbeddings, + type ExistingEmbedding, +} from '../core/find-existing-embeddings'; import { batchUpsertEmbeddings } from '../core/upsert-embedding'; import { chunkText } from '../utils/chunk-text'; import { extractTextFromPolicy } from '../utils/extract-policy-text'; -import { deleteOrganizationEmbeddings } from '../core/delete-embeddings'; -import { findAllOrganizationEmbeddings, type ExistingEmbedding } from '../core/find-existing-embeddings'; -import { vectorIndex } from '../core/client'; -import { logger } from '@/utils/logger'; /** * Lock map to prevent concurrent syncs for the same organization @@ -19,7 +21,7 @@ const syncLocks = new Map>(); * Full resync of organization embeddings: deletes all old embeddings and creates new ones * Simple approach that guarantees data freshness * Optimized for small to medium volumes (100-200 policies) - * + * * Uses a lock mechanism to prevent concurrent syncs for the same organization. * If a sync is already in progress, subsequent calls will wait for it to complete. */ @@ -100,10 +102,10 @@ async function performSync(organizationId: string): Promise { // Process policies in parallel batches for better performance const POLICY_BATCH_SIZE = 100; // Process 100 policies in parallel (increased from 10 for better performance) - + for (let i = 0; i < policies.length; i += POLICY_BATCH_SIZE) { const batch = policies.slice(i, i + POLICY_BATCH_SIZE); - + // Process batch in parallel await Promise.all( batch.map(async (policy) => { @@ -111,10 +113,13 @@ async function performSync(organizationId: string): Promise { // Get embeddings from our pre-fetched map (fast - no API call) const policyEmbeddings = existingEmbeddings.get(policy.id) || []; const policyUpdatedAt = policy.updatedAt.toISOString(); - + // Check if policy needs update - const needsUpdate = policyEmbeddings.length === 0 || - policyEmbeddings.some((e: ExistingEmbedding) => !e.updatedAt || e.updatedAt < policyUpdatedAt); + const needsUpdate = + policyEmbeddings.length === 0 || + policyEmbeddings.some( + (e: ExistingEmbedding) => !e.updatedAt || e.updatedAt < policyUpdatedAt, + ); if (!needsUpdate) { policiesSkipped++; @@ -136,13 +141,13 @@ async function performSync(organizationId: string): Promise { // Create new embeddings const policyText = extractTextFromPolicy(policy as any); - + if (!policyText || policyText.trim().length === 0) { return; // Skip empty policy } const chunks = chunkText(policyText, 500, 50); - + if (chunks.length === 0) { return; // Skip if no chunks } @@ -179,7 +184,7 @@ async function performSync(organizationId: string): Promise { }); // Continue with other policies } - }) + }), ); } @@ -216,10 +221,10 @@ async function performSync(organizationId: string): Promise { // Process context entries in parallel batches for better performance const CONTEXT_BATCH_SIZE = 100; // Process 100 context entries in parallel (increased from 10 for better performance) - + for (let i = 0; i < contextEntries.length; i += CONTEXT_BATCH_SIZE) { const batch = contextEntries.slice(i, i + CONTEXT_BATCH_SIZE); - + // Process batch in parallel await Promise.all( batch.map(async (context) => { @@ -227,10 +232,13 @@ async function performSync(organizationId: string): Promise { // Get embeddings from our pre-fetched map (fast - no API call) const contextEmbeddings = existingEmbeddings.get(context.id) || []; const contextUpdatedAt = context.updatedAt.toISOString(); - + // Check if context needs update - const needsUpdate = contextEmbeddings.length === 0 || - contextEmbeddings.some((e: ExistingEmbedding) => !e.updatedAt || e.updatedAt < contextUpdatedAt); + const needsUpdate = + contextEmbeddings.length === 0 || + contextEmbeddings.some( + (e: ExistingEmbedding) => !e.updatedAt || e.updatedAt < contextUpdatedAt, + ); if (!needsUpdate) { contextSkipped++; @@ -252,13 +260,13 @@ async function performSync(organizationId: string): Promise { // Create new embeddings const contextText = `Question: ${context.question}\n\nAnswer: ${context.answer}`; - + if (!contextText || contextText.trim().length === 0) { return; // Skip empty context } const chunks = chunkText(contextText, 500, 50); - + if (chunks.length === 0) { return; // Skip if no chunks } @@ -295,7 +303,7 @@ async function performSync(organizationId: string): Promise { }); // Continue with other context entries } - }) + }), ); } @@ -309,8 +317,8 @@ async function performSync(organizationId: string): Promise { // Step 6: Delete orphaned embeddings (policies/context that no longer exist in DB) // Use the embeddings we already fetched (no additional API call needed) - const dbPolicyIds = new Set(policies.map(p => p.id)); - const dbContextIds = new Set(contextEntries.map(c => c.id)); + const dbPolicyIds = new Set(policies.map((p) => p.id)); + const dbContextIds = new Set(contextEntries.map((c) => c.id)); let orphanedDeleted = 0; // Check for orphaned embeddings using the pre-fetched map @@ -318,9 +326,9 @@ async function performSync(organizationId: string): Promise { for (const [sourceId, embeddings] of existingEmbeddings.entries()) { const isPolicy = embeddings[0]?.sourceType === 'policy'; const isContext = embeddings[0]?.sourceType === 'context'; - - const shouldExist = (isPolicy && dbPolicyIds.has(sourceId)) || - (isContext && dbContextIds.has(sourceId)); + + const shouldExist = + (isPolicy && dbPolicyIds.has(sourceId)) || (isContext && dbContextIds.has(sourceId)); if (!shouldExist && vectorIndex) { // Delete orphaned embeddings @@ -374,4 +382,3 @@ async function performSync(organizationId: string): Promise { throw error; } } - diff --git a/apps/app/src/lib/vector/utils/extract-policy-text.ts b/apps/app/src/lib/vector/utils/extract-policy-text.ts index d16fc6357..0292fff9d 100644 --- a/apps/app/src/lib/vector/utils/extract-policy-text.ts +++ b/apps/app/src/lib/vector/utils/extract-policy-text.ts @@ -1,4 +1,4 @@ -import type { Policy } from '@db'; +import type { Policy } from '@trycompai/db'; /** * Extracts plain text from a TipTap JSON policy content @@ -36,9 +36,7 @@ export function extractTextFromPolicy(policy: Policy): string { // Handle headings if (node.type === 'heading' && node.content) { - const headingText = node.content - .map((child: any) => processNode(child)) - .join(''); + const headingText = node.content.map((child: any) => processNode(child)).join(''); parts.push(headingText); } @@ -103,4 +101,3 @@ export function extractTextFromPolicy(policy: Policy): string { return textParts.join('\n\n'); } - diff --git a/apps/app/src/middleware.test.ts b/apps/app/src/middleware.test.ts index a4277a657..c3af731c5 100644 --- a/apps/app/src/middleware.test.ts +++ b/apps/app/src/middleware.test.ts @@ -7,7 +7,7 @@ vi.mock('@/utils/auth', async () => { }); // Mock db module -vi.mock('@db', async () => { +vi.mock('@trycompai/db', async () => { const { mockDb } = await import('@/test-utils/mocks/db'); return { db: mockDb }; }); diff --git a/apps/app/src/test-utils/mocks/auth.ts b/apps/app/src/test-utils/mocks/auth.ts index c54e5512e..172939a36 100644 --- a/apps/app/src/test-utils/mocks/auth.ts +++ b/apps/app/src/test-utils/mocks/auth.ts @@ -1,4 +1,4 @@ -import { Departments, type Member, type Session, type User } from '@db'; +import { Departments, type Member, type Session, type User } from '@trycompai/db'; import { vi } from 'vitest'; // Mock auth API structure diff --git a/apps/app/src/utils/auth.ts b/apps/app/src/utils/auth.ts index a66f6da1f..13059bd2a 100644 --- a/apps/app/src/utils/auth.ts +++ b/apps/app/src/utils/auth.ts @@ -1,9 +1,9 @@ import { env } from '@/env.mjs'; -import { MagicLinkEmail, OTPVerificationEmail } from '@comp/email'; import { sendInviteMemberEmail } from '@comp/email/lib/invite-member'; import { sendEmail } from '@comp/email/lib/resend'; -import { db } from '@db'; +import { MagicLinkEmail, OTPVerificationEmail } from '@comp/email/src'; import { dubAnalytics } from '@dub/better-auth'; +import { db } from '@trycompai/db'; import { betterAuth } from 'better-auth'; import { prismaAdapter } from 'better-auth/adapters/prisma'; import { nextCookies } from 'better-auth/next-js'; diff --git a/apps/app/tsconfig.json b/apps/app/tsconfig.json index 730f9b0ef..5decbb7db 100644 --- a/apps/app/tsconfig.json +++ b/apps/app/tsconfig.json @@ -20,10 +20,9 @@ ], "paths": { "@/*": ["./src/*"], - "@db": ["./prisma"], "@/jobs": ["./src/jobs"], "@/jobs/*": ["./src/jobs/*"], - "@comp/email": ["../../packages/email/index.ts"], + "@comp/email": ["../../packages/email/src/index.ts"], "@comp/email/*": ["../../packages/email/*"], "@comp/utils": ["../../packages/utils/src/index.ts"], "@comp/utils/*": ["../../packages/utils/src/*"], @@ -45,7 +44,7 @@ "@comp/kv/*": ["../../packages/kv/src/*"], "@comp/tsconfig": ["../../packages/tsconfig/index.ts"], "@comp/tsconfig/*": ["../../packages/tsconfig/*"], - "@trycompai/email": ["../../packages/email/index.ts"], + "@trycompai/email": ["../../packages/email/src/index.ts"], "@trycompai/email/*": ["../../packages/email/*"] } }, diff --git a/apps/portal/next.config.ts b/apps/portal/next.config.ts index 2c54853c2..d38f3e0e7 100644 --- a/apps/portal/next.config.ts +++ b/apps/portal/next.config.ts @@ -4,7 +4,7 @@ import './src/env.mjs'; const isStandalone = process.env.NEXT_OUTPUT_STANDALONE === 'true'; const config = { - transpilePackages: ['@trycompai/db'], + transpilePackages: ['@trycompai/db', '@trycompai/ui'], images: { remotePatterns: [ { diff --git a/apps/portal/package.json b/apps/portal/package.json index ad6d53685..acd8bf404 100644 --- a/apps/portal/package.json +++ b/apps/portal/package.json @@ -4,40 +4,38 @@ "dependencies": { "@aws-sdk/client-s3": "^3.859.0", "@aws-sdk/s3-request-presigner": "^3.859.0", - "@prisma/client": "^6.13.0", "@react-email/components": "^0.0.41", "@react-email/render": "^1.1.2", "@t3-oss/env-nextjs": "^0.13.8", "@trycompai/analytics": "workspace:*", - "@trycompai/db": "^1.3.17", + "@trycompai/db": "workspace:*", "@trycompai/email": "workspace:*", "@trycompai/kv": "workspace:*", "@trycompai/ui": "workspace:*", - "@types/jszip": "^3.4.1", "@upstash/ratelimit": "^2.0.5", "archiver": "^7.0.1", "better-auth": "^1.3.27", "class-variance-authority": "^0.7.1", "geist": "^1.3.1", "jszip": "^3.10.1", - "next": "^15.4.6", + "next": "^16.0.3", "next-safe-action": "^8.0.3", "next-themes": "^0.4.4", - "prisma": "^6.13.0", - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-email": "^4.0.15", "sonner": "^2.0.5" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.10", "@types/archiver": "^6.0.3", - "@types/node": "^24.0.3", + "@types/jszip": "^3.4.1", + "@types/node": "^24.2.0", "eslint": "^9.18.0", - "eslint-config-next": "15.5.2", + "eslint-config-next": "^16.0.3", "postcss": "^8.5.4", "tailwindcss": "^4.1.8", - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "peerDependencies": { "react": "^19.1.1", @@ -46,13 +44,10 @@ "private": true, "scripts": { "build": "next build", - "build:docker": "prisma generate && next build", - "db:generate": "bun run db:getschema && prisma generate", - "db:getschema": "node ../../packages/db/scripts/combine-schemas.js && cp ../../packages/db/dist/schema.prisma prisma/schema.prisma", - "db:migrate": "cd ../../packages/db && bunx prisma migrate dev && cd ../../apps/portal", + "build:docker": "next build", "dev": "next dev --turbopack -p 3002", "lint": "next lint && prettier --check .", - "prebuild": "bun run db:generate", + "clean": "rm -rf .next .turbo node_modules", "start": "next start" } -} \ No newline at end of file +} diff --git a/apps/portal/prisma/client.ts b/apps/portal/prisma/client.ts deleted file mode 100644 index a696328be..000000000 --- a/apps/portal/prisma/client.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { PrismaClient } from '@prisma/client'; - -const globalForPrisma = global as unknown as { prisma: PrismaClient }; - -export const db = globalForPrisma.prisma || new PrismaClient(); - -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db; diff --git a/apps/portal/prisma/index.ts b/apps/portal/prisma/index.ts deleted file mode 100644 index 54d1c4b9c..000000000 --- a/apps/portal/prisma/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '@prisma/client'; -export { db } from './client'; diff --git a/apps/portal/src/actions/accept-policies.ts b/apps/portal/src/actions/accept-policies.ts index 8c415188e..b6b44fc12 100644 --- a/apps/portal/src/actions/accept-policies.ts +++ b/apps/portal/src/actions/accept-policies.ts @@ -1,6 +1,6 @@ 'use server'; -import { db } from '@db'; +import { db } from '@trycompai/db'; export async function acceptPolicy(policyId: string, memberId: string) { try { diff --git a/apps/portal/src/app/(app)/(home)/actions/getPolicyPdfUrl.ts b/apps/portal/src/app/(app)/(home)/actions/getPolicyPdfUrl.ts index 092a45211..79ac37d3a 100644 --- a/apps/portal/src/app/(app)/(home)/actions/getPolicyPdfUrl.ts +++ b/apps/portal/src/app/(app)/(home)/actions/getPolicyPdfUrl.ts @@ -4,7 +4,7 @@ import { authActionClient } from '@/actions/safe-action'; import { BUCKET_NAME, s3Client } from '@/utils/s3'; import { GetObjectCommand } from '@aws-sdk/client-s3'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { z } from 'zod'; export const getPolicyPdfUrl = authActionClient diff --git a/apps/portal/src/app/(app)/(home)/actions/markPolicyAsCompleted.ts b/apps/portal/src/app/(app)/(home)/actions/markPolicyAsCompleted.ts index 7439e294d..b39d9e6c0 100644 --- a/apps/portal/src/app/(app)/(home)/actions/markPolicyAsCompleted.ts +++ b/apps/portal/src/app/(app)/(home)/actions/markPolicyAsCompleted.ts @@ -2,7 +2,7 @@ import { authActionClient } from '@/actions/safe-action'; import { logger } from '@/utils/logger'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { z } from 'zod'; diff --git a/apps/portal/src/app/(app)/(home)/actions/markVideoAsCompleted.ts b/apps/portal/src/app/(app)/(home)/actions/markVideoAsCompleted.ts index 87e23f5bd..8daf51595 100644 --- a/apps/portal/src/app/(app)/(home)/actions/markVideoAsCompleted.ts +++ b/apps/portal/src/app/(app)/(home)/actions/markVideoAsCompleted.ts @@ -2,7 +2,7 @@ import { authActionClient } from '@/actions/safe-action'; import { logger } from '@/utils/logger'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { revalidatePath } from 'next/cache'; import { headers } from 'next/headers'; import { z } from 'zod'; diff --git a/apps/portal/src/app/api/download-agent/fleet-label.ts b/apps/portal/src/app/api/download-agent/fleet-label.ts index 259143e31..f560428f1 100644 --- a/apps/portal/src/app/api/download-agent/fleet-label.ts +++ b/apps/portal/src/app/api/download-agent/fleet-label.ts @@ -1,6 +1,6 @@ import { getFleetInstance } from '@/utils/fleet'; import { logger } from '@/utils/logger'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { AxiosError } from 'axios'; import type { CreateFleetLabelParams } from './types'; diff --git a/apps/portal/src/app/api/download-agent/utils.ts b/apps/portal/src/app/api/download-agent/utils.ts index 5b7841286..d5a3b9a7a 100644 --- a/apps/portal/src/app/api/download-agent/utils.ts +++ b/apps/portal/src/app/api/download-agent/utils.ts @@ -1,5 +1,5 @@ import { logger } from '@/utils/logger'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import type { SupportedOS } from './types'; /** diff --git a/apps/portal/src/app/lib/auth.ts b/apps/portal/src/app/lib/auth.ts index 277affdc1..19bd09a3b 100644 --- a/apps/portal/src/app/lib/auth.ts +++ b/apps/portal/src/app/lib/auth.ts @@ -1,6 +1,6 @@ import { env } from '@/env.mjs'; import { OTPVerificationEmail, sendEmail, sendInviteMemberEmail } from '@comp/email'; -import { db } from '@db'; +import { db } from '@trycompai/db'; import { betterAuth } from 'better-auth'; import { prismaAdapter } from 'better-auth/adapters/prisma'; import { nextCookies } from 'better-auth/next-js'; diff --git a/bun.lock b/bun.lock index 68ac8e758..362d534e2 100644 --- a/bun.lock +++ b/bun.lock @@ -1,31 +1,12 @@ { "lockfileVersion": 1, - "configVersion": 0, + "configVersion": 1, "workspaces": { "": { "name": "comp", - "dependencies": { - "@types/cheerio": "^1.0.0", - "@types/react-syntax-highlighter": "^15.5.13", - "@upstash/vector": "^1.2.2", - "cheerio": "^1.1.2", - "react-syntax-highlighter": "^15.6.6", - "unpdf": "^1.4.0", - "xlsx": "^0.18.5", - "zod": "^3.25.76", - }, "devDependencies": { - "@azure/core-http": "^3.0.5", - "@azure/core-rest-pipeline": "^1.21.0", - "@azure/core-tracing": "^1.2.0", - "@azure/identity": "^4.10.0", "@commitlint/cli": "^19.8.1", "@commitlint/config-conventional": "^19.8.1", - "@hookform/resolvers": "^5.1.1", - "@number-flow/react": "^0.5.9", - "@prisma/adapter-pg": "6.10.1", - "@react-email/components": "^0.0.41", - "@react-email/render": "^1.1.2", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", @@ -33,35 +14,21 @@ "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.3", "@types/bun": "^1.2.15", - "@types/d3": "^7.4.3", - "@types/lodash": "^4.17.17", - "@types/react": "^19.1.6", - "@types/react-dom": "^19.1.1", - "ai": "^5.0.0", "concurrently": "^9.1.2", - "d3": "^7.9.0", - "date-fns": "^4.1.0", - "dayjs": "^1.11.13", + "dotenv": "^17.2.3", "execa": "^9.0.0", - "gitmoji": "^1.1.1", - "gray-matter": "^4.0.3", "husky": "^9.1.7", "prettier": "^3.5.3", "prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-tailwindcss": "^0.6.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-email": "^4.0.15", - "react-hook-form": "^7.61.1", "semantic-release": "^24.2.8", "semantic-release-discord": "^1.2.0", "semantic-release-discord-notifier": "^1.0.11", "sharp": "^0.34.2", - "syncpack": "^13.0.4", - "tsup": "^8.5.0", + "tsdown": "^0.16.5", + "tsx": "^4.20.6", "turbo": "^2.5.4", - "typescript": "^5.8.3", - "use-debounce": "^10.0.4", + "typescript": "^5.9.2", }, }, "apps/api": { @@ -75,8 +42,7 @@ "@nestjs/core": "^11.0.1", "@nestjs/platform-express": "^11.1.5", "@nestjs/swagger": "^11.2.0", - "@prisma/client": "^6.13.0", - "@trycompai/db": "^1.3.17", + "@trycompai/db": "workspace:*", "@trycompai/email": "workspace:*", "archiver": "^7.0.1", "axios": "^1.12.2", @@ -88,12 +54,13 @@ "jspdf": "^3.0.3", "nanoid": "^5.1.6", "pdf-lib": "^1.17.1", - "prisma": "^6.13.0", "reflect-metadata": "^0.2.2", "resend": "^6.4.2", "rxjs": "^7.8.1", "swagger-ui-express": "^5.0.1", - "zod": "^4.0.14", + "ts-node": "^10.9.2", + "tsx": "^4.20.6", + "zod": "^4.1.12", }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", @@ -101,10 +68,11 @@ "@nestjs/cli": "^11.0.0", "@nestjs/schematics": "^11.0.0", "@nestjs/testing": "^11.0.1", + "@trycompai/tsconfig": "workspace:*", "@types/archiver": "^6.0.3", "@types/express": "^5.0.0", "@types/jest": "^30.0.0", - "@types/node": "^24.0.3", + "@types/node": "^24.2.0", "@types/supertest": "^6.0.2", "@types/swagger-ui-express": "^4.1.8", "eslint": "^9.18.0", @@ -117,9 +85,8 @@ "supertest": "^7.0.0", "ts-jest": "^29.2.5", "ts-loader": "^9.5.2", - "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "typescript-eslint": "^8.20.0", }, }, @@ -154,14 +121,14 @@ "@mendable/firecrawl-js": "^1.24.0", "@monaco-editor/react": "^4.7.0", "@nangohq/frontend": "^0.53.2", - "@next/third-parties": "^15.3.1", + "@next/third-parties": "^16.0.3", "@novu/api": "^1.6.0", "@novu/nextjs": "^3.10.1", "@number-flow/react": "^0.5.9", - "@prisma/client": "^6.13.0", - "@prisma/instrumentation": "6.6.0", + "@prisma/client": "^6.19.0", + "@prisma/instrumentation": "^6.19.0", "@prisma/nextjs-monorepo-workaround-plugin": "^6.13.0", - "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-slot": "^1.2.4", "@react-email/components": "^0.0.41", "@react-email/render": "^1.1.2", "@react-three/drei": "^10.3.0", @@ -179,17 +146,14 @@ "@trigger.dev/sdk": "4.0.6", "@trycompai/db": "^1.3.17", "@trycompai/email": "workspace:*", - "@types/canvas-confetti": "^1.9.0", - "@types/react-syntax-highlighter": "^15.5.13", - "@types/three": "^0.180.0", "@uploadthing/react": "^7.3.0", "@upstash/ratelimit": "^2.0.5", "@vercel/analytics": "^1.5.0", "@vercel/sandbox": "^0.0.21", "@vercel/sdk": "^1.7.1", - "ai": "^5.0.60", + "ai": "^5.0.93", "ai-elements": "^1.6.1", - "axios": "^1.9.0", + "axios": "^1.12.2", "better-auth": "^1.3.27", "botid": "^1.5.5", "canvas-confetti": "^1.9.3", @@ -198,10 +162,10 @@ "dub": "^0.66.1", "framer-motion": "^12.18.1", "geist": "^1.3.1", - "jspdf": "^3.0.2", - "lucide-react": "^0.544.0", + "jspdf": "^3.0.3", + "lucide-react": "^0.553.0", "motion": "^12.9.2", - "next": "^15.4.6", + "next": "^16.0.3", "next-safe-action": "^8.0.3", "next-themes": "^0.4.4", "nuqs": "^2.4.3", @@ -210,8 +174,8 @@ "posthog-js": "^1.236.6", "posthog-node": "^5.8.2", "puppeteer-core": "^24.7.2", - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-email": "^4.0.15", "react-hook-form": "^7.61.1", "react-hotkeys-hook": "^5.1.0", @@ -225,7 +189,7 @@ "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", - "resend": "^4.4.1", + "resend": "^6.4.2", "sonner": "^2.0.5", "swr": "^2.3.4", "three": "^0.177.0", @@ -236,7 +200,7 @@ "xlsx": "^0.18.5", "xml2js": "^0.6.2", "zaraz-ts": "^1.2.0", - "zod": "^3.25.76", + "zod": "^4.1.12", "zustand": "^5.0.3", }, "devDependencies": { @@ -247,21 +211,24 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@trigger.dev/build": "4.0.6", + "@types/canvas-confetti": "^1.9.0", "@types/d3": "^7.4.3", "@types/jspdf": "^2.0.0", - "@types/node": "^24.0.3", + "@types/node": "^24.2.0", + "@types/react-syntax-highlighter": "^15.5.13", + "@types/three": "^0.180.0", "@vitejs/plugin-react": "^4.6.0", "@vitest/ui": "^3.2.4", "eslint": "^9.18.0", - "eslint-config-next": "15.5.2", + "eslint-config-next": "^16.0.3", "fleetctl": "^4.68.1", "glob": "^11.0.3", "jsdom": "^26.1.0", "postcss": "^8.5.4", - "prisma": "^6.13.0", + "prisma": "^6.19.0", "raw-loader": "^4.0.2", "tailwindcss": "^4.1.8", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4", }, @@ -276,40 +243,38 @@ "dependencies": { "@aws-sdk/client-s3": "^3.859.0", "@aws-sdk/s3-request-presigner": "^3.859.0", - "@prisma/client": "^6.13.0", "@react-email/components": "^0.0.41", "@react-email/render": "^1.1.2", "@t3-oss/env-nextjs": "^0.13.8", "@trycompai/analytics": "workspace:*", - "@trycompai/db": "^1.3.17", + "@trycompai/db": "workspace:*", "@trycompai/email": "workspace:*", "@trycompai/kv": "workspace:*", "@trycompai/ui": "workspace:*", - "@types/jszip": "^3.4.1", "@upstash/ratelimit": "^2.0.5", "archiver": "^7.0.1", "better-auth": "^1.3.27", "class-variance-authority": "^0.7.1", "geist": "^1.3.1", "jszip": "^3.10.1", - "next": "^15.4.6", + "next": "^16.0.3", "next-safe-action": "^8.0.3", "next-themes": "^0.4.4", - "prisma": "^6.13.0", - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "react-email": "^4.0.15", "sonner": "^2.0.5", }, "devDependencies": { "@tailwindcss/postcss": "^4.1.10", "@types/archiver": "^6.0.3", - "@types/node": "^24.0.3", + "@types/jszip": "^3.4.1", + "@types/node": "^24.2.0", "eslint": "^9.18.0", - "eslint-config-next": "15.5.2", + "eslint-config-next": "^16.0.3", "postcss": "^8.5.4", "tailwindcss": "^4.1.8", - "typescript": "^5.8.3", + "typescript": "^5.9.2", }, "peerDependencies": { "react": "^19.1.1", @@ -324,9 +289,27 @@ "posthog-node": "^5.8.2", }, "devDependencies": { - "tsup": "^8.5.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", + }, + }, + "packages/db": { + "name": "@trycompai/db", + "version": "1.3.17", + "dependencies": { + "@prisma/client": "^6.19.0", + "dotenv": "^17.2.3", + "zod": "^4.1.12", }, + "devDependencies": { + "@trycompai/tsconfig": "workspace:*", + "@types/node": "^24.2.0", + "prisma": "^6.19.0", + "typescript": "^5.9.2", + }, + }, + "packages/docs": { + "name": "docs", + "version": "0.0.0", }, "packages/email": { "name": "@trycompai/email", @@ -338,16 +321,16 @@ "@trycompai/ui": "workspace:*", "@trycompai/utils": "workspace:*", "date-fns": "^4.1.0", - "next": "^15.4.6", + "next": "^16.0.3", "react-email": "^4.0.15", - "resend": "^4.4.1", + "resend": "^6.4.2", "responsive-react-email": "^0.0.5", }, "devDependencies": { - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "tsup": "^8.5.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", }, "peerDependencies": { "react": "^19.1.1", @@ -358,25 +341,26 @@ "name": "@trycompai/integrations", "version": "1.0.0", "dependencies": { - "@ai-sdk/openai": "^2.0.0", + "@ai-sdk/openai": "^2.0.65", "@aws-sdk/client-securityhub": "^3.0.0", - "@aws-sdk/client-sts": "^3.0.0", + "@aws-sdk/client-sts": "^3.808.0", "@azure/identity": "^4.10.0", "@comp/app": "workspace:*", "@slack/bolt": "^3.22.0", "@slack/web-api": "^7.8.0", - "ai": "^5.0.0", + "ai": "^5.0.93", "jsonwebtoken": "^9.0.2", "node-fetch": "^2.6.7", - "react": "^19.0.0", + "react": "^19.2.0", "sharp": "^0.34.2", "stoppable": "^1.1.0", - "zod": "^4.0.14", + "zod": "^4.1.12", }, "devDependencies": { - "@types/node": "^24.0.3", + "@types/jsonwebtoken": "^9.0.10", + "@types/node": "^24.2.0", "@types/node-fetch": "^2.6.2", - "typescript": "^5.8.3", + "typescript": "^5.9.2", }, }, "packages/kv": { @@ -388,7 +372,7 @@ }, "devDependencies": { "tsup": "^8.5.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", }, }, "packages/tsconfig": { @@ -474,15 +458,17 @@ "devDependencies": { "@tailwindcss/cli": "^4.1.10", "@tailwindcss/postcss": "^4.1.10", + "@types/node": "^24.2.0", + "@types/react": "^19.2.6", + "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^4.6.0", "autoprefixer": "^10.4.21", "jsdom": "^26.1.0", "postcss": "^8.5.4", - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "tailwindcss": "^4.1.8", - "tsup": "^8.5.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4", }, @@ -495,7 +481,7 @@ "name": "@trycompai/utils", "version": "1.0.0", "devDependencies": { - "typescript": "^5.8.3", + "typescript": "^5.9.2", }, }, }, @@ -504,7 +490,7 @@ "@ai-sdk/anthropic": ["@ai-sdk/anthropic@2.0.45", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Ipv62vavDCmrV/oE/lXehL9FzwQuZOnnlhPEftWizx464Wb6lvnBTJx8uhmEYruFSzOWTI95Z33ncZ4tA8E6RQ=="], - "@ai-sdk/gateway": ["@ai-sdk/gateway@2.0.9", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17", "@vercel/oidc": "3.0.3" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-E6x4h5CPPPJ0za1r5HsLtHbeI+Tp3H+YFtcH8G3dSSPFE6w+PZINzB4NxLZmg1QqSeA5HTP3ZEzzsohp0o2GEw=="], + "@ai-sdk/gateway": ["@ai-sdk/gateway@2.0.11", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17", "@vercel/oidc": "3.0.3" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-B0Vt2Xv88Lo9rg861Oyzq/SdTmT4LiqdjkpOxpSPpNk8Ih5TXTgyDAsV/qW14N6asPdK1YI5PosFLnVzfK5LrA=="], "@ai-sdk/groq": ["@ai-sdk/groq@2.0.29", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-XBrkIte7/4WACxlnxum0TuO/3Md3gh8SPgmnbm8ndYx8mrurz4N7upEFe+azpMZAsd/demtQNGmk87xzeJd+gg=="], @@ -514,17 +500,17 @@ "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@3.0.17", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@standard-schema/spec": "^1.0.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-TR3Gs4I3Tym4Ll+EPdzRdvo/rc8Js6c4nVhFLuvGLX/Y4V9ZcQMa/HTiYsHEgmYrf1zVi6Q145UEZUfleOwOjw=="], - "@ai-sdk/react": ["@ai-sdk/react@2.0.93", "", { "dependencies": { "@ai-sdk/provider-utils": "3.0.17", "ai": "5.0.93", "swr": "^2.2.5", "throttleit": "2.1.0" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "zod": "^3.25.76 || ^4.1.8" }, "optionalPeers": ["zod"] }, "sha512-2TzhpQr10HuWxpqyHpSAUMRUqD1G2O73J2sAaJChomVDbjr7BwpM0mdR3aRamCXNtuLiJmTFQhbNzw8fXMBdYw=="], + "@ai-sdk/react": ["@ai-sdk/react@2.0.95", "", { "dependencies": { "@ai-sdk/provider-utils": "3.0.17", "ai": "5.0.95", "swr": "^2.2.5", "throttleit": "2.1.0" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "zod": "^3.25.76 || ^4.1.8" }, "optionalPeers": ["zod"] }, "sha512-dczIP6Za4WgGbAHoSCGJ0hfhUqPFqZiXCXgq1YTRGjTIGPJjwy8OIZPoFZ7fLuS/CpzVdKsEhqVsEE3Nl009iA=="], - "@ai-sdk/rsc": ["@ai-sdk/rsc@1.0.94", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17", "ai": "5.0.93", "jsondiffpatch": "0.7.3" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "zod": "^3.25.76 || ^4.1.8" }, "optionalPeers": ["zod"] }, "sha512-IZ+TzcQf66P7EpTdOxSX7PyxWuXhOwjp3mgpSt6Xm1S5t7pfAyx/MwEB1AaUApfWZ8ccdVNl1qd+nr1VnzZRPQ=="], + "@ai-sdk/rsc": ["@ai-sdk/rsc@1.0.96", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17", "ai": "5.0.95", "jsondiffpatch": "0.7.3" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "zod": "^3.25.76 || ^4.1.8" }, "optionalPeers": ["zod"] }, "sha512-I0dOWKDrVTCTxcGNQJF1Vx1ppAHDEfDI9IkviUE2v4MhsqSiot0tH8E8lw5u0Qt8CChphYmWe5Fm0klrF+uadw=="], "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], - "@angular-devkit/core": ["@angular-devkit/core@19.2.15", "", { "dependencies": { "ajv": "8.17.1", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "peerDependencies": { "chokidar": "^4.0.0" }, "optionalPeers": ["chokidar"] }, "sha512-pU2RZYX6vhd7uLSdLwPnuBcr0mXJSjp3EgOXKsrlQFQZevc+Qs+2JdXgIElnOT/aDqtRtriDmLlSbtdE8n3ZbA=="], + "@angular-devkit/core": ["@angular-devkit/core@19.2.19", "", { "dependencies": { "ajv": "8.17.1", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", "picomatch": "4.0.2", "rxjs": "7.8.1", "source-map": "0.7.4" }, "peerDependencies": { "chokidar": "^4.0.0" }, "optionalPeers": ["chokidar"] }, "sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ=="], - "@angular-devkit/schematics": ["@angular-devkit/schematics@19.2.15", "", { "dependencies": { "@angular-devkit/core": "19.2.15", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" } }, "sha512-kNOJ+3vekJJCQKWihNmxBkarJzNW09kP5a9E1SRNiQVNOUEeSwcRR0qYotM65nx821gNzjjhJXnAZ8OazWldrg=="], + "@angular-devkit/schematics": ["@angular-devkit/schematics@19.2.19", "", { "dependencies": { "@angular-devkit/core": "19.2.19", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" } }, "sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg=="], - "@angular-devkit/schematics-cli": ["@angular-devkit/schematics-cli@19.2.15", "", { "dependencies": { "@angular-devkit/core": "19.2.15", "@angular-devkit/schematics": "19.2.15", "@inquirer/prompts": "7.3.2", "ansi-colors": "4.1.3", "symbol-observable": "4.0.0", "yargs-parser": "21.1.1" }, "bin": { "schematics": "bin/schematics.js" } }, "sha512-1ESFmFGMpGQmalDB3t2EtmWDGv6gOFYBMxmHO2f1KI/UDl8UmZnCGL4mD3EWo8Hv0YIsZ9wOH9Q7ZHNYjeSpzg=="], + "@angular-devkit/schematics-cli": ["@angular-devkit/schematics-cli@19.2.19", "", { "dependencies": { "@angular-devkit/core": "19.2.19", "@angular-devkit/schematics": "19.2.19", "@inquirer/prompts": "7.3.2", "ansi-colors": "4.1.3", "symbol-observable": "4.0.0", "yargs-parser": "21.1.1" }, "bin": { "schematics": "bin/schematics.js" } }, "sha512-7q9UY6HK6sccL9F3cqGRUwKhM7b/XfD2YcVaZ2WD7VMaRlRm85v6mRjSrfKIAwxcQU0UK27kMc79NIIqaHjzxA=="], "@asamuzakjp/css-color": ["@asamuzakjp/css-color@3.2.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.3", "@csstools/css-color-parser": "^3.0.9", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "lru-cache": "^10.4.3" } }, "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw=="], @@ -542,39 +528,39 @@ "@aws-crypto/util": ["@aws-crypto/util@5.2.0", "", { "dependencies": { "@aws-sdk/types": "^3.222.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.6.2" } }, "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ=="], - "@aws-sdk/client-ec2": ["@aws-sdk/client-ec2@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-node": "3.933.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-sdk-ec2": "3.930.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-d1hb2nwHmtpFP5l6+rvRN35xRnQjIVa/i+hSW3EcPMAEHVr2QTqR4hR1thh6ZbaYC7CmUyk6bRR470ej0rlWLQ=="], + "@aws-sdk/client-ec2": ["@aws-sdk/client-ec2@3.934.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/credential-provider-node": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-sdk-ec2": "3.930.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-VMTBq5zYkgDAz2a+EI0E/ALZgNamS3223jwFXksfHAujc91xhqzmiknl1Tpu60W2KgJGxRrX5f5mcSBZEHismw=="], - "@aws-sdk/client-lambda": ["@aws-sdk/client-lambda@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-node": "3.933.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/eventstream-serde-browser": "^4.2.5", "@smithy/eventstream-serde-config-resolver": "^4.3.5", "@smithy/eventstream-serde-node": "^4.2.5", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-7O5RwOMjLWym1RRoPvOHm7llzdIccROHkyKvCgCZDqeDGbaOmxavu2yKVEU8bZ2YB62R+G5uP1sRb9W3ikMqmw=="], + "@aws-sdk/client-lambda": ["@aws-sdk/client-lambda@3.934.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/credential-provider-node": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/eventstream-serde-browser": "^4.2.5", "@smithy/eventstream-serde-config-resolver": "^4.3.5", "@smithy/eventstream-serde-node": "^4.2.5", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-SKcyObNn0RM7hWUktsnD7nUmuYctLZjZnr29hDQOoptaF91SFPb1gEvUK908+5n5rSSj1NwHbJjoevA3pjE6BA=="], - "@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.933.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-node": "3.933.0", "@aws-sdk/middleware-bucket-endpoint": "3.930.0", "@aws-sdk/middleware-expect-continue": "3.930.0", "@aws-sdk/middleware-flexible-checksums": "3.932.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-location-constraint": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-sdk-s3": "3.932.0", "@aws-sdk/middleware-ssec": "3.930.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/signature-v4-multi-region": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/eventstream-serde-browser": "^4.2.5", "@smithy/eventstream-serde-config-resolver": "^4.3.5", "@smithy/eventstream-serde-node": "^4.2.5", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-blob-browser": "^4.2.6", "@smithy/hash-node": "^4.2.5", "@smithy/hash-stream-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/md5-js": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-KxwZvdxdCeWK6o8mpnb+kk7Kgb8V+8AjTwSXUWH1UAD85B0tjdo1cSfE5zoR5fWGol4Ml5RLez12a6LPhsoTqA=="], + "@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.934.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/credential-provider-node": "3.934.0", "@aws-sdk/middleware-bucket-endpoint": "3.930.0", "@aws-sdk/middleware-expect-continue": "3.930.0", "@aws-sdk/middleware-flexible-checksums": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-location-constraint": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-sdk-s3": "3.934.0", "@aws-sdk/middleware-ssec": "3.930.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/signature-v4-multi-region": "3.934.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/eventstream-serde-browser": "^4.2.5", "@smithy/eventstream-serde-config-resolver": "^4.3.5", "@smithy/eventstream-serde-node": "^4.2.5", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-blob-browser": "^4.2.6", "@smithy/hash-node": "^4.2.5", "@smithy/hash-stream-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/md5-js": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-dtg77FGTgt8WlqgrRriCOie/SUl0x0cx2itPgK6fkf3pRK0t1betQ0EUZM6VYQcj+hqVMzh/XRcr1TDm5n5eVw=="], - "@aws-sdk/client-securityhub": ["@aws-sdk/client-securityhub@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-node": "3.933.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-+oUbZ5cWPDeBSg/gO9zwdIP7FtK7MIqWwkbIjfYVXJrcoYr4W2KhtwX7JIAS0mKm45eGBdFdrNcv3JLr8921tA=="], + "@aws-sdk/client-securityhub": ["@aws-sdk/client-securityhub@3.934.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/credential-provider-node": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-Y1OlQSnNUtOzPrg0EtmLHkc6pZ8rMHS7nv8Sk88KhQtaWjIyhpaHT4ByVqLY2XDIEwUrm556NPHGS3ue6jE6Lg=="], - "@aws-sdk/client-sso": ["@aws-sdk/client-sso@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-zwGLSiK48z3PzKpQiDMKP85+fpIrPMF1qQOQW9OW7BGj5AuBZIisT2O4VzIgYJeh+t47MLU7VgBQL7muc+MJDg=="], + "@aws-sdk/client-sso": ["@aws-sdk/client-sso@3.934.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-gsgJevqhY0j3x014ejhXtHLCA6o83FYm3rJoZG7tqoy3DnWerLv/FHaAnHI/+Q+csadqjoFkWGQTOedPoOunzA=="], - "@aws-sdk/client-sts": ["@aws-sdk/client-sts@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-node": "3.933.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-H3vb8KFNPpBPl5tMDWt91PQyteUVPXyr7I3n5WGec4lU8fJsCqorVWHr7opqPAz2vhzLcXQoDu1ELcEXZrsL3Q=="], + "@aws-sdk/client-sts": ["@aws-sdk/client-sts@3.934.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/credential-provider-node": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-xOM/VorXOwTOR3F5mR79KIX3QQJbUppdeGnSBp0XZwvGb8OmQorg66fidzfwBV3mKiVi2Jf5E5P6pKM00tILLg=="], - "@aws-sdk/core": ["@aws-sdk/core@3.932.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws-sdk/xml-builder": "3.930.0", "@smithy/core": "^3.18.2", "@smithy/node-config-provider": "^4.3.5", "@smithy/property-provider": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-AS8gypYQCbNojwgjvZGkJocC2CoEICDx9ZJ15ILsv+MlcCVLtUJSRSx3VzJOUY2EEIaGLRrPNlIqyn/9/fySvA=="], + "@aws-sdk/core": ["@aws-sdk/core@3.934.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws-sdk/xml-builder": "3.930.0", "@smithy/core": "^3.18.2", "@smithy/node-config-provider": "^4.3.5", "@smithy/property-provider": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-b6k916ZxSrBwQPzeirncTIQXGnhps0HFOUakFt0ZEzjksePYUiEoU/SQ7VeY1j9JeAdJ24ejqddCiyLt99/3lg=="], - "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-ozge/c7NdHUDyHqro6+P5oHt8wfKSUBN+olttiVfBe9Mw3wBMpPa3gQ0pZnG+gwBkKskBuip2bMR16tqYvUSEA=="], + "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-bnpIGYm7Jy46dxZa1cxMQ1sF0n2iBIT+TpOPHK51sz1N2dYOicUVWUHMDgU2xIFOVcKaqV+GV4VyicMmvDBcBQ=="], - "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/node-http-handler": "^4.4.5", "@smithy/property-provider": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-stream": "^4.5.6", "tslib": "^2.6.2" } }, "sha512-b6N9Nnlg8JInQwzBkUq5spNaXssM3h3zLxGzpPrnw0nHSIWPJPTbZzA5Ca285fcDUFuKP+qf3qkuqlAjGOdWhg=="], + "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/node-http-handler": "^4.4.5", "@smithy/property-provider": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-stream": "^4.5.6", "tslib": "^2.6.2" } }, "sha512-WJcfFik7MPIgjE8lmuDcCqddHKRMpifzoBzTZWqUJJWYXIy0rDfNzt6pn3/TMLwVgnCGjnXlw6dChTxLzO60RQ=="], - "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.933.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-env": "3.932.0", "@aws-sdk/credential-provider-http": "3.932.0", "@aws-sdk/credential-provider-process": "3.932.0", "@aws-sdk/credential-provider-sso": "3.933.0", "@aws-sdk/credential-provider-web-identity": "3.933.0", "@aws-sdk/nested-clients": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-HygGyKuMG5AaGXsmM0d81miWDon55xwalRHB3UmDg3QBhtunbNIoIaWUbNTKuBZXcIN6emeeEZw/YgSMqLc0YA=="], + "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/credential-provider-env": "3.934.0", "@aws-sdk/credential-provider-http": "3.934.0", "@aws-sdk/credential-provider-process": "3.934.0", "@aws-sdk/credential-provider-sso": "3.934.0", "@aws-sdk/credential-provider-web-identity": "3.934.0", "@aws-sdk/nested-clients": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-3vVKGe1F2S09G9kC0ZcpWh09opyrGOgQETllqWbuxlTVd7zBgrZWloItLIvneSDP+dWvdLFUbkD7WDWNCeGiig=="], - "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.933.0", "", { "dependencies": { "@aws-sdk/credential-provider-env": "3.932.0", "@aws-sdk/credential-provider-http": "3.932.0", "@aws-sdk/credential-provider-ini": "3.933.0", "@aws-sdk/credential-provider-process": "3.932.0", "@aws-sdk/credential-provider-sso": "3.933.0", "@aws-sdk/credential-provider-web-identity": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-L2dE0Y7iMLammQewPKNeEh1z/fdJyYEU+/QsLBD9VEh+SXcN/FIyTi21Isw8wPZN6lMB9PDVtISzBnF8HuSFrw=="], + "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.934.0", "", { "dependencies": { "@aws-sdk/credential-provider-env": "3.934.0", "@aws-sdk/credential-provider-http": "3.934.0", "@aws-sdk/credential-provider-ini": "3.934.0", "@aws-sdk/credential-provider-process": "3.934.0", "@aws-sdk/credential-provider-sso": "3.934.0", "@aws-sdk/credential-provider-web-identity": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-nguy36xi8nbH346dJjCmwWtOgfS4VfL7yHP+EEGmma+yg+J7mxgs8kA1NGQdJ8B46GdjlJPpI1P9pm7Pmz7nOw=="], - "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-BodZYKvT4p/Dkm28Ql/FhDdS1+p51bcZeMMu2TRtU8PoMDHnVDhHz27zASEKSZwmhvquxHrZHB0IGuVqjZUtSQ=="], + "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-PhvpAgoJ88IOuqlUws9nvHuPex2jK+WS+0s00BQcRTwqPP0jtLT7eql6UfCRduwv2sIy3m1wnWDUubvbpejp/Q=="], - "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.933.0", "", { "dependencies": { "@aws-sdk/client-sso": "3.933.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/token-providers": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-/R1DBR7xNcuZIhS2RirU+P2o8E8/fOk+iLAhbqeSTq+g09fP/F6W7ouFpS5eVE2NIfWG7YBFoVddOhvuqpn51g=="], + "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.934.0", "", { "dependencies": { "@aws-sdk/client-sso": "3.934.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/token-providers": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-7wO86w95V9MZSYo2dunBKruKHdAUmgg9ccOSJSYGnPip1PPBK/rgSgQ8mDlYtFAW3/82bdeM/668QcgLT4+ofA=="], - "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.933.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/nested-clients": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-c7Eccw2lhFx2/+qJn3g+uIDWRuWi2A6Sz3PVvckFUEzPsP0dPUo19hlvtarwP5GzrsXn0yEPRVhpewsIaSCGaQ=="], + "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/nested-clients": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-hb+lvFxiAPcAvUorB0hrUd1kDjDRXhZgCi5426I8KUpGzZ+ALh8/ep0KXAiYe2yg9ZkyMUbMaMvYYhMFcbXRFA=="], "@aws-sdk/middleware-bucket-endpoint": ["@aws-sdk/middleware-bucket-endpoint@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-config-provider": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-cnCLWeKPYgvV4yRYPFH6pWMdUByvu2cy2BAlfsPpvnm4RaVioztyvxmQj5PmVN5fvWs5w/2d6U7le8X9iye2sA=="], "@aws-sdk/middleware-expect-continue": ["@aws-sdk/middleware-expect-continue@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-5HEQ+JU4DrLNWeY27wKg/jeVa8Suy62ivJHOSUf6e6hZdVIMx0h/kXS1fHEQNNiLu2IzSEP/bFXsKBaW7x7s0g=="], - "@aws-sdk/middleware-flexible-checksums": ["@aws-sdk/middleware-flexible-checksums@3.932.0", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/is-array-buffer": "^4.2.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-hyvRz/XS/0HTHp9/Ld1mKwpOi7bZu5olI42+T112rkCTbt1bewkygzEl4oflY4H7cKMamQusYoL0yBUD/QSEvA=="], + "@aws-sdk/middleware-flexible-checksums": ["@aws-sdk/middleware-flexible-checksums@3.934.0", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/is-array-buffer": "^4.2.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-kAV0fhwUhh/CV8hR5iip+du5QSXvIsONERVY/iJPbiBItqsmFaWcwiZE9E+ORJPNyoT/3X17632W33pCweKGDQ=="], "@aws-sdk/middleware-host-header": ["@aws-sdk/middleware-host-header@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-x30jmm3TLu7b/b+67nMyoV0NlbnCVT5DI57yDrhXAPCtdgM1KtdLWt45UcHpKOm1JsaIkmYRh2WYu7Anx4MG0g=="], @@ -586,21 +572,21 @@ "@aws-sdk/middleware-sdk-ec2": ["@aws-sdk/middleware-sdk-ec2@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws-sdk/util-format-url": "3.930.0", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-AJ9WiDBJLfByW5eMEStE2CsJM2e+KT8d7LaJ6JiRp0Lht5UU+Zj/Qd5dFGraNW449FVnWNk2OZF/vVYlqW2ShQ=="], - "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/core": "^3.18.2", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-bYMHxqQzseaAP9Z5qLI918z5AtbAnZRRtFi3POb4FLZyreBMgCgBNaPkIhdgywnkqaydTWvbMBX4s9f4gUwlTw=="], + "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/core": "^3.18.2", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-eU2R7pVOhCxnkDzq9mW+xh4WvCA3mdXVUHezIcJNFyKCKKv/c9I4WFcnMnUy+wnCWO2mzN/gwSgQxADkvxfLNQ=="], "@aws-sdk/middleware-ssec": ["@aws-sdk/middleware-ssec@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-N2/SvodmaDS6h7CWfuapt3oJyn1T2CBz0CsDIiTDv9cSagXAVFjPdm2g4PFJqrNBeqdDIoYBnnta336HmamWHg=="], - "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@smithy/core": "^3.18.2", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-9BGTbJyA/4PTdwQWE9hAFIJGpsYkyEW20WON3i15aDqo5oRZwZmqaVageOD57YYqG8JDJjvcwKyDdR4cc38dvg=="], + "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@smithy/core": "^3.18.2", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-68giGM2Zm9K6Qas14ws3Qo5wafpn0I8/L64fS9E6Rc6Tu0k+So73hupysw+9ZOzHwQS5FEBUqLOMtbUibAcjNA=="], - "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-o1GX0+IPlFi/D8ei9y/jj3yucJWNfPnbB5appVBWevAyUdZA5KzQ2nK/hDxiu9olTZlFEFpf1m1Rn3FaGxHqsw=="], + "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.934.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.934.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.934.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-kRO61EMrDR4UuPlKAkziG6urcYXlhrFW/Ce5PjWFdjkm0ZOge75OFV1vhf/vE4Pmoop9jaAONX4E5BaIYrIQfg=="], "@aws-sdk/region-config-resolver": ["@aws-sdk/region-config-resolver@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/config-resolver": "^4.4.3", "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-KL2JZqH6aYeQssu1g1KuWsReupdfOoxD6f1as2VC+rdwYFUu4LfzMsFfXnBvvQWWqQ7rZHWOw1T+o5gJmg7Dzw=="], - "@aws-sdk/s3-request-presigner": ["@aws-sdk/s3-request-presigner@3.933.0", "", { "dependencies": { "@aws-sdk/signature-v4-multi-region": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-format-url": "3.930.0", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-yHdBFIrbl+oVG0DSznOLCywNtVLFmxufaNc95zQ41/4WyefJz8iNGU8nv4PI7RIO0MMrYRfvoK3rLH4YVE543g=="], + "@aws-sdk/s3-request-presigner": ["@aws-sdk/s3-request-presigner@3.934.0", "", { "dependencies": { "@aws-sdk/signature-v4-multi-region": "3.934.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-format-url": "3.930.0", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-3VyOm6wa00QqP+0N9s6VOco+4H0PPufZf16uMVfzvmpjaKjXyjBIMYrAhmmxXxNA/xmZiYcmSjQFGwszrn9UHw=="], - "@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.932.0", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-NCIRJvoRc9246RZHIusY1+n/neeG2yGhBGdKhghmrNdM+mLLN6Ii7CKFZjx3DhxtpHMpl1HWLTMhdVrGwP2upw=="], + "@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.934.0", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-cLphxVoHapSdouAdLSDEwR2Bktjg5dc11EpSpaLo8jcFpAXhFaDllKBfDfws0EqGY6N2CMqEjqPqxDFzmmQOQA=="], - "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.933.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/nested-clients": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-Qzq7zj9yXUgAAJEbbmqRhm0jmUndl8nHG0AbxFEfCfQRVZWL96Qzx0mf8lYwT9hIMrXncLwy31HOthmbXwFRwQ=="], + "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.934.0", "", { "dependencies": { "@aws-sdk/core": "3.934.0", "@aws-sdk/nested-clients": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-M0WEmgXDdUxapSfjplqJoVCBMcn0vQ5Jou0X/XiQwyVDbfvIyNSHUHyMXEIBAew9kVx9sfMMEYz3LXewvQxdCA=="], "@aws-sdk/types": ["@aws-sdk/types@3.930.0", "", { "dependencies": { "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-we/vaAgwlEFW7IeftmCLlLMw+6hFs3DzZPJw7lVHbj/5HJ0bz9gndxEsS2lQoeJ1zhiiLqAqvXxmM43s0MBg0A=="], @@ -614,20 +600,18 @@ "@aws-sdk/util-user-agent-browser": ["@aws-sdk/util-user-agent-browser@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "sha512-q6lCRm6UAe+e1LguM5E4EqM9brQlDem4XDcQ87NzEvlTW6GzmNCO0w1jS0XgCFXQHjDxjdlNFX+5sRbHijwklg=="], - "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.932.0", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-/kC6cscHrZL74TrZtgiIL5jJNbVsw9duGGPurmaVgoCbP7NnxyaSWEurbNV3VPNPhNE3bV3g4Ci+odq+AlsYQg=="], + "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.934.0", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "3.934.0", "@aws-sdk/types": "3.930.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-vPRR4PaqNmuOQJSzq4EAVwFHUaSpPtgDgCEc7AYbArIy+59fckb6JNddlrjx4w4iWbqO0d+7OC5PtRcIk0AcZA=="], "@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.930.0", "", { "dependencies": { "@smithy/types": "^4.9.0", "fast-xml-parser": "5.2.5", "tslib": "^2.6.2" } }, "sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA=="], "@aws/lambda-invoke-store": ["@aws/lambda-invoke-store@0.2.0", "", {}, "sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ=="], - "@azure/abort-controller": ["@azure/abort-controller@1.1.0", "", { "dependencies": { "tslib": "^2.2.0" } }, "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw=="], + "@azure/abort-controller": ["@azure/abort-controller@2.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA=="], "@azure/core-auth": ["@azure/core-auth@1.10.1", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-util": "^1.13.0", "tslib": "^2.6.2" } }, "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg=="], "@azure/core-client": ["@azure/core-client@1.10.1", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.10.0", "@azure/core-rest-pipeline": "^1.22.0", "@azure/core-tracing": "^1.3.0", "@azure/core-util": "^1.13.0", "@azure/logger": "^1.3.0", "tslib": "^2.6.2" } }, "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w=="], - "@azure/core-http": ["@azure/core-http@3.0.5", "", { "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.3.0", "@azure/core-tracing": "1.0.0-preview.13", "@azure/core-util": "^1.1.1", "@azure/logger": "^1.0.0", "@types/node-fetch": "^2.5.0", "@types/tunnel": "^0.0.3", "form-data": "^4.0.0", "node-fetch": "^2.6.7", "process": "^0.11.10", "tslib": "^2.2.0", "tunnel": "^0.0.6", "uuid": "^8.3.0", "xml2js": "^0.5.0" } }, "sha512-T8r2q/c3DxNu6mEJfPuJtptUVqwchxzjj32gKcnMi06rdiVONS9rar7kT9T2Am+XvER7uOzpsP79WsqNbdgdWg=="], - "@azure/core-rest-pipeline": ["@azure/core-rest-pipeline@1.22.2", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.10.0", "@azure/core-tracing": "^1.3.0", "@azure/core-util": "^1.13.0", "@azure/logger": "^1.3.0", "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" } }, "sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg=="], "@azure/core-tracing": ["@azure/core-tracing@1.3.1", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ=="], @@ -1008,7 +992,7 @@ "@inquirer/password": ["@inquirer/password@4.0.23", "", { "dependencies": { "@inquirer/ansi": "^1.0.2", "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA=="], - "@inquirer/prompts": ["@inquirer/prompts@7.8.0", "", { "dependencies": { "@inquirer/checkbox": "^4.2.0", "@inquirer/confirm": "^5.1.14", "@inquirer/editor": "^4.2.15", "@inquirer/expand": "^4.0.17", "@inquirer/input": "^4.2.1", "@inquirer/number": "^3.0.17", "@inquirer/password": "^4.0.17", "@inquirer/rawlist": "^4.1.5", "@inquirer/search": "^3.1.0", "@inquirer/select": "^4.3.1" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw=="], + "@inquirer/prompts": ["@inquirer/prompts@7.10.1", "", { "dependencies": { "@inquirer/checkbox": "^4.3.2", "@inquirer/confirm": "^5.1.21", "@inquirer/editor": "^4.2.23", "@inquirer/expand": "^4.0.23", "@inquirer/input": "^4.3.1", "@inquirer/number": "^3.0.23", "@inquirer/password": "^4.0.23", "@inquirer/rawlist": "^4.1.11", "@inquirer/search": "^3.2.2", "@inquirer/select": "^4.4.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg=="], "@inquirer/rawlist": ["@inquirer/rawlist@4.1.11", "", { "dependencies": { "@inquirer/core": "^10.3.2", "@inquirer/type": "^3.0.10", "yoctocolors-cjs": "^2.1.3" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw=="], @@ -1100,6 +1084,8 @@ "@microsoft/tsdoc": ["@microsoft/tsdoc@0.16.0", "", {}, "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.9.0", "", { "dependencies": { "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.3", "eventsource": "^3.0.2", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.23.8", "zod-to-json-schema": "^3.24.1" } }, "sha512-Jq2EUCQpe0iyO5FGpzVYDNFR6oR53AIrwph9yWl7uSc7IWUMsrmpmSaTGra5hQNunXpM+9oit85p924jWuHzUA=="], + "@monaco-editor/loader": ["@monaco-editor/loader@1.6.1", "", { "dependencies": { "state-local": "^1.0.6" } }, "sha512-w3tEnj9HYEC73wtjdpR089AqkUPskFRcdkxsiSFt3SoUc3OHpmu+leP94CXBm4mHfefmhsdfI0ZQu6qJ0wgtPg=="], "@monaco-editor/react": ["@monaco-editor/react@4.7.0", "", { "dependencies": { "@monaco-editor/loader": "^1.5.0" }, "peerDependencies": { "monaco-editor": ">= 0.25.0 < 1", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA=="], @@ -1156,9 +1142,9 @@ "@napi-rs/canvas-win32-x64-msvc": ["@napi-rs/canvas-win32-x64-msvc@0.1.80", "", { "os": "win32", "cpu": "x64" }, "sha512-Z8jPsM6df5V8B1HrCHB05+bDiCxjE9QA//3YrkKIdVDEwn5RKaqOxCJDRJkl48cJbylcrJbW4HxZbTte8juuPg=="], - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], - "@nestjs/cli": ["@nestjs/cli@11.0.10", "", { "dependencies": { "@angular-devkit/core": "19.2.15", "@angular-devkit/schematics": "19.2.15", "@angular-devkit/schematics-cli": "19.2.15", "@inquirer/prompts": "7.8.0", "@nestjs/schematics": "^11.0.1", "ansis": "4.1.0", "chokidar": "4.0.3", "cli-table3": "0.6.5", "commander": "4.1.1", "fork-ts-checker-webpack-plugin": "9.1.0", "glob": "11.0.3", "node-emoji": "1.11.0", "ora": "5.4.1", "tree-kill": "1.2.2", "tsconfig-paths": "4.2.0", "tsconfig-paths-webpack-plugin": "4.2.0", "typescript": "5.8.3", "webpack": "5.100.2", "webpack-node-externals": "3.0.0" }, "peerDependencies": { "@swc/cli": "^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0", "@swc/core": "^1.3.62" }, "optionalPeers": ["@swc/cli", "@swc/core"], "bin": { "nest": "bin/nest.js" } }, "sha512-4waDT0yGWANg0pKz4E47+nUrqIJv/UqrZ5wLPkCqc7oMGRMWKAaw1NDZ9rKsaqhqvxb2LfI5+uXOWr4yi94DOQ=="], + "@nestjs/cli": ["@nestjs/cli@11.0.11", "", { "dependencies": { "@angular-devkit/core": "19.2.19", "@angular-devkit/schematics": "19.2.19", "@angular-devkit/schematics-cli": "19.2.19", "@inquirer/prompts": "7.10.1", "@nestjs/schematics": "^11.0.1", "ansis": "4.2.0", "chokidar": "4.0.3", "cli-table3": "0.6.5", "commander": "4.1.1", "fork-ts-checker-webpack-plugin": "9.1.0", "glob": "12.0.0", "node-emoji": "1.11.0", "ora": "5.4.1", "tsconfig-paths": "4.2.0", "tsconfig-paths-webpack-plugin": "4.2.0", "typescript": "5.9.3", "webpack": "5.100.2", "webpack-node-externals": "3.0.0" }, "peerDependencies": { "@swc/cli": "^0.1.62 || ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0", "@swc/core": "^1.3.62" }, "optionalPeers": ["@swc/cli", "@swc/core"], "bin": { "nest": "bin/nest.js" } }, "sha512-phKImmBK2qc0dqMPz+vnBlb+xcAxyZ5yiCKOdcgq9DwFsswL6jn3l2leKXQLIyM2bqIecE5T3tdWKLZl7wgW0w=="], "@nestjs/common": ["@nestjs/common@11.1.9", "", { "dependencies": { "file-type": "21.1.0", "iterare": "1.2.1", "load-esm": "1.0.3", "tslib": "2.8.1", "uid": "2.0.2" }, "peerDependencies": { "class-transformer": ">=0.4.1", "class-validator": ">=0.13.2", "reflect-metadata": "^0.1.12 || ^0.2.0", "rxjs": "^7.1.0" }, "optionalPeers": ["class-transformer", "class-validator"] }, "sha512-zDntUTReRbAThIfSp3dQZ9kKqI+LjgLp5YZN5c1bgNRDuoeLySAoZg46Bg1a+uV8TMgIRziHocglKGNzr6l+bQ=="], @@ -1176,27 +1162,27 @@ "@nestjs/testing": ["@nestjs/testing@11.1.9", "", { "dependencies": { "tslib": "2.8.1" }, "peerDependencies": { "@nestjs/common": "^11.0.0", "@nestjs/core": "^11.0.0", "@nestjs/microservices": "^11.0.0", "@nestjs/platform-express": "^11.0.0" }, "optionalPeers": ["@nestjs/microservices", "@nestjs/platform-express"] }, "sha512-UFxerBDdb0RUNxQNj25pvkvNE7/vxKhXYWBt3QuwBFnYISzRIzhVlyIqLfoV5YI3zV0m0Nn4QAn1KM0zzwfEng=="], - "@next/env": ["@next/env@15.5.6", "", {}, "sha512-3qBGRW+sCGzgbpc5TS1a0p7eNxnOarGVQhZxfvTdnV0gFI61lX7QNtQ4V1TSREctXzYn5NetbUsLvyqwLFJM6Q=="], + "@next/env": ["@next/env@16.0.3", "", {}, "sha512-IqgtY5Vwsm14mm/nmQaRMmywCU+yyMIYfk3/MHZ2ZTJvwVbBn3usZnjMi1GacrMVzVcAxJShTCpZlPs26EdEjQ=="], - "@next/eslint-plugin-next": ["@next/eslint-plugin-next@15.5.2", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-lkLrRVxcftuOsJNhWatf1P2hNVfh98k/omQHrCEPPriUypR6RcS13IvLdIrEvkm9AH2Nu2YpR5vLqBuy6twH3Q=="], + "@next/eslint-plugin-next": ["@next/eslint-plugin-next@16.0.3", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-6sPWmZetzFWMsz7Dhuxsdmbu3fK+/AxKRtj7OB0/3OZAI2MHB/v2FeYh271LZ9abvnM1WIwWc/5umYjx0jo5sQ=="], - "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@15.5.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ES3nRz7N+L5Umz4KoGfZ4XX6gwHplwPhioVRc25+QNsDa7RtUF/z8wJcbuQ2Tffm5RZwuN2A063eapoJ1u4nPg=="], + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-MOnbd92+OByu0p6QBAzq1ahVWzF6nyfiH07dQDez4/Nku7G249NjxDVyEfVhz8WkLiOEU+KFVnqtgcsfP2nLXg=="], - "@next/swc-darwin-x64": ["@next/swc-darwin-x64@15.5.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-JIGcytAyk9LQp2/nuVZPAtj8uaJ/zZhsKOASTjxDug0SPU9LAM3wy6nPU735M1OqacR4U20LHVF5v5Wnl9ptTA=="], + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-i70C4O1VmbTivYdRlk+5lj9xRc2BlK3oUikt3yJeHT1unL4LsNtN7UiOhVanFdc7vDAgZn1tV/9mQwMkWOJvHg=="], - "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@15.5.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-qvz4SVKQ0P3/Im9zcS2RmfFL/UCQnsJKJwQSkissbngnB/12c6bZTCB0gHTexz1s6d/mD0+egPKXAIRFVS7hQg=="], + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-O88gCZ95sScwD00mn/AtalyCoykhhlokxH/wi1huFK+rmiP5LAYVs/i2ruk7xST6SuXN4NI5y4Xf5vepb2jf6A=="], - "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@15.5.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-FsbGVw3SJz1hZlvnWD+T6GFgV9/NYDeLTNQB2MXoPN5u9VA9OEDy6fJEfePfsUKAhJufFbZLgp0cPxMuV6SV0w=="], + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-CEErFt78S/zYXzFIiv18iQCbRbLgBluS8z1TNDQoyPi8/Jr5qhR3e8XHAIxVxPBjDbEMITprqELVc5KTfFj0gg=="], - "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@15.5.6", "", { "os": "linux", "cpu": "x64" }, "sha512-3QnHGFWlnvAgyxFxt2Ny8PTpXtQD7kVEeaFat5oPAHHI192WKYB+VIKZijtHLGdBBvc16tiAkPTDmQNOQ0dyrA=="], + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Tc3i+nwt6mQ+Dwzcri/WNDj56iWdycGVh5YwwklleClzPzz7UpfaMw1ci7bLl6GRYMXhWDBfe707EXNjKtiswQ=="], - "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@15.5.6", "", { "os": "linux", "cpu": "x64" }, "sha512-OsGX148sL+TqMK9YFaPFPoIaJKbFJJxFzkXZljIgA9hjMjdruKht6xDCEv1HLtlLNfkx3c5w2GLKhj7veBQizQ=="], + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-zTh03Z/5PBBPdTurgEtr6nY0vI9KR9Ifp/jZCcHlODzwVOEKcKRBtQIGrkc7izFgOMuXDEJBmirwpGqdM/ZixA=="], - "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@15.5.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-ONOMrqWxdzXDJNh2n60H6gGyKed42Ieu6UTVPZteXpuKbLZTH4G4eBMsr5qWgOBA+s7F+uB4OJbZnrkEDnZ5Fg=="], + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-Jc1EHxtZovcJcg5zU43X3tuqzl/sS+CmLgjRP28ZT4vk869Ncm2NoF8qSTaL99gh6uOzgM99Shct06pSO6kA6g=="], - "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@15.5.6", "", { "os": "win32", "cpu": "x64" }, "sha512-pxK4VIjFRx1MY92UycLOOw7dTdvccWsNETQ0kDHkBlcFH1GrTLUjSiHU1ohrznnux6TqRHgv5oflhfIWZwVROQ=="], + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.3", "", { "os": "win32", "cpu": "x64" }, "sha512-N7EJ6zbxgIYpI/sWNzpVKRMbfEGgsWuOIvzkML7wxAAZhPk1Msxuo/JDu1PKjWGrAoOLaZcIX5s+/pF5LIbBBg=="], - "@next/third-parties": ["@next/third-parties@15.5.6", "", { "dependencies": { "third-party-capital": "1.0.20" }, "peerDependencies": { "next": "^13.0.0 || ^14.0.0 || ^15.0.0", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0" } }, "sha512-B1BLvEi7edGERNN0njxpiqbqkp3zAZ69eJ5C0vwj/XINRzcC25b9MCqxbSHq094d306H65UnlhEkBv+a8c74iA=="], + "@next/third-parties": ["@next/third-parties@16.0.3", "", { "dependencies": { "third-party-capital": "1.0.20" }, "peerDependencies": { "next": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0" } }, "sha512-QjTRQ4ydXguFkpMCUMl5oSslxmh8mAtmnzc9DEtLkZcGmAuQcZg2M3lswMn62sdID+F06crS3IQ58X3sjjBLVA=="], "@noble/ciphers": ["@noble/ciphers@2.0.1", "", {}, "sha512-xHK3XHPUW8DTAobU+G0XT+/w+JLM7/8k1UFdB5xg/zTFPnFCobhftzw8wl4Lw2aq/Rvir5pxfZV5fEazmeCJ2g=="], @@ -1256,7 +1242,7 @@ "@opentelemetry/exporter-trace-otlp-http": ["@opentelemetry/exporter-trace-otlp-http@0.203.0", "", { "dependencies": { "@opentelemetry/core": "2.0.1", "@opentelemetry/otlp-exporter-base": "0.203.0", "@opentelemetry/otlp-transformer": "0.203.0", "@opentelemetry/resources": "2.0.1", "@opentelemetry/sdk-trace-base": "2.0.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-ZDiaswNYo0yq/cy1bBLJFe691izEJ6IgNmkjm4C6kE9ub/OMQqDXORx2D2j8fzTBTxONyzusbaZlqtfmyqURPw=="], - "@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg=="], + "@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.203.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.203.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ=="], "@opentelemetry/otlp-exporter-base": ["@opentelemetry/otlp-exporter-base@0.203.0", "", { "dependencies": { "@opentelemetry/core": "2.0.1", "@opentelemetry/otlp-transformer": "0.203.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-Wbxf7k+87KyvxFr5D7uOiSq/vHXWommvdnNE7vECO3tAhsA2GfOlpWINCMWUEPdHZ7tCXxw6Epp3vgx3jU7llQ=="], @@ -1274,6 +1260,10 @@ "@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.36.0", "", {}, "sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ=="], + "@oxc-project/runtime": ["@oxc-project/runtime@0.97.0", "", {}, "sha512-yH0zw7z+jEws4dZ4IUKoix5Lh3yhqIJWF9Dc8PWvhpo7U7O+lJrv7ZZL4BeRO0la8LBQFwcCewtLBnVV7hPe/w=="], + + "@oxc-project/types": ["@oxc-project/types@0.97.0", "", {}, "sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ=="], + "@paralleldrive/cuid2": ["@paralleldrive/cuid2@2.3.1", "", { "dependencies": { "@noble/hashes": "^1.1.5" } }, "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw=="], "@parcel/watcher": ["@parcel/watcher@2.5.1", "", { "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", "micromatch": "^4.0.5", "node-addon-api": "^7.0.0" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-freebsd-x64": "2.5.1", "@parcel/watcher-linux-arm-glibc": "2.5.1", "@parcel/watcher-linux-arm-musl": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", "@parcel/watcher-linux-arm64-musl": "2.5.1", "@parcel/watcher-linux-x64-glibc": "2.5.1", "@parcel/watcher-linux-x64-musl": "2.5.1", "@parcel/watcher-win32-arm64": "2.5.1", "@parcel/watcher-win32-ia32": "2.5.1", "@parcel/watcher-win32-x64": "2.5.1" } }, "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg=="], @@ -1354,15 +1344,11 @@ "@posthog/core": ["@posthog/core@1.5.2", "", { "dependencies": { "cross-spawn": "^7.0.6" } }, "sha512-iedUP3EnOPPxTA2VaIrsrd29lSZnUV+ZrMnvY56timRVeZAXoYCkmjfIs3KBAsF8OUT5h1GXLSkoQdrV0r31OQ=="], - "@prisma/adapter-pg": ["@prisma/adapter-pg@6.10.1", "", { "dependencies": { "@prisma/driver-adapter-utils": "6.10.1", "postgres-array": "3.0.4" }, "peerDependencies": { "pg": "^8.11.3" } }, "sha512-4Kpz5EV1jEOsKDuKYMjfJKMiIIcsuR9Ou1B8zLzehYtB7/oi+1ooDoK1K+T7sMisHkP69aYat5j0dskxvJTgdQ=="], - "@prisma/client": ["@prisma/client@6.19.0", "", { "peerDependencies": { "prisma": "*", "typescript": ">=5.1.0" }, "optionalPeers": ["prisma", "typescript"] }, "sha512-QXFT+N/bva/QI2qoXmjBzL7D6aliPffIwP+81AdTGq0FXDoLxLkWivGMawG8iM5B9BKfxLIXxfWWAF6wbuJU6g=="], "@prisma/config": ["@prisma/config@6.19.0", "", { "dependencies": { "c12": "3.1.0", "deepmerge-ts": "7.1.5", "effect": "3.18.4", "empathic": "2.0.0" } }, "sha512-zwCayme+NzI/WfrvFEtkFhhOaZb/hI+X8TTjzjJ252VbPxAl2hWHK5NMczmnG9sXck2lsXrxIZuK524E25UNmg=="], - "@prisma/debug": ["@prisma/debug@6.10.1", "", {}, "sha512-k2YT53cWxv9OLjW4zSYTZ6Z7j0gPfCzcr2Mj99qsuvlxr8WAKSZ2NcSR0zLf/mP4oxnYG842IMj3utTgcd7CaA=="], - - "@prisma/driver-adapter-utils": ["@prisma/driver-adapter-utils@6.10.1", "", { "dependencies": { "@prisma/debug": "6.10.1" } }, "sha512-MJ7NiiMA5YQUD1aMHiOcLmRpW0U0NTpygyeuLMxHXnKbcq+HX/cy10qilFMLVzpveuIEHuwxziR67z6i0K1MKA=="], + "@prisma/debug": ["@prisma/debug@6.19.0", "", {}, "sha512-8hAdGG7JmxrzFcTzXZajlQCidX0XNkMJkpqtfbLV54wC6LSSX6Vni25W/G+nAANwLnZ2TmwkfIuWetA7jJxJFA=="], "@prisma/engines": ["@prisma/engines@6.19.0", "", { "dependencies": { "@prisma/debug": "6.19.0", "@prisma/engines-version": "6.19.0-26.2ba551f319ab1df4bc874a89965d8b3641056773", "@prisma/fetch-engine": "6.19.0", "@prisma/get-platform": "6.19.0" } }, "sha512-pMRJ+1S6NVdXoB8QJAPIGpKZevFjxhKt0paCkRDTZiczKb7F4yTgRP8M4JdVkpQwmaD4EoJf6qA+p61godDokw=="], @@ -1372,7 +1358,7 @@ "@prisma/get-platform": ["@prisma/get-platform@6.19.0", "", { "dependencies": { "@prisma/debug": "6.19.0" } }, "sha512-ym85WDO2yDhC3fIXHWYpG3kVMBA49cL1XD2GCsCF8xbwoy2OkDQY44gEbAt2X46IQ4Apq9H6g0Ex1iFfPqEkHA=="], - "@prisma/instrumentation": ["@prisma/instrumentation@6.6.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-M/a6njz3hbf2oucwdbjNKrSMLuyMCwgDrmTtkF1pm4Nm7CU45J/Hd6lauF2CDACTUYzu3ymcV7P0ZAhIoj6WRw=="], + "@prisma/instrumentation": ["@prisma/instrumentation@6.19.0", "", { "dependencies": { "@opentelemetry/instrumentation": ">=0.52.0 <1" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-QcuYy25pkXM8BJ37wVFBO7Zh34nyRV1GOb2n3lPkkbRYfl4hWl3PTcImP41P0KrzVXfa/45p6eVCos27x3exIg=="], "@prisma/nextjs-monorepo-workaround-plugin": ["@prisma/nextjs-monorepo-workaround-plugin@6.19.0", "", {}, "sha512-gI80bqfPf8bmW2y2jISsIFrAYZlDcrPC+CBUS5Lehq5umsY0LD1O+qWd4T59OUdHKDb475vbAOiG6K8iQbZsfw=="], @@ -1398,6 +1384,8 @@ "@puppeteer/browsers": ["@puppeteer/browsers@2.10.13", "", { "dependencies": { "debug": "^4.4.3", "extract-zip": "^2.0.1", "progress": "^2.0.3", "proxy-agent": "^6.5.0", "semver": "^7.7.3", "tar-fs": "^3.1.1", "yargs": "^17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" } }, "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q=="], + "@quansync/fs": ["@quansync/fs@0.1.5", "", { "dependencies": { "quansync": "^0.2.11" } }, "sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA=="], + "@radix-ui/number": ["@radix-ui/number@1.1.1", "", {}, "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g=="], "@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], @@ -1510,12 +1498,6 @@ "@radix-ui/rect": ["@radix-ui/rect@1.1.1", "", {}, "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw=="], - "@react-dnd/asap": ["@react-dnd/asap@5.0.2", "", {}, "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A=="], - - "@react-dnd/invariant": ["@react-dnd/invariant@4.0.2", "", {}, "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw=="], - - "@react-dnd/shallowequal": ["@react-dnd/shallowequal@4.0.2", "", {}, "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA=="], - "@react-email/body": ["@react-email/body@0.0.11", "", { "peerDependencies": { "react": "^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg=="], "@react-email/button": ["@react-email/button@0.0.19", "", { "peerDependencies": { "react": "^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A=="], @@ -1566,56 +1548,82 @@ "@remirror/core-constants": ["@remirror/core-constants@3.0.0", "", {}, "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg=="], + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-beta.50", "", { "os": "android", "cpu": "arm64" }, "sha512-XlEkrOIHLyGT3avOgzfTFSjG+f+dZMw+/qd+Y3HLN86wlndrB/gSimrJCk4gOhr1XtRtEKfszpadI3Md4Z4/Ag=="], + + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-beta.50", "", { "os": "darwin", "cpu": "arm64" }, "sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w=="], + + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-beta.50", "", { "os": "darwin", "cpu": "x64" }, "sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA=="], + + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-beta.50", "", { "os": "freebsd", "cpu": "x64" }, "sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q=="], + + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.50", "", { "os": "linux", "cpu": "arm" }, "sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw=="], + + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-beta.50", "", { "os": "linux", "cpu": "arm64" }, "sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw=="], + + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-beta.50", "", { "os": "linux", "cpu": "arm64" }, "sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw=="], + + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-beta.50", "", { "os": "linux", "cpu": "x64" }, "sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg=="], + + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-beta.50", "", { "os": "linux", "cpu": "x64" }, "sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA=="], + + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-beta.50", "", { "os": "none", "cpu": "arm64" }, "sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA=="], + + "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-beta.50", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.0.7" }, "cpu": "none" }, "sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg=="], + + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-beta.50", "", { "os": "win32", "cpu": "arm64" }, "sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA=="], + + "@rolldown/binding-win32-ia32-msvc": ["@rolldown/binding-win32-ia32-msvc@1.0.0-beta.50", "", { "os": "win32", "cpu": "ia32" }, "sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg=="], + + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-beta.50", "", { "os": "win32", "cpu": "x64" }, "sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.2", "", { "os": "android", "cpu": "arm" }, "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.3", "", { "os": "android", "cpu": "arm" }, "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.2", "", { "os": "android", "cpu": "arm64" }, "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.3", "", { "os": "android", "cpu": "arm64" }, "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.2", "", { "os": "none", "cpu": "arm64" }, "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ=="], "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], - "@rushstack/eslint-patch": ["@rushstack/eslint-patch@1.15.0", "", {}, "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw=="], - "@sapphire/async-queue": ["@sapphire/async-queue@1.5.5", "", {}, "sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg=="], "@sapphire/shapeshift": ["@sapphire/shapeshift@4.0.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "lodash": "^4.17.21" } }, "sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg=="], @@ -1920,13 +1928,13 @@ "@tiptap/extension-strike": ["@tiptap/extension-strike@2.27.1", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-S9I//K8KPgfFTC5I5lorClzXk0g4lrAv9y5qHzHO5EOWt7AFl0YTg2oN8NKSIBK4bHRnPIrjJJKv+dDFnUp5jQ=="], - "@tiptap/extension-table": ["@tiptap/extension-table@3.10.8", "", { "peerDependencies": { "@tiptap/core": "^3.10.8", "@tiptap/pm": "^3.10.8" } }, "sha512-tvigSdbrHonb/6NJb3+Md3P3DHexgqCQmtUm3/qQGv14VGKmOoPeJpe9mB2m4UO4E9shSV9Mt0tbHiv2AkgWmQ=="], + "@tiptap/extension-table": ["@tiptap/extension-table@3.11.0", "", { "peerDependencies": { "@tiptap/core": "^3.11.0", "@tiptap/pm": "^3.11.0" } }, "sha512-2yIj3gKkl0nrw20BKHMrGiUvQO9OK3DAu6UWm06Os9+Sdqiq38Or9YBJRpCfHs9SmXnGBbGUuBW1dnNB7/sZUw=="], - "@tiptap/extension-table-cell": ["@tiptap/extension-table-cell@3.10.8", "", { "peerDependencies": { "@tiptap/extension-table": "^3.10.8" } }, "sha512-/CoAOJwUvoh95nC7IWdjzoC9Dl80Hp3i9BcqNhqZhk2xaZNupxOOX1UrXZm2xUcGZTWnmqr48L7nBOs9MuuzGg=="], + "@tiptap/extension-table-cell": ["@tiptap/extension-table-cell@3.11.0", "", { "peerDependencies": { "@tiptap/extension-table": "^3.11.0" } }, "sha512-ZjL0CU+T3rQ9B1EN8LE4N8eiBTEQlBQehqdsBVzvRR7o7RlYp4JE90vfPsztOmnsqr2dWnsNNhtpWc0+wOLPug=="], - "@tiptap/extension-table-header": ["@tiptap/extension-table-header@3.10.8", "", { "peerDependencies": { "@tiptap/extension-table": "^3.10.8" } }, "sha512-uUfCPp4pFXQ3pt/gGGObhpgR5Al4sXDkDCxNsqqAkLwYGuUaAlWnUC2ffoOmsFxEPugbwELCwpnZlFUjQ4hokQ=="], + "@tiptap/extension-table-header": ["@tiptap/extension-table-header@3.11.0", "", { "peerDependencies": { "@tiptap/extension-table": "^3.11.0" } }, "sha512-LJ3Yu7mZKXdoaV3ixjfpcjgC1ab63h2KYFS3bLOmlRqnacmUfFaY0JaHEFAGmywLCVi26YQ5Y9JodadJsgfnIw=="], - "@tiptap/extension-table-row": ["@tiptap/extension-table-row@3.10.8", "", { "peerDependencies": { "@tiptap/extension-table": "^3.10.8" } }, "sha512-Zehm35U9dXerGs2mWAHomUvnzTVz+UVsioyvymGDYBoGCZUJnOJii8YS6kPmfpLZwy4vOMfVwFpgGyGz1QInog=="], + "@tiptap/extension-table-row": ["@tiptap/extension-table-row@3.11.0", "", { "peerDependencies": { "@tiptap/extension-table": "^3.11.0" } }, "sha512-IwN3jiqkpgDnt2kuNf0hn3qM1qSitP3UIl/anxj1gt/OKRzEjNLuHEDr7wmmjMenj5Bhq+q+MpageKZERJzhaQ=="], "@tiptap/extension-task-item": ["@tiptap/extension-task-item@2.22.3", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-aVfSa2dLF77bfXpAlrsfPUNdhiHJhw3VJ/pnCTxrEnBXYilDuH59AhtU6DygSNhMZWUgzI4OPqf3crF+yzrHag=="], @@ -1966,7 +1974,7 @@ "@trycompai/analytics": ["@trycompai/analytics@workspace:packages/analytics"], - "@trycompai/db": ["@trycompai/db@1.3.17", "", { "dependencies": { "@prisma/client": "^6.13.0", "dotenv": "^16.4.5" } }, "sha512-vrKf+/YGdQhpP470xWhysL3RDL8v16pS90AafF718YcRI6mI/XUqlirNMS43+XtOksrc5CHITyBLLOd848bFDA=="], + "@trycompai/db": ["@trycompai/db@workspace:packages/db"], "@trycompai/email": ["@trycompai/email@workspace:packages/email"], @@ -2012,8 +2020,6 @@ "@types/chai": ["@types/chai@5.2.3", "", { "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" } }, "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA=="], - "@types/cheerio": ["@types/cheerio@1.0.0", "", { "dependencies": { "cheerio": "*" } }, "sha512-zAaImHWoh5RY2CLgU2mvg3bl2k3F65B0N5yphuII3ythFLPmJhL7sj1RDu6gSxcgqHlETbr/lhA2OBY+WF1fXQ=="], - "@types/connect": ["@types/connect@3.4.38", "", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="], "@types/conventional-commits-parser": ["@types/conventional-commits-parser@5.0.2", "", { "dependencies": { "@types/node": "*" } }, "sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g=="], @@ -2126,7 +2132,7 @@ "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], - "@types/jsonwebtoken": ["@types/jsonwebtoken@8.5.9", "", { "dependencies": { "@types/node": "*" } }, "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg=="], + "@types/jsonwebtoken": ["@types/jsonwebtoken@9.0.10", "", { "dependencies": { "@types/ms": "*", "@types/node": "*" } }, "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA=="], "@types/jspdf": ["@types/jspdf@2.0.0", "", { "dependencies": { "jspdf": "*" } }, "sha512-oonYDXI4GegGaG7FFVtriJ+Yqlh4YR3L3NVDiwCEBVG7sbya19SoGx4MW4kg1MCMRPgkbbFTck8YKJL8PrkDfA=="], @@ -2134,8 +2140,6 @@ "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="], - "@types/lodash": ["@types/lodash@4.17.20", "", {}, "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA=="], - "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], @@ -2182,8 +2186,6 @@ "@types/serve-static": ["@types/serve-static@1.15.10", "", { "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "<1" } }, "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw=="], - "@types/shimmer": ["@types/shimmer@1.2.0", "", {}, "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg=="], - "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], "@types/stats.js": ["@types/stats.js@0.17.4", "", {}, "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA=="], @@ -2200,8 +2202,6 @@ "@types/tsscmp": ["@types/tsscmp@1.0.2", "", {}, "sha512-cy7BRSU8GYYgxjcx0Py+8lo5MthuDhlyu076KUcYzVNXL23luYgRHkMG2fIFEc6neckeh/ntP82mw+U4QjZq+g=="], - "@types/tunnel": ["@types/tunnel@0.0.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA=="], - "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], "@types/use-sync-external-store": ["@types/use-sync-external-store@0.0.6", "", {}, "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg=="], @@ -2294,8 +2294,6 @@ "@upstash/redis": ["@upstash/redis@1.35.6", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-aSEIGJgJ7XUfTYvhQcQbq835re7e/BXjs8Janq6Pvr6LlmTZnyqwT97RziZLO/8AVUL037RLXqqiQC6kCt+5pA=="], - "@upstash/vector": ["@upstash/vector@1.2.2", "", {}, "sha512-ptQ9xnxtKqmpNK52PCcHCszlPOLxIBfjsv7ty8RoF95pkjctS9rSjTQ3Pl9bx5VFbpDj+0dMXw88WLt6swDkgQ=="], - "@use-gesture/core": ["@use-gesture/core@10.3.1", "", {}, "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw=="], "@use-gesture/react": ["@use-gesture/react@10.3.1", "", { "dependencies": { "@use-gesture/core": "10.3.1" }, "peerDependencies": { "react": ">= 16.8.0" } }, "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g=="], @@ -2306,7 +2304,7 @@ "@vercel/sandbox": ["@vercel/sandbox@0.0.21", "", { "dependencies": { "@vercel/oidc": "^2.0.2", "async-retry": "1.3.3", "jsonlines": "0.1.1", "ms": "2.1.3", "tar-stream": "3.1.7", "undici": "^7.16.0", "zod": "3.24.4" } }, "sha512-j6nAUQyuw6znVaZGd7yI0nab1EWhEtIZPnTXvpDatJ2SObodYZOz5hGoLjCopAuhQBC7vOngbZ1bwP6HxtB5+g=="], - "@vercel/sdk": ["@vercel/sdk@1.17.1", "", { "dependencies": { "zod": "^3.25.0 || ^4.0.0" }, "peerDependencies": { "@modelcontextprotocol/sdk": ">=1.5.0 <1.10.0" }, "optionalPeers": ["@modelcontextprotocol/sdk"], "bin": { "mcp": "bin/mcp-server.js" } }, "sha512-wh4Y+nZAsLM0SoaLkYeHn1trIJklG5uwqTbl2keDQEJFuzcE3fG8RwyiuS+ZWW/BdpfiIwN2xAhSiSlbafTzvw=="], + "@vercel/sdk": ["@vercel/sdk@1.17.2", "", { "dependencies": { "@modelcontextprotocol/sdk": ">=1.5.0 <1.10.0", "zod": "^3.25.0 || ^4.0.0" }, "bin": { "mcp": "bin/mcp-server.js" } }, "sha512-dPMVfBbNy8bo5pY7luN6M8WmlzKOMT+Saop89h0PvMdPsT6EJovo1RYmh+mjV5RTqDczEyJt+qZfMWdOYsevmw=="], "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], @@ -2368,11 +2366,9 @@ "JSONStream": ["JSONStream@1.3.5", "", { "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" }, "bin": { "JSONStream": "./bin.js" } }, "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ=="], - "abbrev": ["abbrev@1.1.1", "", {}, "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="], - "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], - "accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], @@ -2392,7 +2388,7 @@ "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="], - "ai": ["ai@5.0.93", "", { "dependencies": { "@ai-sdk/gateway": "2.0.9", "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-9eGcu+1PJgPg4pRNV4L7tLjRR3wdJC9CXQoNMvtqvYNOLZHFCzjHtVIOr2SIkoJJeu2+sOy3hyiSuTmy2MA40g=="], + "ai": ["ai@5.0.95", "", { "dependencies": { "@ai-sdk/gateway": "2.0.11", "@ai-sdk/provider": "2.0.0", "@ai-sdk/provider-utils": "3.0.17", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-dsvFdYMeGP08zuUQkhKO1UMMXMCb+nro9ZmDdwaAkkTlCGkP3u1S+xaRUDNayu/c0KVkiTtfEroPG//U+kvXzg=="], "ai-elements": ["ai-elements@1.6.3", "", { "bin": { "elements": "index.js" } }, "sha512-M0A5NrUqCMV2w9hJV+kOuFi+XKo1BjlawheaqfrG+jovWsyXyCalOOH2dM4w/BwjABwje5yZX5MnMIUwnFmqzg=="], @@ -2410,7 +2406,7 @@ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "ansis": ["ansis@4.1.0", "", {}, "sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w=="], + "ansis": ["ansis@4.2.0", "", {}, "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig=="], "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], @@ -2418,17 +2414,13 @@ "append-field": ["append-field@1.0.0", "", {}, "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="], - "aproba": ["aproba@1.2.0", "", {}, "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="], - "archiver": ["archiver@7.0.1", "", { "dependencies": { "archiver-utils": "^5.0.2", "async": "^3.2.4", "buffer-crc32": "^1.0.0", "readable-stream": "^4.0.0", "readdir-glob": "^1.1.2", "tar-stream": "^3.0.0", "zip-stream": "^6.0.1" } }, "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ=="], "archiver-utils": ["archiver-utils@5.0.2", "", { "dependencies": { "glob": "^10.0.0", "graceful-fs": "^4.2.0", "is-stream": "^2.0.1", "lazystream": "^1.0.0", "lodash": "^4.17.15", "normalize-path": "^3.0.0", "readable-stream": "^4.0.0" } }, "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA=="], - "are-we-there-yet": ["are-we-there-yet@1.1.7", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g=="], - "arg": ["arg@4.1.3", "", {}, "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="], - "argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "argv-formatter": ["argv-formatter@1.0.0", "", {}, "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw=="], @@ -2462,14 +2454,12 @@ "asap": ["asap@2.0.6", "", {}, "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="], - "asn1": ["asn1@0.2.6", "", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="], - "asn1js": ["asn1js@3.0.6", "", { "dependencies": { "pvtsutils": "^1.3.6", "pvutils": "^1.1.3", "tslib": "^2.8.1" } }, "sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA=="], - "assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="], - "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + "ast-kit": ["ast-kit@2.2.0", "", { "dependencies": { "@babel/parser": "^7.28.5", "pathe": "^2.0.3" } }, "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw=="], + "ast-types": ["ast-types@0.13.4", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w=="], "ast-types-flow": ["ast-types-flow@0.0.8", "", {}, "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="], @@ -2488,10 +2478,6 @@ "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], - "aws-sign2": ["aws-sign2@0.7.0", "", {}, "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="], - - "aws4": ["aws4@1.13.2", "", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="], - "axe-core": ["axe-core@4.11.0", "", {}, "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ=="], "axios": ["axios@1.13.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA=="], @@ -2536,8 +2522,6 @@ "basic-ftp": ["basic-ftp@5.0.5", "", {}, "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg=="], - "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="], - "before-after-hook": ["before-after-hook@4.0.0", "", {}, "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="], "better-auth": ["better-auth@1.3.34", "", { "dependencies": { "@better-auth/core": "1.3.34", "@better-auth/telemetry": "1.3.34", "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.18", "@noble/ciphers": "^2.0.0", "@noble/hashes": "^2.0.0", "@simplewebauthn/browser": "^13.1.2", "@simplewebauthn/server": "^13.1.2", "better-call": "1.0.19", "defu": "^6.1.4", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^1.0.1", "zod": "^4.1.5" } }, "sha512-LWA52SlvnUBJRbN8VLSTLILPomZY3zZAiLxVJCeSQ5uVmaIKkMBhERitkfJcXB9RJcfl4uP+3EqKkb6hX1/uiw=="], @@ -2552,21 +2536,19 @@ "bintrees": ["bintrees@1.0.2", "", {}, "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="], - "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], + "birpc": ["birpc@2.8.0", "", {}, "sha512-Bz2a4qD/5GRhiHSwj30c/8kC8QGj12nNDwz3D4ErQ4Xhy35dsSDvF+RA/tWpjyU0pdGtSDiEk6B5fBGE1qNVhw=="], - "block-stream": ["block-stream@0.0.9", "", { "dependencies": { "inherits": "~2.0.0" } }, "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ=="], + "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], "body-parser": ["body-parser@2.2.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.0", "http-errors": "^2.0.0", "iconv-lite": "^0.6.3", "on-finished": "^2.4.1", "qs": "^6.14.0", "raw-body": "^3.0.0", "type-is": "^2.0.0" } }, "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg=="], - "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], - "botid": ["botid@1.5.10", "", { "peerDependencies": { "next": "*", "react": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["next", "react"] }, "sha512-hhgty1u0CxozqTqLbTQMtYBwmWdzWZTAsBCvN7/qhkN3fM7MlXacmmcMoyc0f+vV+U6RRoLYdlo32td+PhJyew=="], "bottleneck": ["bottleneck@2.19.5", "", {}, "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw=="], "bowser": ["bowser@2.12.1", "", {}, "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw=="], - "brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], @@ -2612,14 +2594,12 @@ "camera-controls": ["camera-controls@3.1.2", "", { "peerDependencies": { "three": ">=0.126.1" } }, "sha512-xkxfpG2ECZ6Ww5/9+kf4mfg1VEYAoe9aDSY+IwF0UEs7qEzwy0aVRfs2grImIECs/PoBtWFrh7RXsQkwG922JA=="], - "caniuse-lite": ["caniuse-lite@1.0.30001755", "", {}, "sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA=="], + "caniuse-lite": ["caniuse-lite@1.0.30001756", "", {}, "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A=="], "canvas-confetti": ["canvas-confetti@1.9.4", "", {}, "sha512-yxQbJkAVrFXWNbTUjPqjF7G+g6pDotOUHGbkZq2NELZUMDpiJ85rIEazVb8GTaAptNW2miJAXbs1BtioA251Pw=="], "canvg": ["canvg@3.0.11", "", { "dependencies": { "@babel/runtime": "^7.12.5", "@types/raf": "^3.4.0", "core-js": "^3.8.3", "raf": "^3.4.1", "regenerator-runtime": "^0.13.7", "rgbcolor": "^1.0.1", "stackblur-canvas": "^2.0.0", "svg-pathdata": "^6.0.3" } }, "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA=="], - "caseless": ["caseless@0.12.0", "", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="], - "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], "cfb": ["cfb@1.2.2", "", { "dependencies": { "adler-32": "~1.3.0", "crc-32": "~1.2.0" } }, "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA=="], @@ -2628,8 +2608,6 @@ "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "chalk-template": ["chalk-template@1.1.2", "", { "dependencies": { "chalk": "^5.2.0" } }, "sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA=="], - "char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], "character-entities": ["character-entities@1.2.4", "", {}, "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="], @@ -2644,10 +2622,6 @@ "check-error": ["check-error@2.1.1", "", {}, "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw=="], - "cheerio": ["cheerio@1.1.2", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "encoding-sniffer": "^0.2.1", "htmlparser2": "^10.0.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", "undici": "^7.12.0", "whatwg-mimetype": "^4.0.0" } }, "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg=="], - - "cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="], - "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], @@ -2670,7 +2644,7 @@ "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], - "cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="], + "cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], "cli-highlight": ["cli-highlight@2.1.11", "", { "dependencies": { "chalk": "^4.0.0", "highlight.js": "^10.7.1", "mz": "^2.4.0", "parse5": "^5.1.1", "parse5-htmlparser2-tree-adapter": "^6.0.0", "yargs": "^16.0.0" }, "bin": { "highlight": "bin/highlight" } }, "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg=="], @@ -2692,8 +2666,6 @@ "co": ["co@4.6.0", "", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="], - "code-point-at": ["code-point-at@1.1.0", "", {}, "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA=="], - "codepage": ["codepage@1.15.0", "", {}, "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="], "collect-v8-coverage": ["collect-v8-coverage@1.0.3", "", {}, "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw=="], @@ -2706,7 +2678,7 @@ "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], - "commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="], + "commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], "comment-json": ["comment-json@4.4.1", "", { "dependencies": { "array-timsort": "^1.0.3", "core-util-is": "^1.0.3", "esprima": "^4.0.1" } }, "sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg=="], @@ -2728,8 +2700,6 @@ "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], - "console-control-strings": ["console-control-strings@1.1.0", "", {}, "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="], - "content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="], "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], @@ -2788,12 +2758,8 @@ "css-line-break": ["css-line-break@2.1.0", "", { "dependencies": { "utrie": "^1.0.2" } }, "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w=="], - "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], - "css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="], - "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], - "css.escape": ["css.escape@1.5.1", "", {}, "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="], "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], @@ -2868,8 +2834,6 @@ "dargs": ["dargs@8.1.0", "", {}, "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw=="], - "dashdash": ["dashdash@1.14.1", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="], - "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="], "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="], @@ -2882,8 +2846,6 @@ "date-fns": ["date-fns@4.1.0", "", {}, "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="], - "dayjs": ["dayjs@1.11.19", "", {}, "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="], - "debounce": ["debounce@2.2.0", "", {}, "sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw=="], "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], @@ -2926,8 +2888,6 @@ "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], - "delegates": ["delegates@1.0.0", "", {}, "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="], - "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], @@ -2952,7 +2912,7 @@ "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], - "diff": ["diff@4.0.2", "", {}, "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="], + "diff": ["diff@8.0.2", "", {}, "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg=="], "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], @@ -2962,7 +2922,7 @@ "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], - "dnd-core": ["dnd-core@16.0.1", "", { "dependencies": { "@react-dnd/asap": "^5.0.1", "@react-dnd/invariant": "^4.0.1", "redux": "^4.2.0" } }, "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng=="], + "docs": ["docs@workspace:packages/docs"], "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], @@ -2988,6 +2948,8 @@ "draco3d": ["draco3d@1.5.7", "", {}, "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ=="], + "dts-resolver": ["dts-resolver@2.1.3", "", { "peerDependencies": { "oxc-resolver": ">=11.0.0" }, "optionalPeers": ["oxc-resolver"] }, "sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw=="], + "dub": ["dub@0.66.5", "", { "dependencies": { "zod": "^3.20.0" } }, "sha512-VIaRWbjAv0w3R317LRjPh7G4Ws9wRqMwvaBQWdFxghQfkJTh457NZFNOfywYX5DIjWBhZLPG4/itvoi3AlcxxQ=="], "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], @@ -2996,15 +2958,13 @@ "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - "ecc-jsbn": ["ecc-jsbn@0.1.2", "", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="], - "ecdsa-sig-formatter": ["ecdsa-sig-formatter@1.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="], "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], "effect": ["effect@3.18.4", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA=="], - "electron-to-chromium": ["electron-to-chromium@1.5.255", "", {}, "sha512-Z9oIp4HrFF/cZkDPMpz2XSuVpc1THDpT4dlmATFlJUIBVCy9Vap5/rIXsASP1CscBacBqhabwh8vLctqBwEerQ=="], + "electron-to-chromium": ["electron-to-chromium@1.5.256", "", {}, "sha512-uqYq1IQhpXXLX+HgiXdyOZml7spy4xfy42yPxcCCRjswp0fYM2X+JwCON07lqnpLEGVCj739B7Yr+FngmHBMEQ=="], "embla-carousel": ["embla-carousel@8.6.0", "", {}, "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA=="], @@ -3024,8 +2984,6 @@ "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], - "encoding-sniffer": ["encoding-sniffer@0.2.1", "", { "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" } }, "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw=="], - "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], "engine.io": ["engine.io@6.6.4", "", { "dependencies": { "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.7.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1" } }, "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g=="], @@ -3036,9 +2994,7 @@ "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], - "enquirer": ["enquirer@2.4.1", "", { "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" } }, "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ=="], - - "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], "env-ci": ["env-ci@11.2.0", "", { "dependencies": { "execa": "^8.0.0", "java-properties": "^1.0.2" } }, "sha512-D5kWfzkmaOQDioPmiviWAVtKmpPT4/iJmMVQxWxMPJTFyTkdc5JQUfc5iXEeWxcOdsYTKSAiA/Age4NUOqKsRA=="], @@ -3086,7 +3042,7 @@ "eslint": ["eslint@9.39.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.1", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g=="], - "eslint-config-next": ["eslint-config-next@15.5.2", "", { "dependencies": { "@next/eslint-plugin-next": "15.5.2", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^5.0.0" }, "peerDependencies": { "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", "typescript": ">=3.3.1" }, "optionalPeers": ["typescript"] }, "sha512-3hPZghsLupMxxZ2ggjIIrat/bPniM2yRpsVPVM40rp8ZMzKWOJp2CGWn7+EzoV2ddkUr5fxNfHpF+wU1hGt/3g=="], + "eslint-config-next": ["eslint-config-next@16.0.3", "", { "dependencies": { "@next/eslint-plugin-next": "16.0.3", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^7.0.0", "globals": "16.4.0", "typescript-eslint": "^8.46.0" }, "peerDependencies": { "eslint": ">=9.0.0", "typescript": ">=3.3.1" }, "optionalPeers": ["typescript"] }, "sha512-5F6qDjcZldf0Y0ZbqvWvap9xzYUxyDf7/of37aeyhvkrQokj/4bT1JYWZdlWUr283aeVa+s52mPq9ogmGg+5dw=="], "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], @@ -3104,7 +3060,7 @@ "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], - "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.2.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg=="], + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.0.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA=="], "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], @@ -3156,16 +3112,14 @@ "express": ["express@5.1.0", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.0", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA=="], + "express-rate-limit": ["express-rate-limit@7.5.1", "", { "peerDependencies": { "express": ">= 4.11" } }, "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw=="], + "exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], - "extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="], - "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], - "extsprintf": ["extsprintf@1.3.0", "", {}, "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="], - "fast-check": ["fast-check@3.23.2", "", { "dependencies": { "pure-rand": "^6.1.0" } }, "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A=="], "fast-content-type-parse": ["fast-content-type-parse@3.0.0", "", {}, "sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg=="], @@ -3238,7 +3192,7 @@ "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], - "fleetctl": ["fleetctl@4.76.0", "", { "dependencies": { "axios": "1.12.0", "rimraf": "6.0.1", "tar": "7.4.3" }, "bin": { "fleetctl": "run.js" } }, "sha512-YvY7+TNnf7o/Fk3dVC/YFltKlJlH3ZIAE4g8B3/NdSIkk8w6EffOFnFhm/611tYD/7ZNqZcBe8gPzkvA8EIpZA=="], + "fleetctl": ["fleetctl@4.76.1", "", { "dependencies": { "axios": "1.12.0", "rimraf": "6.0.1", "tar": "7.4.3" }, "bin": { "fleetctl": "run.js" } }, "sha512-i8KxS4SUJ5PUonRihRJZQOqXgTE7ijPLxnROZQa0m+NjcqJTqmu4TEH08KHWeRSetXC3VGmXziK4xZ0neDI+VQ=="], "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], @@ -3246,8 +3200,6 @@ "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - "forever-agent": ["forever-agent@0.6.1", "", {}, "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="], - "fork-ts-checker-webpack-plugin": ["fork-ts-checker-webpack-plugin@9.1.0", "", { "dependencies": { "@babel/code-frame": "^7.16.7", "chalk": "^4.1.2", "chokidar": "^4.0.1", "cosmiconfig": "^8.2.0", "deepmerge": "^4.2.2", "fs-extra": "^10.0.0", "memfs": "^3.4.1", "minimatch": "^3.0.4", "node-abort-controller": "^3.0.1", "schema-utils": "^3.1.1", "semver": "^7.3.5", "tapable": "^2.2.1" }, "peerDependencies": { "typescript": ">3.6.0", "webpack": "^5.11.0" } }, "sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q=="], "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], @@ -3280,8 +3232,6 @@ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "fstream": ["fstream@1.0.12", "", { "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" } }, "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg=="], - "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], "function-timeout": ["function-timeout@1.0.2", "", {}, "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA=="], @@ -3290,8 +3240,6 @@ "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], - "gauge": ["gauge@2.7.4", "", { "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg=="], - "geist": ["geist@1.5.1", "", { "peerDependencies": { "next": ">=13.2.0" } }, "sha512-mAHZxIsL2o3ZITFaBVFBnwyDOw+zNLYum6A6nIjpzCGIO8QtC3V76XF2RnZTyLx1wlDTmMDy8jg3Ib52MIjGvQ=="], "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], @@ -3318,16 +3266,12 @@ "get-uri": ["get-uri@6.0.5", "", { "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4" } }, "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg=="], - "getpass": ["getpass@0.1.7", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="], - "giget": ["giget@2.0.0", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.0", "defu": "^6.1.4", "node-fetch-native": "^1.6.6", "nypm": "^0.6.0", "pathe": "^2.0.3" }, "bin": { "giget": "dist/cli.mjs" } }, "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA=="], "git-log-parser": ["git-log-parser@1.2.1", "", { "dependencies": { "argv-formatter": "~1.0.0", "spawn-error-forwarder": "~1.0.0", "split2": "~1.0.0", "stream-combiner2": "~1.1.1", "through2": "~2.0.0", "traverse": "0.6.8" } }, "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ=="], "git-raw-commits": ["git-raw-commits@4.0.0", "", { "dependencies": { "dargs": "^8.0.0", "meow": "^12.0.1", "split2": "^4.0.0" }, "bin": { "git-raw-commits": "cli.mjs" } }, "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ=="], - "gitmoji": ["gitmoji@1.1.1", "", { "dependencies": { "kexec": "^1.3.0", "wemoji": "^0.1.9" }, "bin": { "gitmoji": "./index.js" } }, "sha512-cPNoMO7jIjV6/MZlOogpcl2trnoj2sQiiboGbJNa2f0mg4zlPN9tacN6sAQ2jPImMDFLyVYcMqLlxHfGTk87NA=="], - "glob": ["glob@11.1.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw=="], "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], @@ -3340,8 +3284,6 @@ "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], - "globby": ["globby@14.1.0", "", { "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.3", "ignore": "^7.0.3", "path-type": "^6.0.0", "slash": "^5.1.0", "unicorn-magic": "^0.3.0" } }, "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA=="], - "globrex": ["globrex@0.1.2", "", {}, "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="], "glsl-noise": ["glsl-noise@0.0.0", "", {}, "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w=="], @@ -3352,14 +3294,8 @@ "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], - "gray-matter": ["gray-matter@4.0.3", "", { "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", "section-matter": "^1.0.0", "strip-bom-string": "^1.0.0" } }, "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q=="], - "handlebars": ["handlebars@4.7.8", "", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="], - "har-schema": ["har-schema@2.0.0", "", {}, "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="], - - "har-validator": ["har-validator@5.1.5", "", { "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="], - "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], @@ -3372,8 +3308,6 @@ "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "has-unicode": ["has-unicode@2.0.1", "", {}, "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], @@ -3390,18 +3324,22 @@ "hastscript": ["hastscript@6.0.0", "", { "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" } }, "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w=="], + "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], + + "hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], + "hey-listen": ["hey-listen@1.0.8", "", {}, "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="], "highlight.js": ["highlight.js@10.7.3", "", {}, "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="], "highlightjs-vue": ["highlightjs-vue@1.0.0", "", {}, "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA=="], - "hls.js": ["hls.js@1.6.14", "", {}, "sha512-CSpT2aXsv71HST8C5ETeVo+6YybqCpHBiYrCRQSn3U5QUZuLTSsvtq/bj+zuvjLVADeKxoebzo16OkH8m1+65Q=="], - - "hoist-non-react-statics": ["hoist-non-react-statics@3.3.2", "", { "dependencies": { "react-is": "^16.7.0" } }, "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="], + "hls.js": ["hls.js@1.6.15", "", {}, "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA=="], "hook-std": ["hook-std@4.0.0", "", {}, "sha512-IHI4bEVOt3vRUDJ+bFA9VUJlo7SzvFARPNLw75pqSmAOP2HmTWfFJtPvLBrDrlgjEYXY9zs7SFdHPQaJShkSCQ=="], + "hookable": ["hookable@5.5.3", "", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="], + "hosted-git-info": ["hosted-git-info@8.1.0", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw=="], "html-encoding-sniffer": ["html-encoding-sniffer@4.0.0", "", { "dependencies": { "whatwg-encoding": "^3.1.1" } }, "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="], @@ -3416,14 +3354,12 @@ "html2canvas": ["html2canvas@1.4.1", "", { "dependencies": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" } }, "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA=="], - "htmlparser2": ["htmlparser2@10.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.1", "entities": "^6.0.0" } }, "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g=="], + "htmlparser2": ["htmlparser2@8.0.2", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA=="], "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], - "http-signature": ["http-signature@1.2.0", "", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ=="], - "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], "human-signals": ["human-signals@8.0.1", "", {}, "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ=="], @@ -3518,8 +3454,6 @@ "is-electron": ["is-electron@2.2.2", "", {}, "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg=="], - "is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="], - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], @@ -3536,7 +3470,7 @@ "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], - "is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="], + "is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], @@ -3570,8 +3504,6 @@ "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], - "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], - "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], @@ -3588,8 +3520,6 @@ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="], - "issue-parser": ["issue-parser@7.0.1", "", { "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.uniqby": "^4.7.0" } }, "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg=="], "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], @@ -3676,9 +3606,7 @@ "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - - "jsbn": ["jsbn@0.1.1", "", {}, "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="], + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], "jsdom": ["jsdom@26.1.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="], @@ -3696,8 +3624,6 @@ "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], - "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], - "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], @@ -3714,8 +3640,6 @@ "jspdf": ["jspdf@3.0.3", "", { "dependencies": { "@babel/runtime": "^7.26.9", "fast-png": "^6.2.0", "fflate": "^0.8.1" }, "optionalDependencies": { "canvg": "^3.0.11", "core-js": "^3.6.0", "dompurify": "^3.2.4", "html2canvas": "^1.0.0-rc.5" } }, "sha512-eURjAyz5iX1H8BOYAfzvdPfIKK53V7mCpBTe7Kb16PaM8JSXEcUQNBQaiWMI8wY5RvNOPj4GccMjTlfwRBd+oQ=="], - "jsprim": ["jsprim@1.4.2", "", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw=="], - "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], "jszip": ["jszip@3.10.1", "", { "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" } }, "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g=="], @@ -3724,12 +3648,8 @@ "jws": ["jws@3.2.2", "", { "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="], - "kexec": ["kexec@1.3.0", "", { "dependencies": { "node-gyp": "^3.0.3" } }, "sha512-d9d7fOSATqYXDrDT9pFsOoCm2mCG5AnrPtEVN/BXx10SFV2VRxhH0ZLXiw0cgRWBW0b1B4TKhGO27SAU0ThenA=="], - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], - "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], - "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], "kysely": ["kysely@0.28.8", "", {}, "sha512-QUOgl5ZrS9IRuhq5FvOKFSsD/3+IA6MLE81/bOOTRA/YQpKDza2sFdN5g6JCB9BOpqMJDGefLCQ9F12hRS13TA=="], @@ -3746,7 +3666,7 @@ "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "libphonenumber-js": ["libphonenumber-js@1.12.26", "", {}, "sha512-MagMOuqEXB2Pa90cWE+BoCmcKJx+de5uBIicaUkQ+uiEslZ0OBMNOkSZT/36syXNHu68UeayTxPm3DYM2IHoLQ=="], + "libphonenumber-js": ["libphonenumber-js@1.12.27", "", {}, "sha512-8gHhHzzcnY1EF4BS5L/lrjv2VAZWd6ltU7c/sqoktRZSQvZl4g8hrgXtXHXGkSFKFYArFON12zUNJrNVqJ9u4g=="], "lie": ["lie@3.3.0", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="], @@ -3850,7 +3770,7 @@ "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "lucide-react": ["lucide-react@0.544.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw=="], + "lucide-react": ["lucide-react@0.553.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-BRgX5zrWmNy/lkVAe0dXBgd7XQdZ3HTf+Hwe3c9WK6dqgnj9h+hxV+MDncM88xDWlCq27+TKvHGE70ViODNILw=="], "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], @@ -4004,7 +3924,7 @@ "minimal-polyfills": ["minimal-polyfills@2.2.3", "", {}, "sha512-oxdmJ9cL+xV72h0xYxp4tP2d5/fTBpP45H8DIOn9pASuF8a3IYTf+25fMGDYGiWW+MFsuog6KD6nfmhZJQ+uUw=="], - "minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], @@ -4058,7 +3978,7 @@ "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], + "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], @@ -4066,7 +3986,7 @@ "netmask": ["netmask@2.0.2", "", {}, "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="], - "next": ["next@15.5.6", "", { "dependencies": { "@next/env": "15.5.6", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "15.5.6", "@next/swc-darwin-x64": "15.5.6", "@next/swc-linux-arm64-gnu": "15.5.6", "@next/swc-linux-arm64-musl": "15.5.6", "@next/swc-linux-x64-gnu": "15.5.6", "@next/swc-linux-x64-musl": "15.5.6", "@next/swc-win32-arm64-msvc": "15.5.6", "@next/swc-win32-x64-msvc": "15.5.6", "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-zTxsnI3LQo3c9HSdSf91O1jMNsEzIXDShXd4wVdg9y5shwLqBXi4ZtUUJyB86KGVSJLZx0PFONvO54aheGX8QQ=="], + "next": ["next@16.0.3", "", { "dependencies": { "@next/env": "16.0.3", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.3", "@next/swc-darwin-x64": "16.0.3", "@next/swc-linux-arm64-gnu": "16.0.3", "@next/swc-linux-arm64-musl": "16.0.3", "@next/swc-linux-x64-gnu": "16.0.3", "@next/swc-linux-x64-musl": "16.0.3", "@next/swc-win32-arm64-msvc": "16.0.3", "@next/swc-win32-x64-msvc": "16.0.3", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-Ka0/iNBblPFcIubTA1Jjh6gvwqfjrGq1Y2MTI5lbjeLIAfmC+p5bQmojpRZqgHHVu5cG4+qdIiwXiBSm/8lZ3w=="], "next-safe-action": ["next-safe-action@8.0.11", "", { "peerDependencies": { "next": ">= 14.0.0", "react": ">= 18.2.0", "react-dom": ">= 18.2.0" } }, "sha512-gqJLmnQLAoFCq1kRBopN46New+vx1n9J9Y/qDQLXpv/VqU40AWxDakvshwwnWAt8R0kLvlakNYNLX5PqlXWSMg=="], @@ -4084,16 +4004,12 @@ "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], - "node-gyp": ["node-gyp@3.8.0", "", { "dependencies": { "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", "which": "1" }, "bin": { "node-gyp": "./bin/node-gyp.js" } }, "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA=="], - "node-gyp-build-optional-packages": ["node-gyp-build-optional-packages@5.2.2", "", { "dependencies": { "detect-libc": "^2.0.1" }, "bin": { "node-gyp-build-optional-packages": "bin.js", "node-gyp-build-optional-packages-optional": "optional.js", "node-gyp-build-optional-packages-test": "build-test.js" } }, "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw=="], "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], - "nopt": ["nopt@3.0.6", "", { "dependencies": { "abbrev": "1" }, "bin": { "nopt": "./bin/nopt.js" } }, "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg=="], - "normalize-package-data": ["normalize-package-data@6.0.2", "", { "dependencies": { "hosted-git-info": "^7.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" } }, "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g=="], "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], @@ -4104,26 +4020,16 @@ "npm": ["npm@10.9.4", "", { "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/arborist": "^8.0.1", "@npmcli/config": "^9.0.0", "@npmcli/fs": "^4.0.0", "@npmcli/map-workspaces": "^4.0.2", "@npmcli/package-json": "^6.2.0", "@npmcli/promise-spawn": "^8.0.2", "@npmcli/redact": "^3.2.2", "@npmcli/run-script": "^9.1.0", "@sigstore/tuf": "^3.1.1", "abbrev": "^3.0.1", "archy": "~1.0.0", "cacache": "^19.0.1", "chalk": "^5.4.1", "ci-info": "^4.2.0", "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", "glob": "^10.4.5", "graceful-fs": "^4.2.11", "hosted-git-info": "^8.1.0", "ini": "^5.0.0", "init-package-json": "^7.0.2", "is-cidr": "^5.1.1", "json-parse-even-better-errors": "^4.0.0", "libnpmaccess": "^9.0.0", "libnpmdiff": "^7.0.1", "libnpmexec": "^9.0.1", "libnpmfund": "^6.0.1", "libnpmhook": "^11.0.0", "libnpmorg": "^7.0.0", "libnpmpack": "^8.0.1", "libnpmpublish": "^10.0.1", "libnpmsearch": "^8.0.0", "libnpmteam": "^7.0.0", "libnpmversion": "^7.0.0", "make-fetch-happen": "^14.0.3", "minimatch": "^9.0.5", "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", "node-gyp": "^11.2.0", "nopt": "^8.1.0", "normalize-package-data": "^7.0.0", "npm-audit-report": "^6.0.0", "npm-install-checks": "^7.1.1", "npm-package-arg": "^12.0.2", "npm-pick-manifest": "^10.0.0", "npm-profile": "^11.0.1", "npm-registry-fetch": "^18.0.2", "npm-user-validate": "^3.0.0", "p-map": "^7.0.3", "pacote": "^19.0.1", "parse-conflict-json": "^4.0.0", "proc-log": "^5.0.0", "qrcode-terminal": "^0.12.0", "read": "^4.1.0", "semver": "^7.7.2", "spdx-expression-parse": "^4.0.0", "ssri": "^12.0.0", "supports-color": "^9.4.0", "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", "validate-npm-package-name": "^6.0.1", "which": "^5.0.0", "write-file-atomic": "^6.0.0" }, "bin": { "npm": "bin/npm-cli.js", "npx": "bin/npx-cli.js" } }, "sha512-OnUG836FwboQIbqtefDNlyR0gTHzIfwRfE3DuiNewBvnMnWEpB0VEXwBlFVgqpNzIgYo/MHh3d2Hel/pszapAA=="], - "npm-package-arg": ["npm-package-arg@12.0.2", "", { "dependencies": { "hosted-git-info": "^8.0.0", "proc-log": "^5.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^6.0.0" } }, "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA=="], - "npm-run-path": ["npm-run-path@6.0.0", "", { "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" } }, "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA=="], - "npmlog": ["npmlog@4.1.2", "", { "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="], - - "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], - "number-flow": ["number-flow@0.5.8", "", { "dependencies": { "esm-env": "^1.1.4" } }, "sha512-FPr1DumWyGi5Nucoug14bC6xEz70A1TnhgSHhKyfqjgji2SOTz+iLJxKtv37N5JyJbteGYCm6NQ9p1O4KZ7iiA=="], - "number-is-nan": ["number-is-nan@1.0.1", "", {}, "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ=="], - "nuqs": ["nuqs@2.8.0", "", { "dependencies": { "@standard-schema/spec": "1.0.0" }, "peerDependencies": { "@remix-run/react": ">=2", "@tanstack/react-router": "^1", "next": ">=14.2.0", "react": ">=18.2.0 || ^19.0.0-0", "react-router": "^5 || ^6 || ^7", "react-router-dom": "^5 || ^6 || ^7" }, "optionalPeers": ["@remix-run/react", "@tanstack/react-router", "next", "react-router", "react-router-dom"] }, "sha512-JnVUUNR5hRtt8ZX131KmiGL6IlbyqgXKifL3oYYuDcJ+Kb8fT+WiaMPY7HmfgrECl0FeQBf7H59KfIfbq2DNdw=="], "nwsapi": ["nwsapi@2.2.22", "", {}, "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ=="], "nypm": ["nypm@0.6.0", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.0", "pathe": "^2.0.3", "pkg-types": "^2.0.0", "tinyexec": "^0.3.2" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg=="], - "oauth-sign": ["oauth-sign@0.9.0", "", {}, "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="], - "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], @@ -4142,6 +4048,8 @@ "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + "obug": ["obug@2.0.0", "", { "peerDependencies": { "ms": "^2.0.0" }, "optionalPeers": ["ms"] }, "sha512-dpSQuPXoKUjulinHmXjZV1YIRhOLEqBl1J6PYi9mRQR2dYcSK+OULRr+GuT1vufk2f40mtIOqmSL/aTikjmq5Q=="], + "ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], @@ -4154,16 +4062,10 @@ "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], - "ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="], + "ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], "orderedmap": ["orderedmap@2.1.1", "", {}, "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g=="], - "os-homedir": ["os-homedir@1.0.2", "", {}, "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ=="], - - "os-tmpdir": ["os-tmpdir@1.0.2", "", {}, "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="], - - "osenv": ["osenv@0.1.5", "", { "dependencies": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="], - "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], "p-each-series": ["p-each-series@3.0.0", "", {}, "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw=="], @@ -4210,9 +4112,7 @@ "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], - "parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="], - - "parse5-parser-stream": ["parse5-parser-stream@7.1.2", "", { "dependencies": { "parse5": "^7.0.0" } }, "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=="], + "parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@6.0.1", "", { "dependencies": { "parse5": "^6.0.1" } }, "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA=="], "parseley": ["parseley@0.12.1", "", { "dependencies": { "leac": "^0.6.0", "peberminta": "^0.9.0" } }, "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw=="], @@ -4252,22 +4152,6 @@ "performance-now": ["performance-now@2.1.0", "", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="], - "pg": ["pg@8.16.3", "", { "dependencies": { "pg-connection-string": "^2.9.1", "pg-pool": "^3.10.1", "pg-protocol": "^1.10.3", "pg-types": "2.2.0", "pgpass": "1.0.5" }, "optionalDependencies": { "pg-cloudflare": "^1.2.7" }, "peerDependencies": { "pg-native": ">=3.0.1" }, "optionalPeers": ["pg-native"] }, "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw=="], - - "pg-cloudflare": ["pg-cloudflare@1.2.7", "", {}, "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg=="], - - "pg-connection-string": ["pg-connection-string@2.9.1", "", {}, "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w=="], - - "pg-int8": ["pg-int8@1.0.1", "", {}, "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="], - - "pg-pool": ["pg-pool@3.10.1", "", { "peerDependencies": { "pg": ">=8.0" } }, "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg=="], - - "pg-protocol": ["pg-protocol@1.10.3", "", {}, "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ=="], - - "pg-types": ["pg-types@2.2.0", "", { "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" } }, "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="], - - "pgpass": ["pgpass@1.0.5", "", { "dependencies": { "split2": "^4.1.0" } }, "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], @@ -4276,6 +4160,8 @@ "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + "pkce-challenge": ["pkce-challenge@5.0.0", "", {}, "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ=="], + "pkg-conf": ["pkg-conf@2.1.0", "", { "dependencies": { "find-up": "^2.0.0", "load-json-file": "^4.0.0" } }, "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g=="], "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], @@ -4304,17 +4190,9 @@ "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - "postgres-array": ["postgres-array@3.0.4", "", {}, "sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ=="], - - "postgres-bytea": ["postgres-bytea@1.0.0", "", {}, "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="], + "posthog-js": ["posthog-js@1.296.0", "", { "dependencies": { "@posthog/core": "1.5.2", "core-js": "^3.38.1", "fflate": "^0.4.8", "preact": "^10.19.3", "web-vitals": "^4.2.4" } }, "sha512-RDOCyK8ilcT6+/BNUKTaPP0OnVbSDJO4zGA5KyjNR7EqIhthBzU694ah651eIJD37HpyC6hCx6qmFJONVtaR5g=="], - "postgres-date": ["postgres-date@1.0.7", "", {}, "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="], - - "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="], - - "posthog-js": ["posthog-js@1.295.0", "", { "dependencies": { "@posthog/core": "1.5.2", "core-js": "^3.38.1", "fflate": "^0.4.8", "preact": "^10.19.3", "web-vitals": "^4.2.4" } }, "sha512-cOCO451t/5MB8Mq3QMrz/TV6Ct3COU9QEHcVaHAEdq5lYcCCq7bSfPUtwgwDQdNfxQB5LJdvfIfhz7HoOvOT1w=="], - - "posthog-node": ["posthog-node@5.11.2", "", { "dependencies": { "@posthog/core": "1.5.2" } }, "sha512-z+XekcBUmGePMsjPlGaEF2bJFiDHKHYPQjS4OEw4YPDQz8s7Owuim/L7xNX+6UJkyIRniBza9iC7bW8yrGTv1g=="], + "posthog-node": ["posthog-node@5.12.0", "", { "dependencies": { "@posthog/core": "1.5.2" } }, "sha512-1ZuvPcgrGzm6Y327eOZMBE2kUiPtZwjNQ3+JujnaI3NSoPKyzD92Z/GGj8atfTfAG4wSb2ND88yrvrZoMfwXzQ=="], "postprocessing": ["postprocessing@6.38.0", "", { "peerDependencies": { "three": ">= 0.157.0 < 0.182.0" } }, "sha512-tisx8XN/PWTL3uXz2mt8bjlMS1wiOUSCK3ixi4zjwUCFmP8XW8hNhXwrxwd2zf2VmCyCQ3GUaLm7GLnkkBbDsQ=="], @@ -4340,8 +4218,6 @@ "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], - "proc-log": ["proc-log@5.0.0", "", {}, "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ=="], - "process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], @@ -4406,8 +4282,6 @@ "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], - "psl": ["psl@1.15.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w=="], - "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], @@ -4416,7 +4290,7 @@ "puppeteer-core": ["puppeteer-core@24.30.0", "", { "dependencies": { "@puppeteer/browsers": "2.10.13", "chromium-bidi": "11.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1521046", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.3.8", "ws": "^8.18.3" } }, "sha512-2S3Smy0t0W4wJnNvDe7W0bE7wDmZjfZ3ljfMgJd6hn2Hq/f0jgN+x9PULZo2U3fu5UUIJ+JP8cNUGllu8P91Pg=="], - "pure-rand": ["pure-rand@6.1.0", "", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="], + "pure-rand": ["pure-rand@7.0.1", "", {}, "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ=="], "pvtsutils": ["pvtsutils@1.3.6", "", { "dependencies": { "tslib": "^2.8.1" } }, "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg=="], @@ -4424,6 +4298,8 @@ "qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="], + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], + "querystringify": ["querystringify@2.2.0", "", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="], "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], @@ -4446,10 +4322,6 @@ "react-day-picker": ["react-day-picker@8.10.1", "", { "peerDependencies": { "date-fns": "^2.28.0 || ^3.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA=="], - "react-dnd": ["react-dnd@16.0.1", "", { "dependencies": { "@react-dnd/invariant": "^4.0.1", "@react-dnd/shallowequal": "^4.0.1", "dnd-core": "^16.0.1", "fast-deep-equal": "^3.1.3", "hoist-non-react-statics": "^3.3.2" }, "peerDependencies": { "@types/hoist-non-react-statics": ">= 3.3.1", "@types/node": ">= 12", "@types/react": ">= 16", "react": ">= 16.14" }, "optionalPeers": ["@types/hoist-non-react-statics", "@types/node", "@types/react"] }, "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q=="], - - "react-dnd-html5-backend": ["react-dnd-html5-backend@16.0.1", "", { "dependencies": { "dnd-core": "^16.0.1" } }, "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw=="], - "react-dom": ["react-dom@19.2.0", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="], "react-dropzone": ["react-dropzone@14.3.8", "", { "dependencies": { "attr-accept": "^2.2.4", "file-selector": "^2.1.0", "prop-types": "^15.8.1" }, "peerDependencies": { "react": ">= 16.8 || 18.0.0" } }, "sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug=="], @@ -4510,8 +4382,6 @@ "read-pkg": ["read-pkg@9.0.1", "", { "dependencies": { "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", "parse-json": "^8.0.0", "type-fest": "^4.6.0", "unicorn-magic": "^0.1.0" } }, "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA=="], - "read-yaml-file": ["read-yaml-file@2.1.0", "", { "dependencies": { "js-yaml": "^4.0.0", "strip-bom": "^4.0.0" } }, "sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ=="], - "readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], "readdir-glob": ["readdir-glob@1.1.3", "", { "dependencies": { "minimatch": "^5.1.0" } }, "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA=="], @@ -4524,8 +4394,6 @@ "redent": ["redent@3.0.0", "", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], - "redux": ["redux@4.2.1", "", { "dependencies": { "@babel/runtime": "^7.9.2" } }, "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w=="], - "reflect-metadata": ["reflect-metadata@0.2.2", "", {}, "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q=="], "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], @@ -4548,8 +4416,6 @@ "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], - "request": ["request@2.88.2", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="], - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], @@ -4572,7 +4438,7 @@ "responsive-react-email": ["responsive-react-email@0.0.5", "", { "peerDependencies": { "react": "18.x", "react-email": "1.x" } }, "sha512-r+Z6Yp6G3Sm9eKmttsb8GVij25rXJGN2eoQ9OfMcuVMfBfq1NdytIFLBo/6wdMW1zw+ko1FEUG/zgRyK9UuYLw=="], - "restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="], + "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], "retry": ["retry@0.13.1", "", {}, "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="], @@ -4584,7 +4450,11 @@ "robust-predicates": ["robust-predicates@3.0.2", "", {}, "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="], - "rollup": ["rollup@4.53.2", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.2", "@rollup/rollup-android-arm64": "4.53.2", "@rollup/rollup-darwin-arm64": "4.53.2", "@rollup/rollup-darwin-x64": "4.53.2", "@rollup/rollup-freebsd-arm64": "4.53.2", "@rollup/rollup-freebsd-x64": "4.53.2", "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", "@rollup/rollup-linux-arm-musleabihf": "4.53.2", "@rollup/rollup-linux-arm64-gnu": "4.53.2", "@rollup/rollup-linux-arm64-musl": "4.53.2", "@rollup/rollup-linux-loong64-gnu": "4.53.2", "@rollup/rollup-linux-ppc64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-musl": "4.53.2", "@rollup/rollup-linux-s390x-gnu": "4.53.2", "@rollup/rollup-linux-x64-gnu": "4.53.2", "@rollup/rollup-linux-x64-musl": "4.53.2", "@rollup/rollup-openharmony-arm64": "4.53.2", "@rollup/rollup-win32-arm64-msvc": "4.53.2", "@rollup/rollup-win32-ia32-msvc": "4.53.2", "@rollup/rollup-win32-x64-gnu": "4.53.2", "@rollup/rollup-win32-x64-msvc": "4.53.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g=="], + "rolldown": ["rolldown@1.0.0-beta.50", "", { "dependencies": { "@oxc-project/types": "=0.97.0", "@rolldown/pluginutils": "1.0.0-beta.50" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-beta.50", "@rolldown/binding-darwin-arm64": "1.0.0-beta.50", "@rolldown/binding-darwin-x64": "1.0.0-beta.50", "@rolldown/binding-freebsd-x64": "1.0.0-beta.50", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.50", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.50", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.50", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.50", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.50", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.50", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.50", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.50", "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.50", "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.50" }, "bin": { "rolldown": "bin/cli.mjs" } }, "sha512-JFULvCNl/anKn99eKjOSEubi0lLmNqQDAjyEMME2T4CwezUDL0i6t1O9xZsu2OMehPnV2caNefWpGF+8TnzB6A=="], + + "rolldown-plugin-dts": ["rolldown-plugin-dts@0.17.8", "", { "dependencies": { "@babel/generator": "^7.28.5", "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "ast-kit": "^2.2.0", "birpc": "^2.8.0", "dts-resolver": "^2.1.3", "get-tsconfig": "^4.13.0", "magic-string": "^0.30.21", "obug": "^2.0.0" }, "peerDependencies": { "@ts-macro/tsc": "^0.3.6", "@typescript/native-preview": ">=7.0.0-dev.20250601.1", "rolldown": "^1.0.0-beta.44", "typescript": "^5.0.0", "vue-tsc": "~3.1.0" }, "optionalPeers": ["@ts-macro/tsc", "@typescript/native-preview", "typescript", "vue-tsc"] }, "sha512-76EEBlhF00yeY6M7VpMkWKI4r9WjuoMiOGey7j4D6zf3m0BR+ZrrY9hvSXdueJ3ljxSLq4DJBKFpX/X9+L7EKw=="], + + "rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="], "rope-sequence": ["rope-sequence@1.3.4", "", {}, "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ=="], @@ -4626,8 +4496,6 @@ "screenfull": ["screenfull@5.2.0", "", {}, "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA=="], - "section-matter": ["section-matter@1.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA=="], - "selderee": ["selderee@0.11.0", "", { "dependencies": { "parseley": "^0.12.0" } }, "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA=="], "semantic-release": ["semantic-release@24.2.9", "", { "dependencies": { "@semantic-release/commit-analyzer": "^13.0.0-beta.1", "@semantic-release/error": "^4.0.0", "@semantic-release/github": "^11.0.0", "@semantic-release/npm": "^12.0.2", "@semantic-release/release-notes-generator": "^14.0.0-beta.1", "aggregate-error": "^5.0.0", "cosmiconfig": "^9.0.0", "debug": "^4.0.0", "env-ci": "^11.0.0", "execa": "^9.0.0", "figures": "^6.0.0", "find-versions": "^6.0.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^4.0.0", "hosted-git-info": "^8.0.0", "import-from-esm": "^2.0.0", "lodash-es": "^4.17.21", "marked": "^15.0.0", "marked-terminal": "^7.3.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", "read-package-up": "^11.0.0", "resolve-from": "^5.0.0", "semver": "^7.3.2", "semver-diff": "^5.0.0", "signale": "^1.2.1", "yargs": "^17.5.1" }, "bin": { "semantic-release": "bin/semantic-release.js" } }, "sha512-phCkJ6pjDi9ANdhuF5ElS10GGdAKY6R1Pvt9lT3SFhOwM4T7QZE7MLpBDbNruUx/Q3gFD92/UOFringGipRqZA=="], @@ -4654,8 +4522,6 @@ "server-only": ["server-only@0.0.1", "", {}, "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA=="], - "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], - "set-cookie-parser": ["set-cookie-parser@2.7.2", "", {}, "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="], "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], @@ -4678,8 +4544,6 @@ "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], - "shimmer": ["shimmer@1.2.1", "", {}, "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="], - "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], @@ -4700,7 +4564,7 @@ "skin-tone": ["skin-tone@2.0.0", "", { "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" } }, "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA=="], - "slash": ["slash@5.1.0", "", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="], + "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], "slug": ["slug@6.1.0", "", {}, "sha512-x6vLHCMasg4DR2LPiyFGI0gJJhywY6DTiGhCrOMzb3SOk/0JVLIaL4UhyFSHu04SD3uAavrKY/K3zZ3i6iRcgA=="], @@ -4730,7 +4594,7 @@ "sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], - "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], @@ -4756,8 +4620,6 @@ "ssf": ["ssf@0.11.2", "", { "dependencies": { "frac": "~1.1.2" } }, "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g=="], - "sshpk": ["sshpk@1.18.0", "", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="], - "stable-hash": ["stable-hash@0.0.5", "", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="], "stack-generator": ["stack-generator@2.0.10", "", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ=="], @@ -4818,14 +4680,12 @@ "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], - "strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], - "strip-bom-string": ["strip-bom-string@1.0.0", "", {}, "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g=="], - "strip-final-newline": ["strip-final-newline@4.0.0", "", {}, "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw=="], "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], @@ -4880,8 +4740,6 @@ "synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], - "syncpack": ["syncpack@13.0.4", "", { "dependencies": { "chalk": "^5.4.1", "chalk-template": "^1.1.0", "commander": "^13.1.0", "cosmiconfig": "^9.0.0", "effect": "^3.13.7", "enquirer": "^2.4.1", "fast-check": "^3.23.2", "globby": "^14.1.0", "jsonc-parser": "^3.3.1", "minimatch": "9.0.5", "npm-package-arg": "^12.0.2", "ora": "^8.2.0", "prompts": "^2.4.2", "read-yaml-file": "^2.1.0", "semver": "^7.7.1", "tightrope": "0.2.0", "ts-toolbelt": "^9.6.0" }, "bin": { "syncpack": "dist/bin.js", "syncpack-lint": "dist/bin-lint/index.js", "syncpack-list": "dist/bin-list/index.js", "syncpack-format": "dist/bin-format/index.js", "syncpack-prompt": "dist/bin-prompt/index.js", "syncpack-update": "dist/bin-update/index.js", "syncpack-fix-mismatches": "dist/bin-fix-mismatches/index.js", "syncpack-list-mismatches": "dist/bin-list-mismatches/index.js", "syncpack-set-semver-ranges": "dist/bin-set-semver-ranges/index.js", "syncpack-lint-semver-ranges": "dist/bin-lint-semver-ranges/index.js" } }, "sha512-kJ9VlRxNCsBD5pJAE29oXeBYbPLhEySQmK4HdpsLv81I6fcDDW17xeJqMwiU3H7/woAVsbgq25DJNS8BeiN5+w=="], - "tailwind-merge": ["tailwind-merge@2.6.0", "", {}, "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA=="], "tailwindcss": ["tailwindcss@4.1.17", "", {}, "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q=="], @@ -4934,8 +4792,6 @@ "through2": ["through2@2.0.5", "", { "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ=="], - "tightrope": ["tightrope@0.2.0", "", {}, "sha512-Kw36UHxJEELq2VUqdaSGR2/8cAsPgMtvX8uGVU6Jk26O66PhXec0A5ZnRYs47btbtwPDpXXF66+Fo3vimCM9aQ=="], - "time-span": ["time-span@5.1.0", "", { "dependencies": { "convert-hrtime": "^5.0.0" } }, "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA=="], "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], @@ -5004,8 +4860,6 @@ "ts-pattern": ["ts-pattern@5.9.0", "", {}, "sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg=="], - "ts-toolbelt": ["ts-toolbelt@9.6.0", "", {}, "sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w=="], - "tsafe": ["tsafe@1.8.12", "", {}, "sha512-nFRqW0ttu/2o6XTXsHiVZWJBCOaxhVqZLg7dgs3coZNsCMPXPfwz+zPHAQA+70fNnVJLAPg1EgGIqK9Q84tvAw=="], "tsconfck": ["tsconfck@3.1.3", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ=="], @@ -5014,17 +4868,17 @@ "tsconfig-paths-webpack-plugin": ["tsconfig-paths-webpack-plugin@4.2.0", "", { "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.7.0", "tapable": "^2.2.1", "tsconfig-paths": "^4.1.2" } }, "sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA=="], + "tsdown": ["tsdown@0.16.5", "", { "dependencies": { "ansis": "^4.2.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "diff": "^8.0.2", "empathic": "^2.0.0", "hookable": "^5.5.3", "obug": "^2.0.0", "rolldown": "1.0.0-beta.50", "rolldown-plugin-dts": "^0.17.7", "semver": "^7.7.3", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tree-kill": "^1.2.2", "unconfig-core": "^7.4.1", "unrun": "^0.2.10" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@vitejs/devtools": "^0.0.0-alpha.17", "publint": "^0.3.0", "typescript": "^5.0.0", "unplugin-lightningcss": "^0.4.0", "unplugin-unused": "^0.5.0" }, "optionalPeers": ["@arethetypeswrong/core", "@vitejs/devtools", "publint", "typescript", "unplugin-lightningcss", "unplugin-unused"], "bin": { "tsdown": "dist/run.mjs" } }, "sha512-jo/2MmJI1uNJ+QvwEfF/2DcICd2Bc/Gc/XIVJS9Gvfns7ji5TgUeu3kYfG8nA/mGgWXU8REpTNweIcVJQoSLAQ=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "tsscmp": ["tsscmp@1.0.6", "", {}, "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="], "tsup": ["tsup@8.5.1", "", { "dependencies": { "bundle-require": "^5.1.0", "cac": "^6.7.14", "chokidar": "^4.0.3", "consola": "^3.4.0", "debug": "^4.4.0", "esbuild": "^0.27.0", "fix-dts-default-cjs-exports": "^1.0.0", "joycon": "^3.1.1", "picocolors": "^1.1.1", "postcss-load-config": "^6.0.1", "resolve-from": "^5.0.0", "rollup": "^4.34.8", "source-map": "^0.7.6", "sucrase": "^3.35.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.11", "tree-kill": "^1.2.2" }, "peerDependencies": { "@microsoft/api-extractor": "^7.36.0", "@swc/core": "^1", "postcss": "^8.4.12", "typescript": ">=4.5.0" }, "optionalPeers": ["@microsoft/api-extractor", "@swc/core", "postcss", "typescript"], "bin": { "tsup": "dist/cli-default.js", "tsup-node": "dist/cli-node.js" } }, "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing=="], - "tsyringe": ["tsyringe@4.10.0", "", { "dependencies": { "tslib": "^1.9.3" } }, "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw=="], - - "tunnel": ["tunnel@0.0.6", "", {}, "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="], + "tsx": ["tsx@4.20.6", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg=="], - "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], + "tsyringe": ["tsyringe@4.10.0", "", { "dependencies": { "tslib": "^1.9.3" } }, "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw=="], "tunnel-rat": ["tunnel-rat@0.1.2", "", { "dependencies": { "zustand": "^4.3.2" } }, "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ=="], @@ -5042,8 +4896,6 @@ "turbo-windows-arm64": ["turbo-windows-arm64@2.6.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-7w+AD5vJp3R+FB0YOj1YJcNcOOvBior7bcHTodqp90S3x3bLgpr7tE6xOea1e8JkP7GK6ciKVUpQvV7psiwU5Q=="], - "tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="], - "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], "type-detect": ["type-detect@4.0.8", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="], @@ -5084,6 +4936,8 @@ "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], + "unconfig-core": ["unconfig-core@7.4.1", "", { "dependencies": { "@quansync/fs": "^0.1.5", "quansync": "^0.2.11" } }, "sha512-Bp/bPZjV2Vl/fofoA2OYLSnw1Z0MOhCX7zHnVCYrazpfZvseBbGhwcNQMxsg185Mqh7VZQqK3C8hFG/Dyng+yA=="], + "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], "undici": ["undici@7.16.0", "", {}, "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g=="], @@ -5112,12 +4966,12 @@ "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], - "unpdf": ["unpdf@1.4.0", "", { "peerDependencies": { "@napi-rs/canvas": "^0.1.69" }, "optionalPeers": ["@napi-rs/canvas"] }, "sha512-TahIk0xdH/4jh/MxfclzU79g40OyxtP00VnEUZdEkJoYtXAHWLiir6t3FC6z3vDqQTzc2ZHcla6uEiVTNjejuA=="], - "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], "unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], + "unrun": ["unrun@0.2.10", "", { "dependencies": { "@oxc-project/runtime": "^0.97.0", "rolldown": "1.0.0-beta.50" }, "peerDependencies": { "synckit": "^0.11.11" }, "optionalPeers": ["synckit"], "bin": { "unrun": "dist/cli.mjs" } }, "sha512-IcQCpGp3oawzr2ANNmMCh2XNssrDueQvoOfC/ranG4Enq0vVCCLfen+sJTaLYKR22vxZttF2KvvaubgbUadTqA=="], + "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], "uploadthing": ["uploadthing@7.7.4", "", { "dependencies": { "@effect/platform": "0.90.3", "@standard-schema/spec": "1.0.0-beta.4", "@uploadthing/mime-types": "0.3.6", "@uploadthing/shared": "7.1.10", "effect": "3.17.7" }, "peerDependencies": { "express": "*", "h3": "*", "tailwindcss": "^3.0.0 || ^4.0.0-beta.0" }, "optionalPeers": ["express", "h3", "tailwindcss"] }, "sha512-rlK/4JWHW5jP30syzWGBFDDXv3WJDdT8gn9OoxRJmXLoXi94hBmyyjxihGlNrKhBc81czyv8TkzMioe/OuKGfA=="], @@ -5154,7 +5008,7 @@ "utrie": ["utrie@1.0.2", "", { "dependencies": { "base64-arraybuffer": "^1.0.2" } }, "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw=="], - "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], + "uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], "v8-compile-cache-lib": ["v8-compile-cache-lib@3.0.1", "", {}, "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="], @@ -5162,16 +5016,12 @@ "validate-npm-package-license": ["validate-npm-package-license@3.0.4", "", { "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="], - "validate-npm-package-name": ["validate-npm-package-name@6.0.2", "", {}, "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ=="], - "validator": ["validator@13.15.23", "", {}, "sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw=="], "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], "vaul": ["vaul@0.9.9", "", { "dependencies": { "@radix-ui/react-dialog": "^1.1.1" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, "sha512-7afKg48srluhZwIkaU+lgGtFCUsYBSGOl8vcc8N/M3YQlZFlynHD15AE+pwrYdc826o7nrIND4lL9Y6b9WWZZQ=="], - "verror": ["verror@1.10.0", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="], - "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], @@ -5220,8 +5070,6 @@ "webpack-sources": ["webpack-sources@3.3.3", "", {}, "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg=="], - "wemoji": ["wemoji@0.1.9", "", {}, "sha512-TfrWnxn9cXQ6yZUUQuOxJkppsNMSPHDTtjH/ktX/vzfCgXiXx/FhRl7t6tP3j9acyfVXUYuIvqeUv5mY9fUZEg=="], - "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], @@ -5240,8 +5088,6 @@ "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], - "wide-align": ["wide-align@1.1.5", "", { "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg=="], - "wmf": ["wmf@1.0.2", "", {}, "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="], "word": ["word@0.3.0", "", {}, "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="], @@ -5298,11 +5144,11 @@ "zip-stream": ["zip-stream@6.0.1", "", { "dependencies": { "archiver-utils": "^5.0.0", "compress-commons": "^6.0.2", "readable-stream": "^4.0.0" } }, "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA=="], - "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], "zod-error": ["zod-error@1.5.0", "", { "dependencies": { "zod": "^3.20.2" } }, "sha512-zzopKZ/skI9iXpqCEPj+iLCKl9b88E43ehcU+sbRoHuwGd9F1IDVGQ70TyO6kmfiRL1g4IXkjsXK+g1gLYl4WQ=="], - "zod-to-json-schema": ["zod-to-json-schema@3.24.6", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg=="], + "zod-to-json-schema": ["zod-to-json-schema@3.25.0", "", { "peerDependencies": { "zod": "^3.25 || ^4" } }, "sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ=="], "zod-validation-error": ["zod-validation-error@1.5.0", "", { "peerDependencies": { "zod": "^3.18.0" } }, "sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw=="], @@ -5322,8 +5168,6 @@ "@angular-devkit/schematics/magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], - "@angular-devkit/schematics/ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], - "@angular-devkit/schematics/rxjs": ["rxjs@7.8.1", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg=="], "@angular-devkit/schematics-cli/@inquirer/prompts": ["@inquirer/prompts@7.3.2", "", { "dependencies": { "@inquirer/checkbox": "^4.1.2", "@inquirer/confirm": "^5.1.6", "@inquirer/editor": "^4.2.7", "@inquirer/expand": "^4.0.9", "@inquirer/input": "^4.1.6", "@inquirer/number": "^3.0.9", "@inquirer/password": "^4.0.9", "@inquirer/rawlist": "^4.0.9", "@inquirer/search": "^3.0.9", "@inquirer/select": "^4.0.9" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ=="], @@ -5334,19 +5178,7 @@ "@aws-crypto/util/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], - "@azure/core-auth/@azure/abort-controller": ["@azure/abort-controller@2.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA=="], - - "@azure/core-client/@azure/abort-controller": ["@azure/abort-controller@2.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA=="], - - "@azure/core-http/@azure/core-tracing": ["@azure/core-tracing@1.0.0-preview.13", "", { "dependencies": { "@opentelemetry/api": "^1.0.1", "tslib": "^2.2.0" } }, "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ=="], - - "@azure/core-http/xml2js": ["xml2js@0.5.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA=="], - - "@azure/core-rest-pipeline/@azure/abort-controller": ["@azure/abort-controller@2.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA=="], - - "@azure/core-util/@azure/abort-controller": ["@azure/abort-controller@2.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA=="], - - "@azure/identity/@azure/abort-controller": ["@azure/abort-controller@2.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA=="], + "@azure/msal-node/uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], @@ -5354,8 +5186,6 @@ "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@better-auth/core/zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], - "@browserbasehq/sdk/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], "@calcom/atoms/class-variance-authority": ["class-variance-authority@0.4.0", "", { "peerDependencies": { "typescript": ">= 4.5.5 < 5" }, "optionalPeers": ["typescript"] }, "sha512-74enNN8O9ZNieycac/y8FxqgyzZhZbxmCitAtAeUrLPlxjSd5zA7LfpprmxEcOmQBnaGs5hYhiSGnJ0mqrtBLQ=="], @@ -5378,10 +5208,6 @@ "@commitlint/types/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - "@comp/api/zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], - - "@comp/app/resend": ["resend@4.8.0", "", { "dependencies": { "@react-email/render": "1.1.2" } }, "sha512-R8eBOFQDO6dzRTDmaMEdpqrkmgSjPpVXt4nGfWsZdYOet0kqra0xgbvTES6HmCriZEXbmGk3e0DiGIaLFTFSHA=="], - "@cspotcode/source-map-support/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], "@discordjs/rest/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="], @@ -5392,55 +5218,45 @@ "@discordjs/ws/@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], + "@dub/better-auth/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "@dub/embed-react/vite": ["vite@5.2.9", "", { "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", "rollup": "^4.13.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "@eslint/config-array/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], - "@eslint/eslintrc/js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], - - "@eslint/eslintrc/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "@inquirer/core/wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], "@inquirer/external-editor/iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="], "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], "@istanbuljs/load-nyc-config/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "@jest/console/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "@istanbuljs/load-nyc-config/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], "@jest/core/ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], - "@jest/core/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "@jest/reporters/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], "@jest/reporters/jest-worker": ["jest-worker@30.2.0", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g=="], - "@jest/reporters/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "@mendable/firecrawl-js/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@jest/test-sequencer/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "@modelcontextprotocol/sdk/raw-body": ["raw-body@3.0.1", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.7.0", "unpipe": "1.0.0" } }, "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA=="], - "@jest/transform/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "@modelcontextprotocol/sdk/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@nangohq/types/type-fest": ["type-fest@4.32.0", "", {}, "sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw=="], - "@nestjs/cli/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - - "@nestjs/cli/glob": ["glob@11.0.3", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA=="], - - "@nestjs/cli/ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], - - "@nestjs/cli/typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + "@nestjs/cli/glob": ["glob@12.0.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw=="], "@nestjs/config/dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], @@ -5448,18 +5264,12 @@ "@nestjs/schematics/@angular-devkit/schematics": ["@angular-devkit/schematics@19.2.17", "", { "dependencies": { "@angular-devkit/core": "19.2.17", "jsonc-parser": "3.3.1", "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" } }, "sha512-ADfbaBsrG8mBF6Mfs+crKA/2ykB8AJI50Cv9tKmZfwcUcyAdmTr+vVvhsBCfvUAEokigSsgqgpYxfkJVxhJYeg=="], - "@nestjs/swagger/js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], - "@next/eslint-plugin-next/fast-glob": ["fast-glob@3.3.1", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" } }, "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg=="], - "@novu/api/zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], - "@novu/js/socket.io-client": ["socket.io-client@4.7.2", "", { "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", "engine.io-client": "~6.5.2", "socket.io-parser": "~4.2.4" } }, "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w=="], "@octokit/plugin-paginate-rest/@octokit/types": ["@octokit/types@15.0.2", "", { "dependencies": { "@octokit/openapi-types": "^26.0.0" } }, "sha512-rR+5VRjhYSer7sC51krfCctQhVTmjyUMAaShfPB8mscVa8tSoLyon3coxQmXu0ahJoLVWl8dSGD/3OGZlFV44Q=="], - "@opentelemetry/instrumentation/@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A=="], - "@paralleldrive/cuid2/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], "@parcel/watcher/detect-libc": ["detect-libc@1.0.3", "", { "bin": { "detect-libc": "./bin/detect-libc.js" } }, "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg=="], @@ -5468,12 +5278,6 @@ "@pnpm/network.ca-file/graceful-fs": ["graceful-fs@4.2.10", "", {}, "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="], - "@prisma/engines/@prisma/debug": ["@prisma/debug@6.19.0", "", {}, "sha512-8hAdGG7JmxrzFcTzXZajlQCidX0XNkMJkpqtfbLV54wC6LSSX6Vni25W/G+nAANwLnZ2TmwkfIuWetA7jJxJFA=="], - - "@prisma/fetch-engine/@prisma/debug": ["@prisma/debug@6.19.0", "", {}, "sha512-8hAdGG7JmxrzFcTzXZajlQCidX0XNkMJkpqtfbLV54wC6LSSX6Vni25W/G+nAANwLnZ2TmwkfIuWetA7jJxJFA=="], - - "@prisma/get-platform/@prisma/debug": ["@prisma/debug@6.19.0", "", {}, "sha512-8hAdGG7JmxrzFcTzXZajlQCidX0XNkMJkpqtfbLV54wC6LSSX6Vni25W/G+nAANwLnZ2TmwkfIuWetA7jJxJFA=="], - "@radix-ui/react-accordion/@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA=="], "@radix-ui/react-alert-dialog/@radix-ui/primitive": ["@radix-ui/primitive@1.1.2", "", {}, "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA=="], @@ -5582,6 +5386,8 @@ "@slack/oauth/@slack/web-api": ["@slack/web-api@6.13.0", "", { "dependencies": { "@slack/logger": "^3.0.0", "@slack/types": "^2.11.0", "@types/is-stream": "^1.1.0", "@types/node": ">=12.0.0", "axios": "^1.7.4", "eventemitter3": "^3.1.0", "form-data": "^2.5.0", "is-electron": "2.2.2", "is-stream": "^1.1.0", "p-queue": "^6.6.1", "p-retry": "^4.0.0" } }, "sha512-dv65crIgdh9ZYHrevLU6XFHTQwTyDmNqEqzuIrV+Vqe/vgiG6w37oex5ePDU1RGm2IJ90H8iOvHFvzdEO/vB+g=="], + "@slack/oauth/@types/jsonwebtoken": ["@types/jsonwebtoken@8.5.9", "", { "dependencies": { "@types/node": "*" } }, "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg=="], + "@slack/socket-mode/@slack/logger": ["@slack/logger@3.0.0", "", { "dependencies": { "@types/node": ">=12.0.0" } }, "sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA=="], "@slack/socket-mode/@slack/web-api": ["@slack/web-api@6.13.0", "", { "dependencies": { "@slack/logger": "^3.0.0", "@slack/types": "^2.11.0", "@types/is-stream": "^1.1.0", "@types/node": ">=12.0.0", "axios": "^1.7.4", "eventemitter3": "^3.1.0", "form-data": "^2.5.0", "is-electron": "2.2.2", "is-stream": "^1.1.0", "p-queue": "^6.6.1", "p-retry": "^4.0.0" } }, "sha512-dv65crIgdh9ZYHrevLU6XFHTQwTyDmNqEqzuIrV+Vqe/vgiG6w37oex5ePDU1RGm2IJ90H8iOvHFvzdEO/vB+g=="], @@ -5608,8 +5414,6 @@ "@testing-library/jest-dom/dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="], - "@trigger.dev/core/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.203.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.203.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ=="], - "@trigger.dev/core/execa": ["execa@8.0.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" } }, "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg=="], "@trigger.dev/core/jose": ["jose@5.10.0", "", {}, "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg=="], @@ -5620,28 +5424,20 @@ "@trigger.dev/core/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], - "@trigger.dev/sdk/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - - "@trigger.dev/sdk/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], - - "@trycompai/db/dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], + "@trigger.dev/core/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@trycompai/email/resend": ["resend@4.8.0", "", { "dependencies": { "@react-email/render": "1.1.2" } }, "sha512-R8eBOFQDO6dzRTDmaMEdpqrkmgSjPpVXt4nGfWsZdYOet0kqra0xgbvTES6HmCriZEXbmGk3e0DiGIaLFTFSHA=="], + "@trigger.dev/sdk/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - "@trycompai/integrations/zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - "@trycompai/ui/lucide-react": ["lucide-react@0.553.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-BRgX5zrWmNy/lkVAe0dXBgd7XQdZ3HTf+Hwe3c9WK6dqgnj9h+hxV+MDncM88xDWlCq27+TKvHGE70ViODNILw=="], + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "@unrs/resolver-binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], "@uploadthing/shared/effect": ["effect@3.17.7", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-dpt0ONUn3zzAuul6k4nC/coTTw27AL5nhkORXgTi6NfMPzqWYa1M05oKmOMTxpVSTKepqXVcW9vIwkuaaqx9zA=="], "@vercel/sandbox/zod": ["zod@3.24.4", "", {}, "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg=="], - "@vercel/sdk/zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], - - "accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "ajv-formats/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], @@ -5650,12 +5446,6 @@ "archiver-utils/is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], - "are-we-there-yet/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - - "babel-jest/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - - "better-auth/zod": ["zod@4.1.12", "", {}, "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ=="], - "bl/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], "bl/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], @@ -5672,42 +5462,40 @@ "chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "chalk-template/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + "chromium-bidi/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "cli-highlight/parse5": ["parse5@5.1.1", "", {}, "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="], - "cli-highlight/parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@6.0.1", "", { "dependencies": { "parse5": "^6.0.1" } }, "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA=="], - "cli-highlight/yargs": ["yargs@16.2.0", "", { "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="], - "cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "compress-commons/is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], "concat-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - "cosmiconfig/js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], - "cosmiconfig/parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], "cosmiconfig-typescript-loader/jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], "crypto-random-string/type-fest": ["type-fest@1.4.0", "", {}, "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA=="], - "css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "d3-dsv/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], "decode-named-character-reference/character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], "discord.js/undici": ["undici@6.21.3", "", {}, "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw=="], - "dotenv-expand/dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], + "dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "dotenv-expand/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + + "dub/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "duplexer2/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], "ecdsa-sig-formatter/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "engine.io/accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "engine.io/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], "engine.io/ws": ["ws@8.17.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ=="], @@ -5716,15 +5504,11 @@ "engine.io-client/ws": ["ws@8.17.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ=="], - "enquirer/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "env-ci/execa": ["execa@8.0.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" } }, "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg=="], "es-get-iterator/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], - "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "eslint/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "eslint-config-next/globals": ["globals@16.4.0", "", {}, "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw=="], "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], @@ -5732,28 +5516,24 @@ "eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "eslint-plugin-import/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "eslint-plugin-import/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "eslint-plugin-import/tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], "eslint-plugin-jsx-a11y/aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], - "eslint-plugin-jsx-a11y/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - - "eslint-plugin-react/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "eslint-plugin-react/resolve": ["resolve@2.0.0-next.5", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="], "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "execa/get-stream": ["get-stream@9.0.1", "", { "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" } }, "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA=="], + "eslint-plugin-react-hooks/zod-validation-error": ["zod-validation-error@4.0.2", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="], - "express/accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], + "execa/get-stream": ["get-stream@9.0.1", "", { "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" } }, "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA=="], "extract-zip/get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + "fast-check/pure-rand": ["pure-rand@6.1.0", "", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="], + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "fast-png/pako": ["pako@2.1.0", "", {}, "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="], @@ -5764,21 +5544,11 @@ "fork-ts-checker-webpack-plugin/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], - "fork-ts-checker-webpack-plugin/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "form-data/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], "from2/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - "fstream/mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], - - "fstream/rimraf": ["rimraf@2.7.1", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="], - - "gauge/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - - "gauge/string-width": ["string-width@1.0.2", "", { "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw=="], - - "gauge/strip-ansi": ["strip-ansi@3.0.1", "", { "dependencies": { "ansi-regex": "^2.0.0" } }, "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg=="], + "giget/nypm": ["nypm@0.6.2", "", { "dependencies": { "citty": "^0.1.6", "consola": "^3.4.2", "pathe": "^2.0.3", "pkg-types": "^2.3.0", "tinyexec": "^1.0.1" }, "bin": { "nypm": "dist/cli.mjs" } }, "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g=="], "git-raw-commits/meow": ["meow@12.1.1", "", {}, "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw=="], @@ -5788,16 +5558,6 @@ "global-directory/ini": ["ini@4.1.1", "", {}, "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g=="], - "globby/@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@2.3.0", "", {}, "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg=="], - - "globby/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - - "globby/path-type": ["path-type@6.0.0", "", {}, "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ=="], - - "globby/unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="], - - "handlebars/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "hast-util-from-parse5/hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], "hast-util-to-parse5/property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], @@ -5810,11 +5570,7 @@ "hastscript/space-separated-tokens": ["space-separated-tokens@1.1.5", "", {}, "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA=="], - "hoist-non-react-statics/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - - "html-to-text/htmlparser2": ["htmlparser2@8.0.2", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA=="], - - "htmlparser2/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "htmlparser2/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "http-errors/statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], @@ -5828,30 +5584,18 @@ "jest-changed-files/execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - "jest-circus/pure-rand": ["pure-rand@7.0.1", "", {}, "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ=="], - - "jest-circus/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "jest-config/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], "jest-config/parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "jest-config/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "jest-haste-map/jest-worker": ["jest-worker@30.2.0", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g=="], - "jest-message-util/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - - "jest-resolve/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "jest-runner/jest-worker": ["jest-worker@30.2.0", "", { "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" } }, "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g=="], "jest-runner/source-map-support": ["source-map-support@0.5.13", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], "jest-runtime/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], - "jest-runtime/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "jest-runtime/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], "jest-watcher/ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], @@ -5866,7 +5610,7 @@ "load-json-file/parse-json": ["parse-json@4.0.0", "", { "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw=="], - "markdown-it/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "markdown-it/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "marked-terminal/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], @@ -5890,16 +5634,6 @@ "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], - "node-gyp/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "node-gyp/rimraf": ["rimraf@2.7.1", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="], - - "node-gyp/semver": ["semver@5.3.0", "", { "bin": { "semver": "./bin/semver" } }, "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw=="], - - "node-gyp/tar": ["tar@2.2.2", "", { "dependencies": { "block-stream": "*", "fstream": "^1.0.12", "inherits": "2" } }, "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA=="], - - "node-gyp/which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="], - "normalize-package-data/hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], "npm/@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], @@ -6262,26 +5996,20 @@ "nypm/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], - "ora/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + "ora/is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], - "ora/log-symbols": ["log-symbols@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" } }, "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw=="], - - "ora/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + "ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], "p-event/p-timeout": ["p-timeout@6.1.4", "", {}, "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg=="], "p-queue/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - "parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "parse5-htmlparser2-tree-adapter/parse5": ["parse5@6.0.1", "", {}, "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="], "path-scurry/lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="], "pdf-lib/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - "pg-types/postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], - - "pgpass/split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], - "pkg-conf/find-up": ["find-up@2.1.0", "", { "dependencies": { "locate-path": "^2.0.0" } }, "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ=="], "pkg-dir/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], @@ -6312,13 +6040,13 @@ "react-dropzone/file-selector": ["file-selector@2.1.2", "", { "dependencies": { "tslib": "^2.7.0" } }, "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig=="], - "react-promise-suspense/fast-deep-equal": ["fast-deep-equal@2.0.1", "", {}, "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w=="], + "react-email/commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="], - "read-cache/pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], + "react-email/ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="], - "read-yaml-file/js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + "react-promise-suspense/fast-deep-equal": ["fast-deep-equal@2.0.1", "", {}, "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w=="], - "read-yaml-file/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], + "read-cache/pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], "readdir-glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], @@ -6326,19 +6054,9 @@ "refractor/prismjs": ["prismjs@1.27.0", "", {}, "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA=="], - "request/form-data": ["form-data@2.3.3", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="], - - "request/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - - "request/qs": ["qs@6.5.3", "", {}, "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="], - - "request/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - - "request/tough-cookie": ["tough-cookie@2.5.0", "", { "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="], - - "request/uuid": ["uuid@3.4.0", "", { "bin": { "uuid": "./bin/uuid" } }, "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="], + "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "restore-cursor/onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="], + "rolldown/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.50", "", {}, "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA=="], "safe-array-concat/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], @@ -6358,6 +6076,8 @@ "signale/figures": ["figures@2.0.0", "", { "dependencies": { "escape-string-regexp": "^1.0.5" } }, "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA=="], + "socket.io/accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "socket.io/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], "socket.io-adapter/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], @@ -6368,8 +6088,6 @@ "socket.io-parser/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], - "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], "stacktrace-gps/source-map": ["source-map@0.5.6", "", {}, "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA=="], @@ -6378,26 +6096,20 @@ "stream-combiner2/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - "string-length/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], "stringify-entities/character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + "strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "strip-ansi-cjs/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "strip-literal/js-tokens": ["js-tokens@9.0.1", "", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="], - "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - "sucrase/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], "superagent/mime": ["mime@2.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="], @@ -6408,8 +6120,6 @@ "svix/uuid": ["uuid@10.0.0", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ=="], - "syncpack/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], - "tar/mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], "tempy/is-stream": ["is-stream@3.0.0", "", {}, "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA=="], @@ -6422,28 +6132,28 @@ "test-exclude/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "test-exclude/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "three-stdlib/fflate": ["fflate@0.6.10", "", {}, "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="], "through2/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "ts-loader/source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], + + "ts-node/diff": ["diff@4.0.2", "", {}, "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="], + "tsup/esbuild": ["esbuild@0.27.0", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.0", "@esbuild/android-arm": "0.27.0", "@esbuild/android-arm64": "0.27.0", "@esbuild/android-x64": "0.27.0", "@esbuild/darwin-arm64": "0.27.0", "@esbuild/darwin-x64": "0.27.0", "@esbuild/freebsd-arm64": "0.27.0", "@esbuild/freebsd-x64": "0.27.0", "@esbuild/linux-arm": "0.27.0", "@esbuild/linux-arm64": "0.27.0", "@esbuild/linux-ia32": "0.27.0", "@esbuild/linux-loong64": "0.27.0", "@esbuild/linux-mips64el": "0.27.0", "@esbuild/linux-ppc64": "0.27.0", "@esbuild/linux-riscv64": "0.27.0", "@esbuild/linux-s390x": "0.27.0", "@esbuild/linux-x64": "0.27.0", "@esbuild/netbsd-arm64": "0.27.0", "@esbuild/netbsd-x64": "0.27.0", "@esbuild/openbsd-arm64": "0.27.0", "@esbuild/openbsd-x64": "0.27.0", "@esbuild/openharmony-arm64": "0.27.0", "@esbuild/sunos-x64": "0.27.0", "@esbuild/win32-arm64": "0.27.0", "@esbuild/win32-ia32": "0.27.0", "@esbuild/win32-x64": "0.27.0" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA=="], + "tsup/source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], + "tsup/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], "tsyringe/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - "tunnel-agent/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "tunnel-rat/zustand": ["zustand@4.5.7", "", { "dependencies": { "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "@types/react": ">=16.8", "immer": ">=9.0.6", "react": ">=16.8" }, "optionalPeers": ["@types/react", "immer", "react"] }, "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw=="], "uploadthing/@standard-schema/spec": ["@standard-schema/spec@1.0.0-beta.4", "", {}, "sha512-d3IxtzLo7P1oZ8s8YNvxzBUXRXojSut8pbPrTYtzsc5sn4+53jVqbk66pQerSZbZSJZQux6LkclB/+8IDordHg=="], "uploadthing/effect": ["effect@3.17.7", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-dpt0ONUn3zzAuul6k4nC/coTTw27AL5nhkORXgTi6NfMPzqWYa1M05oKmOMTxpVSTKepqXVcW9vIwkuaaqx9zA=="], - "verror/core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], - "vitest/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], "webpack/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], @@ -6454,23 +6164,11 @@ "which-builtin-type/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], - "wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "yauzl/buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], - "@angular-devkit/core/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - - "@angular-devkit/schematics/ora/cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], + "zod-error/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@angular-devkit/schematics/ora/is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], - - "@angular-devkit/schematics/ora/is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], - - "@angular-devkit/schematics/ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], - - "@angular-devkit/schematics/ora/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "@angular-devkit/core/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], @@ -6500,39 +6198,25 @@ "@commitlint/top-level/find-up/path-exists": ["path-exists@5.0.0", "", {}, "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ=="], - "@comp/app/resend/@react-email/render": ["@react-email/render@1.1.2", "", { "dependencies": { "html-to-text": "^9.0.5", "prettier": "^3.5.3", "react-promise-suspense": "^0.3.4" }, "peerDependencies": { "react": "^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-RnRehYN3v9gVlNMehHPHhyp2RQo7+pSkHDtXPvg3s0GbzM9SQMW4Qrf8GRNvtpLC4gsI+Wt0VatNRUFqjvevbw=="], - "@dub/embed-react/vite/esbuild": ["esbuild@0.20.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.20.2", "@esbuild/android-arm": "0.20.2", "@esbuild/android-arm64": "0.20.2", "@esbuild/android-x64": "0.20.2", "@esbuild/darwin-arm64": "0.20.2", "@esbuild/darwin-x64": "0.20.2", "@esbuild/freebsd-arm64": "0.20.2", "@esbuild/freebsd-x64": "0.20.2", "@esbuild/linux-arm": "0.20.2", "@esbuild/linux-arm64": "0.20.2", "@esbuild/linux-ia32": "0.20.2", "@esbuild/linux-loong64": "0.20.2", "@esbuild/linux-mips64el": "0.20.2", "@esbuild/linux-ppc64": "0.20.2", "@esbuild/linux-riscv64": "0.20.2", "@esbuild/linux-s390x": "0.20.2", "@esbuild/linux-x64": "0.20.2", "@esbuild/netbsd-x64": "0.20.2", "@esbuild/openbsd-x64": "0.20.2", "@esbuild/sunos-x64": "0.20.2", "@esbuild/win32-arm64": "0.20.2", "@esbuild/win32-ia32": "0.20.2", "@esbuild/win32-x64": "0.20.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g=="], - "@eslint/config-array/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "@eslint/eslintrc/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - - "@eslint/eslintrc/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "@inquirer/core/wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], "@istanbuljs/load-nyc-config/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "@jest/core/ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], "@jest/reporters/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - "@jest/reporters/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - - "@nestjs/cli/glob/minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="], - - "@nestjs/cli/ora/cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], - - "@nestjs/cli/ora/is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], + "@jest/reporters/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "@nestjs/cli/ora/is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], + "@jest/reporters/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - "@nestjs/cli/ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], + "@modelcontextprotocol/sdk/raw-body/iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="], - "@nestjs/cli/ora/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "@nestjs/cli/glob/minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="], "@nestjs/schematics/@angular-devkit/core/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], @@ -6544,12 +6228,8 @@ "@nestjs/schematics/@angular-devkit/schematics/magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], - "@nestjs/schematics/@angular-devkit/schematics/ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], - "@nestjs/schematics/@angular-devkit/schematics/rxjs": ["rxjs@7.8.1", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg=="], - "@nestjs/swagger/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "@next/eslint-plugin-next/fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "@novu/js/socket.io-client/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], @@ -6598,6 +6278,8 @@ "@slack/bolt/@types/express/@types/express-serve-static-core": ["@types/express-serve-static-core@4.19.7", "", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg=="], + "@slack/bolt/express/accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "@slack/bolt/express/body-parser": ["body-parser@1.20.3", "", { "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" } }, "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="], "@slack/bolt/express/content-disposition": ["content-disposition@0.5.4", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="], @@ -6658,37 +6340,33 @@ "@trigger.dev/core/execa/strip-final-newline": ["strip-final-newline@3.0.0", "", {}, "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw=="], + "@trigger.dev/core/socket.io/accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "@trigger.dev/core/socket.io/debug": ["debug@4.3.7", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ=="], "@trigger.dev/core/socket.io/engine.io": ["engine.io@6.5.5", "", { "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1" } }, "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA=="], - "@trycompai/email/resend/@react-email/render": ["@react-email/render@1.1.2", "", { "dependencies": { "html-to-text": "^9.0.5", "prettier": "^3.5.3", "react-promise-suspense": "^0.3.4" }, "peerDependencies": { "react": "^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^18.0 || ^19.0 || ^19.0.0-rc" } }, "sha512-RnRehYN3v9gVlNMehHPHhyp2RQo7+pSkHDtXPvg3s0GbzM9SQMW4Qrf8GRNvtpLC4gsI+Wt0VatNRUFqjvevbw=="], - - "accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "archiver-utils/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - "archiver-utils/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "archiver-utils/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "are-we-there-yet/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "archiver-utils/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], "body-parser/raw-body/iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="], - "cli-highlight/parse5-htmlparser2-tree-adapter/parse5": ["parse5@6.0.1", "", {}, "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="], - "cli-highlight/yargs/cliui": ["cliui@7.0.4", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="], "cli-highlight/yargs/yargs-parser": ["yargs-parser@20.2.9", "", {}, "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="], - "cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "cosmiconfig/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "duplexer2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], - "enquirer/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "engine.io/accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "engine.io/accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], "env-ci/execa/get-stream": ["get-stream@8.0.1", "", {}, "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA=="], @@ -6702,33 +6380,15 @@ "env-ci/execa/strip-final-newline": ["strip-final-newline@3.0.0", "", {}, "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw=="], - "eslint-plugin-import/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "eslint-plugin-import/tsconfig-paths/json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], - "eslint-plugin-jsx-a11y/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "eslint-plugin-react/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "eslint/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "express/accepts/negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], - - "fork-ts-checker-webpack-plugin/cosmiconfig/js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], - "fork-ts-checker-webpack-plugin/cosmiconfig/parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "fork-ts-checker-webpack-plugin/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "from2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], - "fstream/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "gauge/string-width/is-fullwidth-code-point": ["is-fullwidth-code-point@1.0.0", "", { "dependencies": { "number-is-nan": "^1.0.0" } }, "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw=="], - - "gauge/strip-ansi/ansi-regex": ["ansi-regex@2.1.1", "", {}, "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="], + "giget/nypm/pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="], "hast-util-from-parse5/hastscript/hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], @@ -6748,12 +6408,14 @@ "jest-config/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - "jest-config/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "jest-config/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "jest-runner/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-config/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], "jest-runtime/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + "jest-runtime/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "jest-runtime/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], "jest-watcher/ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], @@ -6784,8 +6446,6 @@ "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "node-gyp/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "npm/@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], "npm/@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], @@ -6822,17 +6482,23 @@ "nypm/pkg-types/confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], - "ora/log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], - - "ora/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], - "pkg-conf/find-up/locate-path": ["locate-path@2.0.0", "", { "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA=="], "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "read-yaml-file/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "react-email/ora/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "react-email/ora/cli-cursor": ["cli-cursor@5.0.0", "", { "dependencies": { "restore-cursor": "^5.0.0" } }, "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw=="], + + "react-email/ora/is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="], + + "react-email/ora/log-symbols": ["log-symbols@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" } }, "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw=="], + + "react-email/ora/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "react-email/ora/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - "request/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "readdir-glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], "semantic-release/aggregate-error/clean-stack": ["clean-stack@5.3.0", "", { "dependencies": { "escape-string-regexp": "5.0.0" } }, "sha512-9ngPTOhYGQqNVSfeJkYXHmF7AGWp4/nN5D/QqNQs3Dvxd1Kk/WpjHfNujKHYUQ/5CoGyOyFNoWSPk5afzP0QVg=="], @@ -6846,16 +6512,16 @@ "signale/figures/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - "stream-combiner2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], - - "string-length/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "socket.io/accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "socket.io/accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], - "string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "stream-combiner2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], "sucrase/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + "sucrase/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "sucrase/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], "svix/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], @@ -6866,8 +6532,6 @@ "terser-webpack-plugin/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], - "test-exclude/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "through2/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], "tsup/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.0", "", { "os": "aix", "cpu": "ppc64" }, "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A=="], @@ -6934,14 +6598,6 @@ "webpack/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], - "wrap-ansi-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "@angular-devkit/schematics/ora/cli-cursor/restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], - - "@angular-devkit/schematics/ora/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], @@ -7000,26 +6656,12 @@ "@dub/embed-react/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.20.2", "", { "os": "win32", "cpu": "x64" }, "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ=="], - "@inquirer/core/wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "@nestjs/cli/ora/cli-cursor/restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], - - "@nestjs/cli/ora/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "@jest/reporters/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], "@nestjs/schematics/@angular-devkit/core/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "@nestjs/schematics/@angular-devkit/schematics/ora/cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], - - "@nestjs/schematics/@angular-devkit/schematics/ora/is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], - - "@nestjs/schematics/@angular-devkit/schematics/ora/is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], - - "@nestjs/schematics/@angular-devkit/schematics/ora/log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], - - "@nestjs/schematics/@angular-devkit/schematics/ora/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "@semantic-release/github/aggregate-error/clean-stack/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], "@semantic-release/npm/aggregate-error/clean-stack/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], @@ -7028,6 +6670,10 @@ "@slack/bolt/@slack/web-api/form-data/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "@slack/bolt/express/accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "@slack/bolt/express/accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], + "@slack/bolt/express/body-parser/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], "@slack/bolt/express/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], @@ -7052,26 +6698,32 @@ "@trigger.dev/core/execa/onetime/mimic-fn": ["mimic-fn@4.0.0", "", {}, "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="], + "@trigger.dev/core/socket.io/accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "@trigger.dev/core/socket.io/accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], + "@trigger.dev/core/socket.io/engine.io/cookie": ["cookie@0.4.2", "", {}, "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="], "@trigger.dev/core/socket.io/engine.io/ws": ["ws@8.17.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ=="], - "cli-highlight/yargs/cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "archiver-utils/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "engine.io/accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "env-ci/execa/npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], "env-ci/execa/onetime/mimic-fn": ["mimic-fn@4.0.0", "", {}, "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="], - "fork-ts-checker-webpack-plugin/cosmiconfig/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "giget/nypm/pkg-types/confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], - "fstream/rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jest-config/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "jest-runtime/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], "mdast-util-mdx-jsx/parse-entities/is-alphanumerical/is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], "multer/type-is/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - "node-gyp/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "npm/@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], "npm/@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], @@ -7104,54 +6756,56 @@ "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "react-email/ora/cli-cursor/restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="], + + "react-email/ora/log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], + + "react-email/ora/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + "semantic-release/aggregate-error/clean-stack/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], "signale/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], "signale/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], + "socket.io/accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + + "sucrase/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "terser-webpack-plugin/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "webpack/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "@angular-devkit/schematics/ora/cli-cursor/restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "@calcom/atoms/tailwindcss/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "@commitlint/top-level/find-up/locate-path/p-locate/p-limit": ["p-limit@4.0.0", "", { "dependencies": { "yocto-queue": "^1.0.0" } }, "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ=="], "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - "@nestjs/cli/ora/cli-cursor/restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - - "@nestjs/schematics/@angular-devkit/schematics/ora/cli-cursor/restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], - - "@nestjs/schematics/@angular-devkit/schematics/ora/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "@slack/bolt/@slack/web-api/form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "@slack/bolt/express/accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "@slack/bolt/express/type-is/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "@slack/oauth/@slack/web-api/form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "@slack/socket-mode/@slack/web-api/form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - "cli-highlight/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "fstream/rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "@trigger.dev/core/socket.io/accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "pkg-conf/find-up/locate-path/p-locate/p-limit": ["p-limit@1.3.0", "", { "dependencies": { "p-try": "^1.0.0" } }, "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q=="], "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "react-email/ora/cli-cursor/restore-cursor/onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="], + "signale/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], "@commitlint/top-level/find-up/locate-path/p-locate/p-limit/yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit/p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], - "@nestjs/schematics/@angular-devkit/schematics/ora/cli-cursor/restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "pkg-dir/find-up/locate-path/p-locate/p-limit/p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], } } diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 000000000..641e878fd --- /dev/null +++ b/bunfig.toml @@ -0,0 +1,2 @@ +[install] +linker = "isolated" diff --git a/package.json b/package.json index 23973f52a..649d1f747 100644 --- a/package.json +++ b/package.json @@ -1,75 +1,20 @@ { "name": "comp", "version": "1.50.0", - "devDependencies": { - "@azure/core-http": "^3.0.5", - "@azure/core-rest-pipeline": "^1.21.0", - "@azure/core-tracing": "^1.2.0", - "@azure/identity": "^4.10.0", - "@commitlint/cli": "^19.8.1", - "@commitlint/config-conventional": "^19.8.1", - "@hookform/resolvers": "^5.1.1", - "@number-flow/react": "^0.5.9", - "@prisma/adapter-pg": "6.10.1", - "@react-email/components": "^0.0.41", - "@react-email/render": "^1.1.2", - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^13.0.1", - "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^11.0.3", - "@semantic-release/npm": "^12.0.1", - "@semantic-release/release-notes-generator": "^14.0.3", - "@types/bun": "^1.2.15", - "@types/d3": "^7.4.3", - "@types/lodash": "^4.17.17", - "@types/react": "^19.1.6", - "@types/react-dom": "^19.1.1", - "ai": "^5.0.0", - "concurrently": "^9.1.2", - "d3": "^7.9.0", - "date-fns": "^4.1.0", - "dayjs": "^1.11.13", - "execa": "^9.0.0", - "gitmoji": "^1.1.1", - "gray-matter": "^4.0.3", - "husky": "^9.1.7", - "prettier": "^3.5.3", - "prettier-plugin-organize-imports": "^4.1.0", - "prettier-plugin-tailwindcss": "^0.6.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-email": "^4.0.15", - "react-hook-form": "^7.61.1", - "semantic-release": "^24.2.8", - "semantic-release-discord": "^1.2.0", - "semantic-release-discord-notifier": "^1.0.11", - "sharp": "^0.34.2", - "syncpack": "^13.0.4", - "tsup": "^8.5.0", - "turbo": "^2.5.4", - "typescript": "^5.8.3", - "use-debounce": "^10.0.4" - }, "engines": { "node": ">=18" }, "lint-staged": { "*.{js,jsx,ts,tsx,json,md}": "prettier --write" }, - "packageManager": "bun@1.1.36", + "packageManager": "bun@1.3.2", "private": true, "scripts": { "build": "turbo build", "check:env": "node scripts/check-unused-env.js", "clean": "git clean -xdf node_modules", "clean:workspaces": "turbo clean", - "deploy:trigger-prod": "npx trigger.dev@4.0.6 deploy", - "deps:check": "syncpack list-mismatches", - "deps:dedupe": "syncpack fix-mismatches && bun install", - "deps:fix": "syncpack fix-mismatches", - "deps:lint": "syncpack lint", - "deps:update": "syncpack update", - "deps:upgrade": "syncpack update && bun install", + "deploy:trigger-prod": "bunx trigger.dev@4.0.6 deploy", "dev": "turbo dev --parallel", "docker:clean": "bun run -F @comp/db docker:clean", "docker:down": "bun run -F @comp/db docker:down", @@ -80,26 +25,37 @@ "test": "turbo test --parallel", "test:release": "node scripts/test-release.js", "typecheck": "turbo typecheck", - "typecheck:ci": "turbo typecheck --filter={apps/**} --filter={packages/**} --filter=!@trycompai/integrations --filter=!@trycompai/ui" + "typecheck:ci": "turbo typecheck --filter={apps/**} --filter={packages/**} --filter=!@trycompai/integrations --filter=!@trycompai/ui", + "postinstall": "bunx sherif@latest" + }, + "devDependencies": { + "@commitlint/cli": "^19.8.1", + "@commitlint/config-conventional": "^19.8.1", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "^13.0.1", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^11.0.3", + "@semantic-release/npm": "^12.0.1", + "@semantic-release/release-notes-generator": "^14.0.3", + "@types/bun": "^1.2.15", + "concurrently": "^9.1.2", + "dotenv": "^17.2.3", + "execa": "^9.0.0", + "husky": "^9.1.7", + "prettier": "^3.5.3", + "prettier-plugin-organize-imports": "^4.1.0", + "prettier-plugin-tailwindcss": "^0.6.0", + "semantic-release": "^24.2.8", + "semantic-release-discord": "^1.2.0", + "semantic-release-discord-notifier": "^1.0.11", + "sharp": "^0.34.2", + "tsdown": "^0.16.5", + "tsx": "^4.20.6", + "turbo": "^2.5.4", + "typescript": "^5.9.2" }, "workspaces": [ "apps/*", - "packages/analytics", - "packages/email", - "packages/integrations", - "packages/kv", - "packages/tsconfig", - "packages/ui", - "packages/utils" - ], - "dependencies": { - "@types/cheerio": "^1.0.0", - "@types/react-syntax-highlighter": "^15.5.13", - "@upstash/vector": "^1.2.2", - "cheerio": "^1.1.2", - "react-syntax-highlighter": "^15.6.6", - "unpdf": "^1.4.0", - "xlsx": "^0.18.5", - "zod": "^3.25.76" - } -} \ No newline at end of file + "packages/*" + ] +} diff --git a/packages/analytics/package.json b/packages/analytics/package.json index 22949a102..68a0ad1de 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -7,8 +7,7 @@ "posthog-node": "^5.8.2" }, "devDependencies": { - "tsup": "^8.5.0", - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "exports": { ".": { @@ -45,12 +44,11 @@ "directory": "packages/analytics" }, "scripts": { - "build": "tsup src/index.ts src/server.ts --format cjs,esm --dts", + "build": "tsdown", "clean": "rm -rf .turbo node_modules dist", - "dev": "tsup src/index.ts src/server.ts --format cjs,esm --watch --dts", + "dev": "tsdown --watch", "format": "prettier --write .", "lint": "prettier --check .", "typecheck": "tsc --noEmit" - }, - "types": "./dist/index.d.ts" + } } diff --git a/packages/analytics/src/server.ts b/packages/analytics/src/server.ts index ac2e62f59..a05a4c850 100644 --- a/packages/analytics/src/server.ts +++ b/packages/analytics/src/server.ts @@ -42,7 +42,9 @@ export async function identify(distinctId: string, properties?: Properties) { await serverInstance.flush(); } -export async function getFeatureFlags(distinctId: string): Promise> { +export async function getFeatureFlags( + distinctId: string, +): Promise> { if (!serverInstance) return {}; const flags = await serverInstance.getAllFlags(distinctId); diff --git a/packages/analytics/tsconfig.json b/packages/analytics/tsconfig.json index ca84e10d6..e413e26d4 100644 --- a/packages/analytics/tsconfig.json +++ b/packages/analytics/tsconfig.json @@ -3,6 +3,7 @@ "include": ["src"], "exclude": ["node_modules"], "compilerOptions": { + "lib": ["ESNext", "DOM", "DOM.Iterable"], "jsx": "react-jsx" } } diff --git a/packages/analytics/tsdown.config.ts b/packages/analytics/tsdown.config.ts new file mode 100644 index 000000000..c2af98631 --- /dev/null +++ b/packages/analytics/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + entry: "src/**/*.ts", + sourcemap: true, + dts: true, +}); diff --git a/packages/db/.gitignore b/packages/db/.gitignore index 7b182107c..2b53ac75c 100644 --- a/packages/db/.gitignore +++ b/packages/db/.gitignore @@ -1,5 +1,35 @@ +# dependencies (bun install) node_modules -generated -# Keep environment variables out of version control + +# output +out +dist +*.tgz +/prisma/generated + +# code coverage +coverage +*.lcov + +# logs +logs +_.log +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# dotenv environment variable files .env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# caches +.eslintcache +.cache +*.tsbuildinfo + +# IntelliJ based IDEs +.idea +# Finder (MacOS) folder config +.DS_Store diff --git a/packages/db/docker-compose.yml b/packages/db/docker-compose.yml index fcc4afebf..25ad631c6 100644 --- a/packages/db/docker-compose.yml +++ b/packages/db/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.7' services: postgres: - image: postgres:17-alpine + image: postgres restart: always environment: - POSTGRES_DB=comp diff --git a/packages/db/package.json b/packages/db/package.json index d1276ac74..e19628499 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -2,20 +2,27 @@ "name": "@trycompai/db", "description": "Database package with Prisma client and schema for Comp AI", "version": "1.3.17", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./src/index.ts" + }, + "./*": { + "types": "./dist/*.d.ts", + "default": "./src/*.ts" + } + }, "dependencies": { - "@prisma/client": "^6.13.0", - "dotenv": "^16.4.5", + "@prisma/client": "^6.19.0", + "dotenv": "^17.2.3", "zod": "^4.1.12" }, "devDependencies": { + "@trycompai/tsconfig": "workspace:*", "@types/node": "^24.2.0", - "prisma": "^6.13.0", - "ts-node": "^10.9.2", + "prisma": "^6.19.0", "typescript": "^5.9.2" }, - "exports": { - ".": "./dist/index.js" - }, "files": [ "dist", "README.md", @@ -30,13 +37,14 @@ "directory": "packages/db" }, "scripts": { - "build": "rm -rf dist && rm -rf ./prisma/generated && prisma generate && node scripts/combine-schemas.js && tsc", - "check-types": "tsc --noEmit", + "build": "tsdown", + "clean": "rm -rf dist .turbo node_modules", + "typecheck": "tsc --noEmit", + "db:push": "prisma db push", + "db:studio": "prisma studio", "db:generate": "prisma generate", "db:migrate": "prisma migrate dev", - "db:push": "prisma db push", "db:seed": "bun prisma/seed/seed.ts", - "db:studio": "prisma studio", "docker:clean": "docker compose down -v", "docker:down": "docker compose down", "docker:up": "docker compose up -d", diff --git a/packages/db/prisma.config.ts b/packages/db/prisma.config.ts index 265d14d52..fddf5c318 100644 --- a/packages/db/prisma.config.ts +++ b/packages/db/prisma.config.ts @@ -1,11 +1,10 @@ -import 'dotenv/config'; import path from 'node:path'; -import { defineConfig } from 'prisma/config'; +import type { PrismaConfig } from 'prisma'; -export default defineConfig({ - schema: path.join('prisma'), +export default { + schema: path.join('prisma', 'schema'), migrations: { path: path.join('prisma', 'migrations'), - seed: 'ts-node prisma/seed/seed.ts', + seed: 'tsx prisma/seed/seed.ts', }, -}); +} satisfies PrismaConfig; diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema/schema.prisma similarity index 73% rename from packages/db/prisma/schema.prisma rename to packages/db/prisma/schema/schema.prisma index 0c58ddb92..269449cb5 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema/schema.prisma @@ -1,5 +1,8 @@ generator client { - provider = "prisma-client-js" + provider = "prisma-client" + output = "../generated" + moduleFormat = "esm" + runtime = "bun" previewFeatures = ["postgresqlExtensions"] binaryTargets = ["rhel-openssl-3.0.x", "native", "debian-openssl-3.0.x", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-3.0.x"] } diff --git a/packages/db/src/client.ts b/packages/db/src/client.ts deleted file mode 100644 index a696328be..000000000 --- a/packages/db/src/client.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { PrismaClient } from '@prisma/client'; - -const globalForPrisma = global as unknown as { prisma: PrismaClient }; - -export const db = globalForPrisma.prisma || new PrismaClient(); - -if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db; diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts index 54d1c4b9c..38e4b29e5 100644 --- a/packages/db/src/index.ts +++ b/packages/db/src/index.ts @@ -1,2 +1,6 @@ -export * from '@prisma/client'; -export { db } from './client'; +import { PrismaClient } from '../prisma/generated/client'; +export * from '../prisma/generated/models'; + +const db = new PrismaClient(); + +export default db; diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json index 21e5f9ecf..a6f2859bc 100644 --- a/packages/db/tsconfig.json +++ b/packages/db/tsconfig.json @@ -1,23 +1,11 @@ { "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@trycompai/tsconfig/base.json", "compilerOptions": { - "esModuleInterop": true, - "incremental": false, - "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], - "module": "NodeNext", - "moduleDetection": "force", - "moduleResolution": "NodeNext", - "noUncheckedIndexedAccess": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "ES2022", - "outDir": "./dist", - "rootDir": "./src", - "declaration": true, - "declarationMap": true + "composite": true, + "outDir": "dist", + "baseUrl": "." }, - "include": ["src"], + "include": ["src", "prisma/generated"], "exclude": ["node_modules", "dist"] } diff --git a/packages/db/tsdown.config.ts b/packages/db/tsdown.config.ts new file mode 100644 index 000000000..1a56780db --- /dev/null +++ b/packages/db/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + entry: 'src/**/*.ts', + sourcemap: true, + dts: true, +}); diff --git a/packages/docs/package.json b/packages/docs/package.json new file mode 100644 index 000000000..f56fa77a7 --- /dev/null +++ b/packages/docs/package.json @@ -0,0 +1,5 @@ +{ + "name": "docs", + "version": "0.0.0", + "private": true +} \ No newline at end of file diff --git a/packages/email/package.json b/packages/email/package.json index 5573fa682..156b13466 100644 --- a/packages/email/package.json +++ b/packages/email/package.json @@ -2,6 +2,7 @@ "name": "@trycompai/email", "description": "Email templates and utilities for Comp AI", "version": "1.0.0", + "type": "module", "dependencies": { "@react-email/components": "^0.0.41", "@react-email/render": "^1.1.2", @@ -9,25 +10,30 @@ "@trycompai/ui": "workspace:*", "@trycompai/utils": "workspace:*", "date-fns": "^4.1.0", - "next": "^15.4.6", + "next": "^16.0.3", "react-email": "^4.0.15", - "resend": "^4.4.1", + "resend": "^6.4.2", "responsive-react-email": "^0.0.5" }, "devDependencies": { - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "tsup": "^8.5.0", - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "exports": { ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.js" + "types": "./dist/index.d.mts", + "import": "./dist/index.mjs" + }, + "./emails/*": { + "types": "./dist/emails/*.d.mts", + "import": "./dist/emails/*.mjs" }, - "./emails/*": "./emails/*", - "./lib/*": "./lib/*" + "./lib/*": { + "types": "./dist/lib/*.d.mts", + "import": "./dist/lib/*.mjs" + } }, "files": [ "dist/**", @@ -39,7 +45,7 @@ "react-email" ], "license": "MIT", - "main": "./dist/index.js", + "main": "./dist/index.mjs", "module": "./dist/index.mjs", "peerDependencies": { "react": "^19.1.1", @@ -54,12 +60,12 @@ "directory": "packages/email" }, "scripts": { - "build": "tsup index.ts --format cjs,esm --dts", + "build": "tsdown", "clean": "rm -rf .turbo node_modules dist", - "dev": "tsup index.ts --format cjs,esm --watch --dts", + "dev": "tsdown --watch", "format": "prettier --write .", "lint": "prettier --check .", "typecheck": "tsc --noEmit" }, - "types": "./dist/index.d.ts" + "types": "./dist/index.d.mts" } diff --git a/packages/email/components/column.tsx b/packages/email/src/components/column.tsx similarity index 100% rename from packages/email/components/column.tsx rename to packages/email/src/components/column.tsx diff --git a/packages/email/components/dual-column.tsx b/packages/email/src/components/dual-column.tsx similarity index 100% rename from packages/email/components/dual-column.tsx rename to packages/email/src/components/dual-column.tsx diff --git a/packages/email/components/footer.tsx b/packages/email/src/components/footer.tsx similarity index 100% rename from packages/email/components/footer.tsx rename to packages/email/src/components/footer.tsx diff --git a/packages/email/components/get-started.tsx b/packages/email/src/components/get-started.tsx similarity index 100% rename from packages/email/components/get-started.tsx rename to packages/email/src/components/get-started.tsx diff --git a/packages/email/components/logo.tsx b/packages/email/src/components/logo.tsx similarity index 100% rename from packages/email/components/logo.tsx rename to packages/email/src/components/logo.tsx diff --git a/packages/email/emails/access-granted.tsx b/packages/email/src/emails/access-granted.tsx similarity index 100% rename from packages/email/emails/access-granted.tsx rename to packages/email/src/emails/access-granted.tsx diff --git a/packages/email/emails/access-reclaim.tsx b/packages/email/src/emails/access-reclaim.tsx similarity index 100% rename from packages/email/emails/access-reclaim.tsx rename to packages/email/src/emails/access-reclaim.tsx diff --git a/packages/email/emails/all-policy-notification.tsx b/packages/email/src/emails/all-policy-notification.tsx similarity index 96% rename from packages/email/emails/all-policy-notification.tsx rename to packages/email/src/emails/all-policy-notification.tsx index 89275b835..3bc300b08 100644 --- a/packages/email/emails/all-policy-notification.tsx +++ b/packages/email/src/emails/all-policy-notification.tsx @@ -69,16 +69,15 @@ export const AllPolicyNotificationEmail = ({ {subjectText} - - Hi {userName}, - + Hi {userName}, All policies have been published and require your review. - Your organization {organizationName} requires all employees to review and accept these policies. + Your organization {organizationName} requires all employees to review + and accept these policies.
    @@ -115,4 +114,3 @@ export const AllPolicyNotificationEmail = ({ }; export default AllPolicyNotificationEmail; - diff --git a/packages/email/emails/invite-portal.tsx b/packages/email/src/emails/invite-portal.tsx similarity index 100% rename from packages/email/emails/invite-portal.tsx rename to packages/email/src/emails/invite-portal.tsx diff --git a/packages/email/emails/invite.tsx b/packages/email/src/emails/invite.tsx similarity index 100% rename from packages/email/emails/invite.tsx rename to packages/email/src/emails/invite.tsx diff --git a/packages/email/emails/magic-link.tsx b/packages/email/src/emails/magic-link.tsx similarity index 97% rename from packages/email/emails/magic-link.tsx rename to packages/email/src/emails/magic-link.tsx index da6daa0be..106790b19 100644 --- a/packages/email/emails/magic-link.tsx +++ b/packages/email/src/emails/magic-link.tsx @@ -20,7 +20,7 @@ interface Props { inviteCode?: string; } -export const MagicLinkEmail = ({ email, url, inviteCode }: Props) => { +export const MagicLinkEmail = ({ email, url }: Props) => { return ( diff --git a/packages/email/emails/marketing/welcome.tsx b/packages/email/src/emails/marketing/welcome.tsx similarity index 94% rename from packages/email/emails/marketing/welcome.tsx rename to packages/email/src/emails/marketing/welcome.tsx index 18aee645e..7d98bfc45 100644 --- a/packages/email/emails/marketing/welcome.tsx +++ b/packages/email/src/emails/marketing/welcome.tsx @@ -2,11 +2,7 @@ import { Body, Container, Font, Heading, Html, Preview, Tailwind } from '@react- import { Footer } from '../../components/footer'; import { Logo } from '../../components/logo'; -interface Props { - name: string; -} - -export const WelcomeEmail = ({ name }: Props) => { +export const WelcomeEmail = () => { return ( diff --git a/packages/email/emails/nda-signing.tsx b/packages/email/src/emails/nda-signing.tsx similarity index 100% rename from packages/email/emails/nda-signing.tsx rename to packages/email/src/emails/nda-signing.tsx diff --git a/packages/email/emails/otp.tsx b/packages/email/src/emails/otp.tsx similarity index 100% rename from packages/email/emails/otp.tsx rename to packages/email/src/emails/otp.tsx diff --git a/packages/email/emails/policy-notification.tsx b/packages/email/src/emails/policy-notification.tsx similarity index 95% rename from packages/email/emails/policy-notification.tsx rename to packages/email/src/emails/policy-notification.tsx index 28c3178ee..f1e116f67 100644 --- a/packages/email/emails/policy-notification.tsx +++ b/packages/email/src/emails/policy-notification.tsx @@ -85,16 +85,13 @@ export const PolicyNotificationEmail = ({ {subjectText} - - Hi {userName}, - + Hi {userName}, - - {getBodyText()} - + {getBodyText()} - Your organization {organizationName} requires all employees to review and accept this policy. + Your organization {organizationName} requires all employees to review + and accept this policy.
    diff --git a/packages/email/emails/reminders/task-reminder.tsx b/packages/email/src/emails/reminders/task-reminder.tsx similarity index 100% rename from packages/email/emails/reminders/task-reminder.tsx rename to packages/email/src/emails/reminders/task-reminder.tsx diff --git a/packages/email/emails/reminders/weekly-task-digest.tsx b/packages/email/src/emails/reminders/weekly-task-digest.tsx similarity index 100% rename from packages/email/emails/reminders/weekly-task-digest.tsx rename to packages/email/src/emails/reminders/weekly-task-digest.tsx diff --git a/packages/email/emails/waitlist.tsx b/packages/email/src/emails/waitlist.tsx similarity index 100% rename from packages/email/emails/waitlist.tsx rename to packages/email/src/emails/waitlist.tsx diff --git a/packages/email/index.ts b/packages/email/src/index.ts similarity index 100% rename from packages/email/index.ts rename to packages/email/src/index.ts diff --git a/packages/email/lib/all-policy-notification.ts b/packages/email/src/lib/all-policy-notification.ts similarity index 90% rename from packages/email/lib/all-policy-notification.ts rename to packages/email/src/lib/all-policy-notification.ts index 06c3a2015..c70fde9ba 100644 --- a/packages/email/lib/all-policy-notification.ts +++ b/packages/email/src/lib/all-policy-notification.ts @@ -7,12 +7,7 @@ export const sendAllPolicyNotificationEmail = async (params: { organizationName: string; organizationId: string; }) => { - const { - email, - userName, - organizationName, - organizationId, - } = params; + const { email, userName, organizationName, organizationId } = params; const subjectText = 'Please review and accept the policies'; try { @@ -39,4 +34,3 @@ export const sendAllPolicyNotificationEmail = async (params: { return { success: false }; } }; - diff --git a/packages/email/lib/invite-member.ts b/packages/email/src/lib/invite-member.ts similarity index 100% rename from packages/email/lib/invite-member.ts rename to packages/email/src/lib/invite-member.ts diff --git a/packages/email/lib/magic-link.ts b/packages/email/src/lib/magic-link.ts similarity index 100% rename from packages/email/lib/magic-link.ts rename to packages/email/src/lib/magic-link.ts diff --git a/packages/email/lib/policy-notification.ts b/packages/email/src/lib/policy-notification.ts similarity index 88% rename from packages/email/lib/policy-notification.ts rename to packages/email/src/lib/policy-notification.ts index 5dfd906c3..9ffd98170 100644 --- a/packages/email/lib/policy-notification.ts +++ b/packages/email/src/lib/policy-notification.ts @@ -9,14 +9,8 @@ export const sendPolicyNotificationEmail = async (params: { organizationId: string; notificationType: 'new' | 'updated' | 're-acceptance'; }) => { - const { - email, - userName, - policyName, - organizationName, - organizationId, - notificationType, - } = params; + const { email, userName, policyName, organizationName, organizationId, notificationType } = + params; const subjectText = 'Please review and accept this policy'; try { diff --git a/packages/email/lib/resend.ts b/packages/email/src/lib/resend.ts similarity index 75% rename from packages/email/lib/resend.ts rename to packages/email/src/lib/resend.ts index adba3caa4..f58cb98a7 100644 --- a/packages/email/lib/resend.ts +++ b/packages/email/src/lib/resend.ts @@ -25,20 +25,15 @@ export const sendEmail = async ({ throw new Error('Resend not initialized - missing API key'); } - - // 1) Pull each env var into its own constant + // 1) Pull each env var into its own constant const fromMarketing = process.env.RESEND_FROM_MARKETING; - const fromSystem = process.env.RESEND_FROM_SYSTEM; - const fromDefault = process.env.RESEND_FROM_DEFAULT; - const toTest = process.env.RESEND_TO_TEST; - const replyMarketing= process.env.RESEND_REPLY_TO_MARKETING; + const fromSystem = process.env.RESEND_FROM_SYSTEM; + const fromDefault = process.env.RESEND_FROM_DEFAULT; + const toTest = process.env.RESEND_TO_TEST; + const replyMarketing = process.env.RESEND_REPLY_TO_MARKETING; // 2) Decide which one you need for this email - const fromAddress = marketing - ? fromMarketing - : system - ? fromSystem - : fromDefault; + const fromAddress = marketing ? fromMarketing : system ? fromSystem : fromDefault; const toAddress = test ? toTest : to; @@ -54,8 +49,8 @@ export const sendEmail = async ({ try { const { data, error } = await resend.emails.send({ - from: fromAddress, // now always a string - to: toAddress, // now always a string + from: fromAddress, // now always a string + to: toAddress, // now always a string cc, replyTo, subject, diff --git a/packages/email/lib/waitlist.ts b/packages/email/src/lib/waitlist.ts similarity index 100% rename from packages/email/lib/waitlist.ts rename to packages/email/src/lib/waitlist.ts diff --git a/packages/email/lib/weekly-task-digest.ts b/packages/email/src/lib/weekly-task-digest.ts similarity index 99% rename from packages/email/lib/weekly-task-digest.ts rename to packages/email/src/lib/weekly-task-digest.ts index c5e0a2db7..030875515 100644 --- a/packages/email/lib/weekly-task-digest.ts +++ b/packages/email/src/lib/weekly-task-digest.ts @@ -45,4 +45,3 @@ export const sendWeeklyTaskDigestEmail = async (params: { return { success: false }; } }; - diff --git a/packages/email/tsconfig.json b/packages/email/tsconfig.json index d4f68f0d5..c7713969c 100644 --- a/packages/email/tsconfig.json +++ b/packages/email/tsconfig.json @@ -1,11 +1,9 @@ { "extends": "../tsconfig/base.json", - "include": ["emails", "components", "lib"], + "include": ["src"], "exclude": ["node_modules"], "compilerOptions": { "baseUrl": ".", - "module": "NodeNext", - "moduleResolution": "NodeNext", "jsx": "react-jsx", "jsxImportSource": "react" } diff --git a/packages/email/tsdown.config.ts b/packages/email/tsdown.config.ts new file mode 100644 index 000000000..8c3a421fc --- /dev/null +++ b/packages/email/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + entry: ['src/**/*.ts', 'src/**/*.tsx'], + sourcemap: true, + dts: true, +}); diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 55dacb1db..0eedf451d 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -2,32 +2,35 @@ "name": "@trycompai/integrations", "version": "1.0.0", "dependencies": { - "@ai-sdk/openai": "^2.0.0", + "@ai-sdk/openai": "^2.0.65", "@aws-sdk/client-securityhub": "^3.0.0", - "@aws-sdk/client-sts": "^3.0.0", + "@aws-sdk/client-sts": "^3.808.0", "@azure/identity": "^4.10.0", "@comp/app": "workspace:*", "@slack/bolt": "^3.22.0", "@slack/web-api": "^7.8.0", - "ai": "^5.0.0", + "ai": "^5.0.93", "jsonwebtoken": "^9.0.2", "node-fetch": "^2.6.7", - "react": "^19.0.0", + "react": "^19.2.0", "sharp": "^0.34.2", "stoppable": "^1.1.0", - "zod": "^4.0.14" + "zod": "^4.1.12" }, "devDependencies": { - "@types/node": "^24.0.3", + "@types/jsonwebtoken": "^9.0.10", + "@types/node": "^24.2.0", "@types/node-fetch": "^2.6.2", - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "exports": { ".": "./src/index.ts" }, "private": true, "scripts": { - "clean": "rm -rf .turbo node_modules", + "build": "tsdown", + "clean": "rm -rf .turbo node_modules dist", + "dev": "tsdown --watch", "format": "prettier --write .", "lint": "prettier --check .", "typecheck": "tsc --noEmit" diff --git a/packages/integrations/src/azure/assets/logo.tsx b/packages/integrations/src/azure/assets/logo.tsx index be41206ff..baa65c12b 100644 --- a/packages/integrations/src/azure/assets/logo.tsx +++ b/packages/integrations/src/azure/assets/logo.tsx @@ -1,4 +1,4 @@ -import React, { SVGProps } from 'react'; +import React, { type SVGProps } from 'react'; export const Logo: React.FC> = (props) => { return ( diff --git a/packages/integrations/src/azure/src/index.ts b/packages/integrations/src/azure/src/index.ts index 7f4fb46bc..a61318528 100644 --- a/packages/integrations/src/azure/src/index.ts +++ b/packages/integrations/src/azure/src/index.ts @@ -19,33 +19,6 @@ interface AzureFinding { resultDetails: any; } -interface ComplianceControl { - Id: string; - name: string; - standard: string; - Title: string; - description: string; - state: string; - Compliance: { - Status: string; - }; - Severity: { - Label: string; - }; - Remediation: { - Recommendation: { - Text: string; - Url: string; - }; - }; - Description: string; -} - -interface ComplianceStandard { - name: string; - controls: ComplianceControl[]; -} - interface AzureResponse { value: Array<{ name: string; @@ -103,7 +76,6 @@ async function fetchComplianceData(credentials: AzureCredentials): Promise> = (props) => { return ( diff --git a/packages/integrations/src/factory.ts b/packages/integrations/src/factory.ts index 9513ade2a..8fa1b79f5 100644 --- a/packages/integrations/src/factory.ts +++ b/packages/integrations/src/factory.ts @@ -128,7 +128,7 @@ handlers.set('gcp', { handlers.set('deel', { id: 'deel', // This is a placeholder implementation; replace with actual fetch once available - fetch: async (credentials: DeelCredentials): Promise => { + fetch: async (_credentials: DeelCredentials): Promise => { return []; // Return empty array as placeholder }, processCredentials: async (encryptedSettings, decrypt) => { @@ -143,7 +143,7 @@ handlers.set('deel', { handlers.set('github', { id: 'github', // Placeholder for now - will be used by automations - fetch: async (credentials: GitHubCredentials): Promise => { + fetch: async (_credentials: GitHubCredentials): Promise => { return []; // GitHub integration is primarily for automation access }, processCredentials: async (encryptedSettings, decrypt) => { diff --git a/packages/integrations/src/gcp/assets/logo.tsx b/packages/integrations/src/gcp/assets/logo.tsx index 79e81176e..e417b8f4c 100644 --- a/packages/integrations/src/gcp/assets/logo.tsx +++ b/packages/integrations/src/gcp/assets/logo.tsx @@ -1,4 +1,4 @@ -import React, { SVGProps } from 'react'; +import React, { type SVGProps } from 'react'; export const Logo: React.FC> = (props) => { return ( diff --git a/packages/integrations/tsdown.config.ts b/packages/integrations/tsdown.config.ts new file mode 100644 index 000000000..1a56780db --- /dev/null +++ b/packages/integrations/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + entry: 'src/**/*.ts', + sourcemap: true, + dts: true, +}); diff --git a/packages/kv/package.json b/packages/kv/package.json index 5cd9c8779..54779da9e 100644 --- a/packages/kv/package.json +++ b/packages/kv/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "tsup": "^8.5.0", - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "exports": { ".": { @@ -40,12 +40,11 @@ "directory": "packages/kv" }, "scripts": { - "build": "tsup src/index.ts --format cjs,esm --dts", + "build": "tsdown", "clean": "rm -rf .turbo node_modules dist", - "dev": "tsup src/index.ts --format cjs,esm --watch --dts", + "dev": "tsdown --watch", "format": "prettier --write .", "lint": "prettier --check .", "typecheck": "tsc --noEmit" - }, - "types": "./dist/index.d.ts" + } } diff --git a/packages/kv/tsdown.config.ts b/packages/kv/tsdown.config.ts new file mode 100644 index 000000000..1a56780db --- /dev/null +++ b/packages/kv/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + entry: 'src/**/*.ts', + sourcemap: true, + dts: true, +}); diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json index 2f1d660cc..549ae7a5d 100644 --- a/packages/tsconfig/base.json +++ b/packages/tsconfig/base.json @@ -2,17 +2,22 @@ "$schema": "https://json.schemastore.org/tsconfig", "display": "Default", "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "bundler", + "lib": ["ESNext"], + "verbatimModuleSyntax": true, + "strict": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, "esModuleInterop": true, - "incremental": false, + "forceConsistentCasingInFileNames": true, "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], - "module": "NodeNext", - "moduleDetection": "force", - "moduleResolution": "NodeNext", "noUncheckedIndexedAccess": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "ES2022" + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "types": ["bun"] } } diff --git a/packages/tsconfig/nextjs.json b/packages/tsconfig/nextjs.json deleted file mode 100644 index 44f428991..000000000 --- a/packages/tsconfig/nextjs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Next.js", - "extends": "./base.json", - "compilerOptions": { - "plugins": [{ "name": "next" }], - "module": "ESNext", - "moduleResolution": "Bundler", - "allowJs": true, - "jsx": "preserve", - "noEmit": true - } -} diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json index b3602226f..8a2f28710 100644 --- a/packages/tsconfig/package.json +++ b/packages/tsconfig/package.json @@ -2,19 +2,8 @@ "name": "@trycompai/tsconfig", "description": "Shared TypeScript configurations for Comp AI", "version": "1.0.0", - "exports": { - "./base": "./base.json", - "./base.json": "./base.json", - "./nextjs": "./nextjs.json", - "./nextjs.json": "./nextjs.json", - "./react-library": "./react-library.json", - "./react-library.json": "./react-library.json" - }, "files": [ - "base.json", - "nextjs.json", - "react-library.json", - "README.md" + "base.json" ], "keywords": [ "comp-ai", diff --git a/packages/tsconfig/react-library.json b/packages/tsconfig/react-library.json deleted file mode 100644 index 44924d9ed..000000000 --- a/packages/tsconfig/react-library.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "React Library", - "extends": "./base.json", - "compilerOptions": { - "jsx": "react-jsx" - } -} diff --git a/packages/ui/package.json b/packages/ui/package.json index 09c40e4d2..96f4d8f12 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -83,367 +83,32 @@ "devDependencies": { "@tailwindcss/cli": "^4.1.10", "@tailwindcss/postcss": "^4.1.10", + "@types/node": "^24.2.0", + "@types/react": "^19.2.6", + "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^4.6.0", "autoprefixer": "^10.4.21", "jsdom": "^26.1.0", "postcss": "^8.5.4", - "react": "^19.1.1", - "react-dom": "^19.1.0", + "react": "^19.2.0", + "react-dom": "^19.2.0", "tailwindcss": "^4.1.8", - "tsup": "^8.5.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4" }, "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js" - }, - "./globals.css": "./dist/globals.css", - "./editor.css": "./dist/editor.css", + ".": "./src/index.ts", + "./globals.css": "./src/globals.css", + "./editor.css": "./src/editor.css", "./tailwind.config": "./tailwind.config.ts", - "./postcss.config": "./postcss.config.js", - "./use-toast": { - "types": "./dist/components/use-toast.d.ts", - "import": "./dist/components/use-toast.js" - }, - "./tooltip": { - "types": "./dist/components/tooltip.d.ts", - "import": "./dist/components/tooltip.js" - }, - "./toggle": { - "types": "./dist/components/toggle.d.ts", - "import": "./dist/components/toggle.js" - }, - "./toaster": { - "types": "./dist/components/toaster.d.ts", - "import": "./dist/components/toaster.js" - }, - "./toast": { - "types": "./dist/components/toast.d.ts", - "import": "./dist/components/toast.js" - }, - "./time-range-input": { - "types": "./dist/components/time-range-input.d.ts", - "import": "./dist/components/time-range-input.js" - }, - "./textarea": { - "types": "./dist/components/textarea.d.ts", - "import": "./dist/components/textarea.js" - }, - "./tabs": { - "types": "./dist/components/tabs.d.ts", - "import": "./dist/components/tabs.js" - }, - "./table": { - "types": "./dist/components/table.d.ts", - "import": "./dist/components/table.js" - }, - "./switch": { - "types": "./dist/components/switch.d.ts", - "import": "./dist/components/switch.js" - }, - "./submit-button": { - "types": "./dist/components/submit-button.d.ts", - "import": "./dist/components/submit-button.js" - }, - "./spinner": { - "types": "./dist/components/spinner.d.ts", - "import": "./dist/components/spinner.js" - }, - "./sooner": { - "types": "./dist/components/sooner.d.ts", - "import": "./dist/components/sooner.js" - }, - "./sonner": { - "types": "./dist/components/sonner.d.ts", - "import": "./dist/components/sonner.js" - }, - "./slider": { - "types": "./dist/components/slider.d.ts", - "import": "./dist/components/slider.js" - }, - "./skeleton": { - "types": "./dist/components/skeleton.d.ts", - "import": "./dist/components/skeleton.js" - }, - "./sheet": { - "types": "./dist/components/sheet.d.ts", - "import": "./dist/components/sheet.js" - }, - "./separator": { - "types": "./dist/components/separator.d.ts", - "import": "./dist/components/separator.js" - }, - "./select": { - "types": "./dist/components/select.d.ts", - "import": "./dist/components/select.js" - }, - "./select-pills": { - "types": "./dist/components/select-pills.d.ts", - "import": "./dist/components/select-pills.js" - }, - "./secondary-menu": { - "types": "./dist/components/secondary-menu.d.ts", - "import": "./dist/components/secondary-menu.js" - }, - "./scroll-area": { - "types": "./dist/components/scroll-area.d.ts", - "import": "./dist/components/scroll-area.js" - }, - "./resizable": { - "types": "./dist/components/resizable.d.ts", - "import": "./dist/components/resizable.js" - }, - "./radio-group": { - "types": "./dist/components/radio-group.d.ts", - "import": "./dist/components/radio-group.js" - }, - "./quantity-input": { - "types": "./dist/components/quantity-input.d.ts", - "import": "./dist/components/quantity-input.js" - }, - "./progress": { - "types": "./dist/components/progress.d.ts", - "import": "./dist/components/progress.js" - }, - "./popover": { - "types": "./dist/components/popover.d.ts", - "import": "./dist/components/popover.js" - }, - "./navigation-menu": { - "types": "./dist/components/navigation-menu.d.ts", - "import": "./dist/components/navigation-menu.js" - }, - "./multiple-selector": { - "types": "./dist/components/multiple-selector.d.ts", - "import": "./dist/components/multiple-selector.js" - }, - "./label": { - "types": "./dist/components/label.d.ts", - "import": "./dist/components/label.js" - }, - "./input": { - "types": "./dist/components/input.d.ts", - "import": "./dist/components/input.js" - }, - "./input-otp": { - "types": "./dist/components/input-otp.d.ts", - "import": "./dist/components/input-otp.js" - }, - "./input-group": { - "types": "./dist/components/input-group.d.ts", - "import": "./dist/components/input-group.js" - }, - "./inner-menu": { - "types": "./dist/components/inner-menu.d.ts", - "import": "./dist/components/inner-menu.js" - }, - "./index": { - "types": "./dist/hooks/index.d.ts", - "import": "./dist/hooks/index.js" - }, - "./icons": { - "types": "./dist/components/icons.d.ts", - "import": "./dist/components/icons.js" - }, - "./hover-card": { - "types": "./dist/components/hover-card.d.ts", - "import": "./dist/components/hover-card.js" - }, - "./form": { - "types": "./dist/components/form.d.ts", - "import": "./dist/components/form.js" - }, - "./field": { - "types": "./dist/components/field.d.ts", - "import": "./dist/components/field.js" - }, - "./empty-card": { - "types": "./dist/components/empty-card.d.ts", - "import": "./dist/components/empty-card.js" - }, - "./dropdown-menu": { - "types": "./dist/components/dropdown-menu.d.ts", - "import": "./dist/components/dropdown-menu.js" - }, - "./drawer": { - "types": "./dist/components/drawer.d.ts", - "import": "./dist/components/drawer.js" - }, - "./dialog": { - "types": "./dist/components/dialog.d.ts", - "import": "./dist/components/dialog.js" - }, - "./date-range-picker": { - "types": "./dist/components/date-range-picker.d.ts", - "import": "./dist/components/date-range-picker.js" - }, - "./date-picker": { - "types": "./dist/components/date-picker.d.ts", - "import": "./dist/components/date-picker.js" - }, - "./currency-input": { - "types": "./dist/components/currency-input.d.ts", - "import": "./dist/components/currency-input.js" - }, - "./context-menu": { - "types": "./dist/components/context-menu.d.ts", - "import": "./dist/components/context-menu.js" - }, - "./command": { - "types": "./dist/components/command.d.ts", - "import": "./dist/components/command.js" - }, - "./combobox": { - "types": "./dist/components/combobox.d.ts", - "import": "./dist/components/combobox.js" - }, - "./combobox-dropdown": { - "types": "./dist/components/combobox-dropdown.d.ts", - "import": "./dist/components/combobox-dropdown.js" - }, - "./collapsible": { - "types": "./dist/components/collapsible.d.ts", - "import": "./dist/components/collapsible.js" - }, - "./checkbox": { - "types": "./dist/components/checkbox.d.ts", - "import": "./dist/components/checkbox.js" - }, - "./chart": { - "types": "./dist/components/chart.d.ts", - "import": "./dist/components/chart.js" - }, - "./chart-tooltip": { - "types": "./dist/components/chart-tooltip.d.ts", - "import": "./dist/components/chart-tooltip.js" - }, - "./carousel": { - "types": "./dist/components/carousel.d.ts", - "import": "./dist/components/carousel.js" - }, - "./card": { - "types": "./dist/components/card.d.ts", - "import": "./dist/components/card.js" - }, - "./card-liquid-glass": { - "types": "./dist/components/card-liquid-glass.d.ts", - "import": "./dist/components/card-liquid-glass.js" - }, - "./calendar": { - "types": "./dist/components/calendar.d.ts", - "import": "./dist/components/calendar.js" - }, - "./button": { - "types": "./dist/components/button.d.ts", - "import": "./dist/components/button.js" - }, - "./button-icon": { - "types": "./dist/components/button-icon.d.ts", - "import": "./dist/components/button-icon.js" - }, - "./breadcrumb": { - "types": "./dist/components/breadcrumb.d.ts", - "import": "./dist/components/breadcrumb.js" - }, - "./badge": { - "types": "./dist/components/badge.d.ts", - "import": "./dist/components/badge.js" - }, - "./avatar": { - "types": "./dist/components/avatar.d.ts", - "import": "./dist/components/avatar.js" - }, - "./animated-size-container": { - "types": "./dist/components/animated-size-container.d.ts", - "import": "./dist/components/animated-size-container.js" - }, - "./alert": { - "types": "./dist/components/alert.d.ts", - "import": "./dist/components/alert.js" - }, - "./alert-dialog": { - "types": "./dist/components/alert-dialog.d.ts", - "import": "./dist/components/alert-dialog.js" - }, - "./accordion": { - "types": "./dist/components/accordion.d.ts", - "import": "./dist/components/accordion.js" - }, - "./editor/index": { - "types": "./dist/components/editor/index.d.ts", - "import": "./dist/components/editor/index.js" - }, - "./editor/extensions": { - "types": "./dist/components/editor/extensions.d.ts", - "import": "./dist/components/editor/extensions.js" - }, - "./editor/utils/validate-content.test": { - "types": "./dist/components/editor/utils/validate-content.test.d.ts", - "import": "./dist/components/editor/utils/validate-content.test.js" - }, - "./editor/utils/validate-content": { - "types": "./dist/components/editor/utils/validate-content.d.ts", - "import": "./dist/components/editor/utils/validate-content.js" - }, - "./editor/utils/linkify-content": { - "types": "./dist/components/editor/utils/linkify-content.d.ts", - "import": "./dist/components/editor/utils/linkify-content.js" - }, - "./editor/selectors/text-buttons": { - "types": "./dist/components/editor/selectors/text-buttons.d.ts", - "import": "./dist/components/editor/selectors/text-buttons.js" - }, - "./editor/selectors/node-selector": { - "types": "./dist/components/editor/selectors/node-selector.d.ts", - "import": "./dist/components/editor/selectors/node-selector.js" - }, - "./editor/selectors/link-selector": { - "types": "./dist/components/editor/selectors/link-selector.d.ts", - "import": "./dist/components/editor/selectors/link-selector.js" - }, - "./ai-elements/prompt-input": { - "types": "./dist/components/ai-elements/prompt-input.d.ts", - "import": "./dist/components/ai-elements/prompt-input.js" - }, - "./truncate": { - "types": "./dist/utils/truncate.d.ts", - "import": "./dist/utils/truncate.js" - }, - "./cn": { - "types": "./dist/utils/cn.d.ts", - "import": "./dist/utils/cn.js" - }, - "./use-resize-observer": { - "types": "./dist/hooks/use-resize-observer.d.ts", - "import": "./dist/hooks/use-resize-observer.js" - }, - "./use-media-query": { - "types": "./dist/hooks/use-media-query.d.ts", - "import": "./dist/hooks/use-media-query.js" - }, - "./use-enter-submit": { - "types": "./dist/hooks/use-enter-submit.d.ts", - "import": "./dist/hooks/use-enter-submit.js" - }, - "./use-controllable-state": { - "types": "./dist/hooks/use-controllable-state.d.ts", - "import": "./dist/hooks/use-controllable-state.js" - }, - "./use-callback-ref": { - "types": "./dist/hooks/use-callback-ref.d.ts", - "import": "./dist/hooks/use-callback-ref.js" - } + "./postcss.config": "./postcss.config.js" }, "files": [ - "dist", + "src", "tailwind.config.ts", "postcss.config.js", - "README.md", - "dist/globals.css", - "dist/editor.css" + "README.md" ], "keywords": [ "comp-ai", @@ -454,8 +119,8 @@ "ui" ], "license": "MIT", - "main": "./dist/index.js", - "module": "./dist/index.js", + "main": "./src/index.ts", + "module": "./src/index.ts", "overrides": { "react-is": "^19.1.0" }, @@ -472,9 +137,8 @@ "directory": "packages/ui" }, "scripts": { - "build": "tsc --emitDeclarationOnly --declaration --declarationDir dist && tsup && node scripts/generate-exports.cjs", - "clean": "rm -rf .turbo node_modules dist", - "dev": "tsup --format esm --watch --dts", + "build": "tsc --noEmit", + "clean": "rm -rf .turbo node_modules", "format": "prettier --write .", "lint": "prettier --check .", "test": "vitest", @@ -486,5 +150,5 @@ }, "sideEffects": false, "type": "module", - "types": "./dist/index.d.ts" -} \ No newline at end of file + "types": "./src/index.ts" +} diff --git a/packages/ui/scripts/generate-exports.cjs b/packages/ui/scripts/generate-exports.cjs deleted file mode 100644 index f1f737265..000000000 --- a/packages/ui/scripts/generate-exports.cjs +++ /dev/null @@ -1,77 +0,0 @@ -const fs = require('fs'); -const path = require('path'); -const { glob } = require('glob'); - -const pkgPath = path.join(__dirname, '../package.json'); -const componentsDir = path.join(__dirname, '../dist/components'); -const utilsDir = path.join(__dirname, '../dist/utils'); -const hooksDir = path.join(__dirname, '../dist/hooks'); - -const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); - -// Create ESM-only exports structure -const exportsField = { - '.': { - types: './dist/index.d.ts', - import: './dist/index.js', - }, -}; - -// Add main CSS/config exports -exportsField['./globals.css'] = './dist/globals.css'; -exportsField['./editor.css'] = './dist/editor.css'; -exportsField['./tailwind.config'] = './tailwind.config.ts'; -exportsField['./postcss.config'] = './postcss.config.js'; - -// Add all component subpath exports (ESM only) including nested directories -if (fs.existsSync(componentsDir)) { - // Use glob to find all .js files recursively in components directory - const componentFiles = glob.sync('**/*.js', { cwd: componentsDir }); - - componentFiles.forEach((file) => { - const name = file.replace(/\.js$/, ''); - const exportPath = `./${name}`; - - exportsField[exportPath] = { - types: `./dist/components/${name}.d.ts`, - import: `./dist/components/${name}.js`, - }; - }); -} - -// Add all utils exports -if (fs.existsSync(utilsDir)) { - const utilFiles = glob.sync('**/*.js', { cwd: utilsDir }); - - utilFiles.forEach((file) => { - const name = file.replace(/\.js$/, ''); - const exportPath = `./${name}`; - - exportsField[exportPath] = { - types: `./dist/utils/${name}.d.ts`, - import: `./dist/utils/${name}.js`, - }; - }); -} - -// Add all hooks exports -if (fs.existsSync(hooksDir)) { - const hookFiles = glob.sync('**/*.js', { cwd: hooksDir }); - - hookFiles.forEach((file) => { - const name = file.replace(/\.js$/, ''); - const exportPath = `./${name}`; - - exportsField[exportPath] = { - types: `./dist/hooks/${name}.d.ts`, - import: `./dist/hooks/${name}.js`, - }; - }); -} - -pkg.exports = exportsField; - -fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2)); -console.log( - '✅ package.json exports updated with ESM-only format including components, utils, and hooks!', -); diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index 9ec30b929..b88aac682 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -1,19 +1,20 @@ { - "extends": "../tsconfig/react-library.json", "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] }, "target": "ES2022", + "lib": ["DOM", "DOM.Iterable", "ESNext"], "module": "ESNext", "moduleResolution": "Bundler", "verbatimModuleSyntax": false, - "jsx": "preserve", + "jsx": "react-jsx", "skipLibCheck": true, - "types": ["react", "react-dom"], - "declaration": true, - "declarationDir": "dist" + "types": ["react", "react-dom", "node"], + "noEmit": true, + "allowJs": true, + "esModuleInterop": true }, "include": ["src"], "exclude": ["node_modules", "dist"] diff --git a/packages/ui/tsup.config.ts b/packages/ui/tsup.config.ts deleted file mode 100644 index 2ff8b0eb3..000000000 --- a/packages/ui/tsup.config.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { glob } from 'glob'; -import { defineConfig } from 'tsup'; - -const components = glob.sync('src/components/**/*.{ts,tsx}'); -const hooks = glob.sync('src/hooks/**/*.{ts,tsx}'); -const utils = glob.sync('src/utils/**/*.{ts,tsx}'); - -export default defineConfig({ - entry: ['src/index.ts', ...components, ...hooks, ...utils], - format: ['esm'], - dts: true, - splitting: false, - clean: true, - bundle: false, - external: ['react', 'react-dom'], - target: 'es2022', - platform: 'neutral', - esbuildOptions(options) { - // Preserve JSX - let Next.js handle the transformation - options.jsx = 'preserve'; - options.platform = 'neutral'; - options.packages = 'external'; - }, - outDir: 'dist', - onSuccess: async () => { - const { cp } = await import('fs/promises'); - await cp('src/globals.css', 'dist/globals.css'); - await cp('src/editor.css', 'dist/editor.css'); - }, -}); diff --git a/packages/utils/package.json b/packages/utils/package.json index 203890f16..f18c2cc68 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -2,7 +2,7 @@ "name": "@trycompai/utils", "version": "1.0.0", "devDependencies": { - "typescript": "^5.8.3" + "typescript": "^5.9.2" }, "exports": { ".": "./src/index.ts", diff --git a/packages/utils/tsdown.config.ts b/packages/utils/tsdown.config.ts new file mode 100644 index 000000000..1a56780db --- /dev/null +++ b/packages/utils/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + entry: 'src/**/*.ts', + sourcemap: true, + dts: true, +}); diff --git a/turbo.json b/turbo.json index 7eb312055..983ab02ab 100644 --- a/turbo.json +++ b/turbo.json @@ -1,108 +1,33 @@ { "$schema": "https://turborepo.org/schema.json", - "globalDependencies": [ - "**/.env" - ], "ui": "stream", "tasks": { - "prisma:generate": { + "db:generate": { "cache": false, - "outputs": [ - "prisma/schema.prisma", - "node_modules/.prisma/**" - ] + "persistent": true }, "build": { - "dependsOn": [ - "^build", - "prisma:generate" - ], - "env": [ - "AUTH_GOOGLE_ID", - "AUTH_GOOGLE_SECRET", - "AUTH_GITHUB_ID", - "AUTH_GITHUB_SECRET", - "AUTH_SECRET", - "DATABASE_URL", - "OPENAI_API_KEY", - "RESEND_API_KEY", - "UPSTASH_REDIS_REST_URL", - "UPSTASH_REDIS_REST_TOKEN", - "TRIGGER_SECRET_KEY", - "TRIGGER_API_KEY", - "TRIGGER_API_URL", - "REVALIDATION_SECRET", - "VERCEL_ACCESS_TOKEN", - "VERCEL_TEAM_ID", - "VERCEL_PROJECT_ID", - "TRUST_PORTAL_PROJECT_ID", - "NODE_ENV", - "APP_AWS_ACCESS_KEY_ID", - "APP_AWS_SECRET_ACCESS_KEY", - "APP_AWS_REGION", - "APP_AWS_BUCKET_NAME", - "NEXT_PUBLIC_PORTAL_URL", - "FIRECRAWL_API_KEY", - "FLEET_URL", - "FLEET_TOKEN", - "DUB_API_KEY", - "DUB_REFER_URL", - "GA4_API_SECRET", - "GA4_MEASUREMENT_ID", - "LINKEDIN_CONVERSIONS_ACCESS_TOKEN", - "NEXT_PUBLIC_POSTHOG_KEY", - "NEXT_PUBLIC_POSTHOG_HOST", - "NEXT_PUBLIC_IS_DUB_ENABLED", - "NEXT_PUBLIC_GTM_ID", - "NEXT_PUBLIC_LINKEDIN_PARTNER_ID", - "NEXT_PUBLIC_LINKEDIN_CONVERSION_ID", - "NEXT_PUBLIC_GOOGLE_ADS_CONVERSION_LABEL", - "NEXT_PUBLIC_API_URL", - "NEXT_PUBLIC_BETTER_AUTH_URL" - ], - "inputs": [ - "$TURBO_DEFAULT$", - ".env" - ], - "outputs": [ - ".next/**", - "!.next/cache/**", - "next-env.d.ts" - ] + "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$", ".env*"], + "outputs": ["dist/**"] }, "lint": { - "dependsOn": [ - "^lint" - ] + "dependsOn": ["^lint"] }, "typecheck": { - "outputs": [ - "node_modules/.cache/tsbuildinfo.json" - ] + "dependsOn": ["^typecheck"] }, "dev": { - "inputs": [ - "$TURBO_DEFAULT$", - ".env" - ], - "persistent": true, - "cache": false + "cache": false, + "persistent": true }, "clean": { "cache": false }, - "deps:check": { - "cache": false - }, "test": { "cache": false, - "outputs": [ - "coverage/**" - ], - "inputs": [ - "$TURBO_DEFAULT$", - ".env" - ] + "outputs": ["coverage/**"], + "inputs": ["$TURBO_DEFAULT$", ".env"] } } } From 7d979d3f2a5a74ebf663500d069a6663ff24832f Mon Sep 17 00:00:00 2001 From: Daniel Fu Date: Wed, 19 Nov 2025 17:26:42 +0800 Subject: [PATCH 2/7] refactor(packages): more factor --- .../src/attachments/attachments.service.ts | 1 + apps/api/src/vendors/vendors.service.ts | 2 +- apps/app/package.json | 18 +- apps/app/src/actions/safe-action.ts | 2 +- .../components/ChatPlaceholder.tsx | 2 +- .../components/CloudConnectionCard.tsx | 8 +- .../components/CloudSettingsModal.tsx | 10 +- .../cloud-tests/components/EmptyState.tsx | 16 +- .../cloud-tests/components/FindingsTable.tsx | 6 +- .../cloud-tests/components/ResultsView.tsx | 10 +- .../cloud-tests/components/TestsLayout.tsx | 4 +- .../[orgId]/components/DynamicMinHeight.tsx | 2 +- .../[orgId]/components/OnboardingTracker.tsx | 4 +- .../components/ControlDeleteDialog.tsx | 10 +- .../[controlId]/components/PoliciesTable.tsx | 4 +- .../components/RequirementsTable.tsx | 4 +- .../[controlId]/components/SingleControl.tsx | 16 +- .../components/SingleControlSkeleton.tsx | 4 +- .../[controlId]/components/TasksTable.tsx | 4 +- .../table/ControlRequirementsTable.tsx | 2 +- .../table/ControlRequirementsTableHeader.tsx | 2 +- .../components/CreateControlSheet.tsx | 16 +- apps/app/src/app/(app)/[orgId]/error.tsx | 2 +- .../components/FrameworkDeleteDialog.tsx | 8 +- .../components/FrameworkOverview.tsx | 14 +- .../table/FrameworkControlsTable.tsx | 2 +- .../table/FrameworkControlsTableColumns.tsx | 2 +- .../table/FrameworkControlsTableHeader.tsx | 4 +- .../table/RequirementControlsTable.tsx | 2 +- .../table/RequirementControlsTableColumns.tsx | 2 +- .../components/AddFrameworkModal.tsx | 8 +- .../components/ComplianceOverview.tsx | 4 +- .../components/ComplianceProgressChart.tsx | 4 +- .../components/ConfirmActionDialog.tsx | 4 +- .../components/FrameworksOverview.tsx | 8 +- .../frameworks/components/PoliciesChart.tsx | 4 +- .../frameworks/components/TasksChart.tsx | 4 +- .../frameworks/components/ToDoOverview.tsx | 8 +- .../components/IntegrationsGrid.tsx | 10 +- .../integrations/components/SearchInput.tsx | 2 +- .../components/EmployeeDetails.tsx | 6 +- .../[employeeId]/components/EmployeeTasks.tsx | 4 +- .../components/Fields/Department.tsx | 10 +- .../[employeeId]/components/Fields/Email.tsx | 4 +- .../components/Fields/JoinDate.tsx | 10 +- .../[employeeId]/components/Fields/Name.tsx | 4 +- .../[employeeId]/components/Fields/Status.tsx | 12 +- .../people/all/actions/revokeInvitation.ts | 2 +- .../all/components/InviteMembersModal.tsx | 10 +- .../people/all/components/MemberRow.tsx | 16 +- .../all/components/MultiRoleCombobox.tsx | 2 +- .../components/MultiRoleComboboxContent.tsx | 6 +- .../components/MultiRoleComboboxTrigger.tsx | 8 +- .../all/components/PendingInvitationRow.tsx | 12 +- .../all/components/TeamMembersClient.tsx | 16 +- .../components/EmployeeCompletionChart.tsx | 4 +- .../components/DeviceComplianceChart.tsx | 4 +- .../people/devices/components/HostDetails.tsx | 6 +- .../src/app/(app)/[orgId]/people/layout.tsx | 2 +- .../components/policy-assignee-chart.tsx | 6 +- .../components/policy-status-chart.tsx | 6 +- .../[policyId]/components/PdfViewer.tsx | 4 +- .../components/PolicyActionDialog.tsx | 12 +- .../components/PolicyArchiveSheet.tsx | 14 +- ...PolicyControlMappingConfirmDeleteModal.tsx | 6 +- .../components/PolicyControlMappingModal.tsx | 10 +- .../components/PolicyControlMappings.tsx | 4 +- .../components/PolicyDeleteDialog.tsx | 10 +- .../components/PolicyHeaderActions.tsx | 12 +- .../[policyId]/components/PolicyOverview.tsx | 8 +- .../components/PolicyOverviewSheet.tsx | 16 +- .../[policyId]/components/RecentAuditLogs.tsx | 10 +- .../components/SubmitApprovalDialog.tsx | 6 +- .../components/UpdatePolicyOverview.tsx | 12 +- .../editor/components/PolicyDetails.tsx | 8 +- .../components/FullPolicyHeaderActions.tsx | 8 +- .../all/components/policies-table-columns.tsx | 2 +- .../all/components/policies-table.tsx | 2 +- .../src/app/(app)/[orgId]/policies/layout.tsx | 2 +- .../components/table/RiskColumns.tsx | 4 +- .../risk/[riskId]/components/RiskActions.tsx | 6 +- .../components/QuestionnaireResults.tsx | 23 +-- .../components/QuestionnaireResultsCards.tsx | 4 +- .../components/QuestionnaireResultsHeader.tsx | 8 +- .../components/QuestionnaireResultsTable.tsx | 6 +- .../components/QuestionnaireUpload.tsx | 194 +++++++++--------- .../components/CreateApiKeyDialog.tsx | 33 ++- .../components/table/ApiKeysColumns.tsx | 6 +- .../components/table/ApiKeysTable.tsx | 2 +- .../settings/context-hub/ContextTable.tsx | 2 +- .../components/CreateContextSheet.tsx | 16 +- .../context-hub/components/context-form.tsx | 15 +- .../components/context-hub-list.tsx | 4 +- .../context-hub/components/context-list.tsx | 10 +- .../components/table/ContextColumns.tsx | 8 +- .../src/app/(app)/[orgId]/settings/layout.tsx | 2 +- .../secrets/components/AddSecretDialog.tsx | 20 +- .../secrets/components/EditSecretDialog.tsx | 20 +- .../secrets/components/table/SecretsTable.tsx | 8 +- .../trust-portal/actions/check-dns-record.ts | 2 +- .../components/TrustPortalDomain.tsx | 12 +- .../components/TrustPortalSwitch.tsx | 18 +- .../automation/[automationId]/chat.tsx | 2 +- .../components/AutomationSettingsDialogs.tsx | 10 +- .../components/PublishDialog.tsx | 11 +- .../components/chat/ChatBreadcrumb.tsx | 2 +- .../components/chat/EmptyState.tsx | 6 +- .../evaluation/EvaluationCriteriaCard.tsx | 4 +- .../components/preview/preview.tsx | 2 +- .../[automationId]/components/ui/badge.tsx | 45 ---- .../[automationId]/components/ui/button.tsx | 60 ------ .../[automationId]/components/ui/checkbox.tsx | 31 --- .../[automationId]/components/ui/dialog.tsx | 146 ------------- .../[automationId]/components/ui/input.tsx | 21 -- .../[automationId]/components/ui/label.tsx | 23 --- .../[automationId]/components/ui/popover.tsx | 48 ----- .../components/ui/scroll-area.tsx | 57 ----- .../[automationId]/components/ui/select.tsx | 184 ----------------- .../[automationId]/components/ui/sonner.tsx | 25 --- .../[automationId]/components/ui/textarea.tsx | 22 -- .../workflow/components/TestDialog.tsx | 2 +- .../workflow/components/TestResultsPanel.tsx | 2 +- .../components/UnifiedWorkflowCard.tsx | 2 +- .../workflow/components/ViewModeSwitch.tsx | 2 +- .../workflow/components/WorkflowSkeleton.tsx | 2 +- .../workflow/components/WorkflowStepCard.tsx | 2 +- .../workflow/workflow-visualizer-simple.tsx | 8 +- .../automation/[automationId]/layout.tsx | 2 +- .../components/AutomationOverview.tsx | 28 ++- .../overview/components/MetricsSection.tsx | 8 +- .../overview/components/VersionsCard.tsx | 8 +- .../[taskId]/components/AttachmentItem.tsx | 8 +- .../components/AutomationRunsCard.tsx | 6 +- .../[taskId]/components/PropertySelector.tsx | 6 +- .../tasks/[taskId]/components/SingleTask.tsx | 24 +-- .../[taskId]/components/TaskAutomations.tsx | 4 +- .../[taskId]/components/TaskDeleteDialog.tsx | 10 +- .../components/TaskPropertiesSidebar.tsx | 6 +- .../components/AutomationActivityFeed.tsx | 14 +- .../tasks/components/AutomationsSection.tsx | 4 +- .../tasks/components/CreateTaskSheet.tsx | 24 ++- .../tasks/components/TaskFilterHeader.tsx | 2 +- .../[orgId]/tasks/components/TaskList.tsx | 10 +- .../tasks/components/TaskStatusIndicator.tsx | 2 +- .../trust/components/approve-dialog.tsx | 8 +- .../[orgId]/trust/components/columns.tsx | 4 +- .../[orgId]/trust/components/deny-dialog.tsx | 10 +- .../trust/components/duration-picker.tsx | 8 +- .../[orgId]/trust/components/grants-tab.tsx | 127 ++++++------ .../[orgId]/trust/components/request-tab.tsx | 8 +- .../trust/components/revoke-dialog.tsx | 10 +- .../trust-access-request-client.tsx | 2 +- .../(overview)/components/VendorColumns.tsx | 4 +- .../components/VendorDeleteCell.tsx | 4 +- .../[vendorId]/components/VendorActions.tsx | 6 +- .../components/VendorInherentRiskSheet.tsx | 16 +- .../components/VendorResidualRiskForm.tsx | 13 +- .../components/VendorResidualRiskSheet.tsx | 16 +- .../secondary-fields/secondary-fields.tsx | 4 +- .../update-secondary-fields-form.tsx | 12 +- .../tasks/create-vendor-task-form.tsx | 21 +- .../tasks/create-vendor-task-sheet.tsx | 10 +- .../tasks/data-table/client-columns.tsx | 4 +- .../components/tasks/data-table/columns.tsx | 4 +- .../tasks/data-table/data-table.tsx | 2 +- .../tasks/data-table/empty-states.tsx | 4 +- .../tasks/data-table/filter-toolbar.tsx | 12 +- .../title-and-description.tsx | 6 +- .../update-title-and-description-form.tsx | 15 +- .../update-title-and-description-sheet.tsx | 16 +- .../forms/risks/InherentRiskForm.tsx | 14 +- .../forms/risks/ResidualRiskForm.tsx | 14 +- .../secondary-fields/secondary-fields.tsx | 14 +- .../tasks/[taskId]/components/title/title.tsx | 8 +- .../components/title/update-task-sheet.tsx | 23 ++- .../components/charts/category-chart.tsx | 2 +- .../components/charts/status-chart.tsx | 2 +- .../components/charts/vendors-by-category.tsx | 2 +- .../components/charts/vendors-by-status.tsx | 2 +- .../vendors/backup-overview/layout.tsx | 2 +- .../vendors/components/create-vendor-form.tsx | 23 ++- .../components/create-vendor-sheet.tsx | 10 +- .../[code]/components/InviteStatusCard.tsx | 4 +- .../components/PostPaymentOnboarding.tsx | 4 +- .../components/OnboardingFormActions.tsx | 4 +- .../setup/components/OnboardingStepInput.tsx | 6 +- .../components/OrganizationSetupForm.tsx | 2 +- .../setup/components/SetupLoadingStep.tsx | 2 +- .../(app)/setup/components/WebsiteInput.tsx | 2 +- .../(app)/setup/components/accept-invite.tsx | 4 +- .../src/app/(app)/setup/lib/setup-session.ts | 2 +- .../[orgId]/components/booking-step.tsx | 18 +- .../MinimalOrganizationSwitcher.tsx | 5 +- apps/app/src/app/(public)/auth/page.tsx | 4 +- apps/app/src/app/error.tsx | 2 +- apps/app/src/app/global-error.tsx | 2 +- apps/app/src/app/layout.tsx | 4 +- apps/app/src/app/providers.tsx | 2 +- apps/app/src/app/unauthorized.tsx | 4 +- apps/app/src/components/SelectAssignee.tsx | 4 +- .../components/ai-work-preview-authentic.tsx | 4 +- apps/app/src/components/ai-work-preview.tsx | 4 +- apps/app/src/components/ai/chat-avatar.tsx | 4 +- apps/app/src/components/ai/chat-button.tsx | 2 +- apps/app/src/components/ai/chat-text-area.tsx | 6 +- apps/app/src/components/ai/chat.tsx | 2 +- apps/app/src/components/ai/message.tsx | 2 +- apps/app/src/components/ai/risk-display.tsx | 4 +- apps/app/src/components/animated-layout.tsx | 2 +- apps/app/src/components/animated-wrapper.tsx | 2 +- apps/app/src/components/app-onboarding.tsx | 15 +- apps/app/src/components/assigned-user.tsx | 2 +- apps/app/src/components/beta.tsx | 2 +- apps/app/src/components/chat-user.tsx | 2 +- .../src/components/comments/CommentForm.tsx | 4 +- .../src/components/comments/CommentItem.tsx | 10 +- apps/app/src/components/comments/Comments.tsx | 2 +- .../data-table/data-table-action-bar.tsx | 6 +- .../data-table-advanced-toolbar.tsx | 2 +- .../data-table/data-table-column-header.tsx | 4 +- .../data-table/data-table-date-filter.tsx | 8 +- .../data-table/data-table-faceted-filter.tsx | 12 +- .../data-table/data-table-filter-list.tsx | 22 +- .../data-table/data-table-filter-menu.tsx | 20 +- .../data-table/data-table-pagination.tsx | 12 +- .../data-table/data-table-range-filter.tsx | 4 +- .../data-table/data-table-skeleton.tsx | 6 +- .../data-table/data-table-slider-filter.tsx | 12 +- .../data-table/data-table-sort-list.tsx | 18 +- .../data-table/data-table-toolbar.tsx | 6 +- .../data-table/data-table-view-options.tsx | 8 +- .../src/components/data-table/data-table.tsx | 4 +- .../data-table/dynamic-container.tsx | 2 +- .../app/src/components/data-table/faceted.tsx | 8 +- .../src/components/data-table/sortable.tsx | 2 +- .../dialogs/checkout-complete-dialog.tsx | 4 +- .../src/components/editor/advanced-editor.tsx | 2 +- .../src/components/editor/policy-editor.tsx | 2 +- apps/app/src/components/error-fallback.tsx | 2 +- apps/app/src/components/file-uploader.tsx | 8 +- .../organization/delete-organization.tsx | 10 +- .../update-organization-advanced-mode.tsx | 8 +- .../organization/update-organization-name.tsx | 10 +- .../update-organization-website.tsx | 10 +- .../forms/policies/create-new-policy.tsx | 15 +- .../forms/policies/policy-overview.tsx | 18 +- .../forms/policies/update-policy-form.tsx | 15 +- .../forms/risks/InherentRiskForm.tsx | 12 +- .../forms/risks/ResidualRiskForm.tsx | 12 +- .../forms/risks/create-risk-form.tsx | 23 ++- .../components/forms/risks/risk-overview.tsx | 12 +- .../forms/risks/task/update-task-form.tsx | 18 +- .../risks/task/update-task-overview-form.tsx | 8 +- .../forms/risks/update-risk-form.tsx | 15 +- apps/app/src/components/framework-card.tsx | 4 +- .../app/src/components/frameworks/loading.tsx | 6 +- apps/app/src/components/github-sign-in.tsx | 4 +- apps/app/src/components/google-sign-in.tsx | 4 +- apps/app/src/components/header.tsx | 2 +- .../layout/MinimalOrganizationSwitcher.tsx | 6 +- .../src/components/layout/MinimalUserMenu.tsx | 4 +- .../components/layout/SelectionIndicator.tsx | 2 +- apps/app/src/components/login-form.tsx | 6 +- apps/app/src/components/logo-spinner.tsx | 2 +- apps/app/src/components/magic-link.tsx | 8 +- apps/app/src/components/main-menu.tsx | 10 +- apps/app/src/components/mini-data-stream.tsx | 2 +- apps/app/src/components/mobile-menu.tsx | 6 +- .../src/components/organization-switcher.tsx | 18 +- .../app/src/components/pages/PageCore.tsx.tsx | 2 +- .../components/pages/PageWithBreadcrumb.tsx | 4 +- .../policies/charts/policies-by-assignee.tsx | 2 +- .../policies/charts/policies-status.tsx | 4 +- .../policies/charts/policy-overview.tsx | 4 +- .../risks/charts/RiskMatrixChart.tsx | 4 +- .../components/risks/charts/RisksAssignee.tsx | 6 +- .../components/risks/charts/assessment.tsx | 4 +- .../risks/charts/department-chart.tsx | 2 +- .../components/risks/charts/donut-chart.tsx | 2 +- .../risks/charts/risks-by-department.tsx | 2 +- .../risks/charts/risks-by-status.tsx | 2 +- .../components/risks/charts/status-chart.tsx | 2 +- .../src/components/risks/risk-overview.tsx | 4 +- .../components/risks/tasks/task-overview.tsx | 6 +- apps/app/src/components/search-field.tsx | 4 +- apps/app/src/components/select-user.tsx | 4 +- apps/app/src/components/selectable-pill.tsx | 2 +- .../src/components/sheets/assistant-sheet.tsx | 8 +- .../components/sheets/create-policy-sheet.tsx | 10 +- .../components/sheets/create-risk-sheet.tsx | 10 +- .../components/sheets/risk-overview-sheet.tsx | 16 +- .../components/sheets/task-overview-sheet.tsx | 16 +- .../components/sidebar-collapse-button.tsx | 4 +- apps/app/src/components/sidebar-logo.tsx | 4 +- apps/app/src/components/sidebar.tsx | 2 +- apps/app/src/components/sign-out.tsx | 4 +- apps/app/src/components/skeleton-loader.tsx | 4 +- apps/app/src/components/status-date.tsx | 2 +- apps/app/src/components/status-indicator.tsx | 2 +- .../tables/people/employee-status.tsx | 2 +- .../components/tables/policies/columns.tsx | 2 +- .../tables/policies/data-table-header.tsx | 4 +- .../tables/policies/data-table-pagination.tsx | 10 +- .../components/tables/policies/data-table.tsx | 4 +- .../tables/policies/empty-states.tsx | 4 +- .../tables/policies/filter-toolbar.tsx | 16 +- .../components/tables/policies/loading.tsx | 6 +- .../tables/risk-register/columns.tsx | 4 +- .../risk-register/data-table-header.tsx | 4 +- .../risk-register/data-table-pagination.tsx | 10 +- .../tables/risk-register/data-table.tsx | 4 +- .../tables/risk-register/empty-states.tsx | 4 +- .../tables/risk-register/filter-toolbar.tsx | 16 +- .../tables/risk-register/loading.tsx | 6 +- .../components/tables/risk-tasks/columns.tsx | 2 +- .../tables/risk-tasks/data-table-header.tsx | 4 +- .../risk-tasks/data-table-pagination.tsx | 10 +- .../tables/risk-tasks/data-table.tsx | 4 +- .../tables/risk-tasks/empty-states.tsx | 4 +- .../tables/risk-tasks/filter-toolbar.tsx | 6 +- .../components/tables/risk-tasks/loading.tsx | 6 +- .../tests/charts/tests-by-assignee.tsx | 2 +- .../tests/charts/tests-severity.tsx | 4 +- apps/app/src/components/theme-switch.tsx | 2 +- apps/app/src/components/ui/button-icon.tsx | 2 +- .../components/ui/data-table/DataTable.tsx | 26 +-- .../ui/data-table/DataTableHeader.tsx | 4 +- .../ui/data-table/DataTablePagination.tsx | 10 +- .../ui/data-table/DataTableSkeleton.tsx | 4 +- apps/app/src/components/upload/FileCard.tsx | 10 +- apps/app/src/components/user-menu.tsx | 4 +- apps/app/src/components/vendor-status.tsx | 2 +- .../src/jobs/tasks/email/new-policy-email.ts | 2 +- .../tasks/email/publish-all-policies-email.ts | 2 +- .../tasks/integration/integration-results.ts | 2 +- apps/app/src/lib/db/employee.ts | 2 +- apps/app/src/lib/rate-limit.ts | 2 +- apps/app/src/lib/validations.ts | 2 +- apps/app/src/test-utils/mocks/db.ts | 2 +- apps/app/src/utils/auth.ts | 8 +- apps/app/tsconfig.json | 39 +--- apps/portal/package.json | 4 +- apps/portal/src/actions/safe-action.ts | 2 +- .../[orgId]/components/EmployeeTasksList.tsx | 4 +- .../components/policy/AdvancedEditor.tsx | 2 +- .../[orgId]/components/policy/PolicyCard.tsx | 8 +- .../components/policy/PolicyCarousel.tsx | 2 +- .../components/policy/PolicyContainer.tsx | 2 +- .../[orgId]/components/policy/PolicyGrid.tsx | 2 +- .../components/policy/PortalPdfViewer.tsx | 2 +- .../tasks/DeviceAgentAccordionItem.tsx | 23 ++- .../tasks/GeneralTrainingAccordionItem.tsx | 4 +- .../tasks/PoliciesAccordionItem.tsx | 6 +- .../components/video/CarouselControls.tsx | 2 +- .../[orgId]/components/video/YoutubeEmbed.tsx | 2 +- .../policy/[policyId]/PolicyAcceptButton.tsx | 2 +- .../(home)/[orgId]/policy/[policyId]/page.tsx | 4 +- .../(home)/components/NoAccessMessage.tsx | 2 +- .../app/(app)/(home)/components/Overview.tsx | 2 +- apps/portal/src/app/(public)/auth/page.tsx | 13 +- .../src/app/api/download-agent/route.ts | 2 +- .../src/app/api/download-agent/token/route.ts | 2 +- .../src/app/components/google-sign-in.tsx | 4 +- apps/portal/src/app/components/header.tsx | 4 +- apps/portal/src/app/components/logout.tsx | 2 +- apps/portal/src/app/components/main-menu.tsx | 6 +- .../portal/src/app/components/mobile-menu.tsx | 6 +- apps/portal/src/app/components/otp-form.tsx | 6 +- apps/portal/src/app/components/otp.tsx | 8 +- apps/portal/src/app/components/sidebar.tsx | 2 +- .../src/app/components/theme-switch.tsx | 2 +- apps/portal/src/app/components/user-menu.tsx | 4 +- apps/portal/src/app/layout.tsx | 6 +- apps/portal/src/app/lib/auth.ts | 2 +- bun.lock | 70 ++++--- package.json | 6 +- packages/analytics/package.json | 1 + packages/db/src/index.ts | 4 +- packages/ui/package.json | 11 +- .../components/animated-size-container.tsx | 2 +- packages/ui/src/components/button-icon.tsx | 2 +- packages/ui/src/index.ts | 13 -- packages/ui/src/package.json | 6 - 383 files changed, 1611 insertions(+), 1946 deletions(-) delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/badge.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/button.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/checkbox.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/dialog.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/input.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/label.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/popover.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/scroll-area.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/select.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/sonner.tsx delete mode 100644 apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/textarea.tsx delete mode 100644 packages/ui/src/index.ts delete mode 100644 packages/ui/src/package.json diff --git a/apps/api/src/attachments/attachments.service.ts b/apps/api/src/attachments/attachments.service.ts index 8e701cefc..6d7c4ccba 100644 --- a/apps/api/src/attachments/attachments.service.ts +++ b/apps/api/src/attachments/attachments.service.ts @@ -14,6 +14,7 @@ import { import { randomBytes } from 'crypto'; import { AttachmentResponseDto } from '../tasks/dto/task-responses.dto'; import { UploadAttachmentDto } from './upload-attachment.dto'; +import { db } from '@trycompai/db'; @Injectable() export class AttachmentsService { diff --git a/apps/api/src/vendors/vendors.service.ts b/apps/api/src/vendors/vendors.service.ts index f8787d171..159848356 100644 --- a/apps/api/src/vendors/vendors.service.ts +++ b/apps/api/src/vendors/vendors.service.ts @@ -1,5 +1,5 @@ import { Injectable, NotFoundException, Logger } from '@nestjs/common'; -import from '@trycompai/db'; +import { db } from '@trycompai/db'; import { CreateVendorDto } from './dto/create-vendor.dto'; import { UpdateVendorDto } from './dto/update-vendor.dto'; diff --git a/apps/app/package.json b/apps/app/package.json index 783ef7d92..da39e7545 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "dependencies": { "@ai-sdk/anthropic": "^2.0.0", + "@ai-sdk/gateway": "^2.0.11", "@ai-sdk/groq": "^2.0.0", "@ai-sdk/openai": "^2.0.65", "@ai-sdk/provider": "^2.0.0", @@ -33,9 +34,6 @@ "@novu/api": "^1.6.0", "@novu/nextjs": "^3.10.1", "@number-flow/react": "^0.5.9", - "@prisma/client": "^6.19.0", - "@prisma/instrumentation": "^6.19.0", - "@prisma/nextjs-monorepo-workaround-plugin": "^6.13.0", "@radix-ui/react-slot": "^1.2.4", "@react-email/components": "^0.0.41", "@react-email/render": "^1.1.2", @@ -50,10 +48,15 @@ "@tiptap/extension-table-cell": "^3.4.4", "@tiptap/extension-table-header": "^3.4.4", "@tiptap/extension-table-row": "^3.4.4", + "@tiptap/react": "^3.11.0", "@trigger.dev/react-hooks": "4.0.6", "@trigger.dev/sdk": "4.0.6", - "@trycompai/db": "^1.3.17", + "@trycompai/db": "workspace:*", "@trycompai/email": "workspace:*", + "@trycompai/integrations": "workspace:*", + "@trycompai/kv": "workspace:*", + "@trycompai/ui": "workspace:*", + "@trycompai/utils": "workspace:*", "@uploadthing/react": "^7.3.0", "@upstash/ratelimit": "^2.0.5", "@vercel/analytics": "^1.5.0", @@ -72,10 +75,10 @@ "geist": "^1.3.1", "jspdf": "^3.0.3", "lucide-react": "^0.553.0", - "motion": "^12.9.2", + "motion": "^12.23.24", "next": "^16.0.3", "next-safe-action": "^8.0.3", - "next-themes": "^0.4.4", + "next-themes": "^0.4.6", "nuqs": "^2.4.3", "pdf-parse": "^2.4.5", "playwright-core": "^1.52.0", @@ -98,7 +101,7 @@ "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "resend": "^6.4.2", - "sonner": "^2.0.5", + "sonner": "^2.0.7", "swr": "^2.3.4", "three": "^0.177.0", "ts-pattern": "^5.7.0", @@ -133,7 +136,6 @@ "glob": "^11.0.3", "jsdom": "^26.1.0", "postcss": "^8.5.4", - "prisma": "^6.19.0", "raw-loader": "^4.0.2", "tailwindcss": "^4.1.8", "typescript": "^5.9.2", diff --git a/apps/app/src/actions/safe-action.ts b/apps/app/src/actions/safe-action.ts index f149cfe25..63ba5d4b6 100644 --- a/apps/app/src/actions/safe-action.ts +++ b/apps/app/src/actions/safe-action.ts @@ -2,8 +2,8 @@ import { track } from '@/app/posthog'; import { env } from '@/env.mjs'; import { auth } from '@/utils/auth'; import { logger } from '@/utils/logger'; -import { client } from '@comp/kv'; import { AuditLogEntityType, db } from '@trycompai/db'; +import { client } from '@trycompai/kv'; import { Ratelimit } from '@upstash/ratelimit'; import { DEFAULT_SERVER_ERROR_MESSAGE, createSafeActionClient } from 'next-safe-action'; import { revalidatePath } from 'next/cache'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ChatPlaceholder.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ChatPlaceholder.tsx index 33fb1691f..6c93e6128 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ChatPlaceholder.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ChatPlaceholder.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; import { MessageSquare } from 'lucide-react'; export function ChatPlaceholder() { diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudConnectionCard.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudConnectionCard.tsx index 479770906..c017b4b61 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudConnectionCard.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudConnectionCard.tsx @@ -1,9 +1,9 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; import { ExternalLink, Loader2 } from 'lucide-react'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx index 555ab169a..8dc96e446 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/CloudSettingsModal.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,10 +8,10 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; +} from '@trycompai/ui/dialog'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { Edit2, Loader2, Trash2, X } from 'lucide-react'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx index 8f6651b6f..6540526ee 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx @@ -1,10 +1,16 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; import { ArrowLeft, CheckCircle2, Cloud, ExternalLink, Loader2 } from 'lucide-react'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/FindingsTable.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/FindingsTable.tsx index 4f203cdd3..c438cefdf 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/FindingsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/FindingsTable.tsx @@ -1,8 +1,8 @@ 'use client'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@comp/ui/table'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; import { ChevronDown, ChevronRight } from 'lucide-react'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ResultsView.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ResultsView.tsx index d8a5c301e..8900b9456 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ResultsView.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/ResultsView.tsx @@ -1,8 +1,14 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import type { AnyRealtimeRun } from '@trigger.dev/sdk'; +import { Button } from '@trycompai/ui/button'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; import { AlertTriangle, CheckCircle2, Info, Loader2, RefreshCw, X } from 'lucide-react'; import { useMemo, useState } from 'react'; import { FindingsTable } from './FindingsTable'; diff --git a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx index 2f6e3d80f..719ecfd0f 100644 --- a/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx +++ b/apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx @@ -1,10 +1,10 @@ 'use client'; import type { runIntegrationTests } from '@/jobs/tasks/integration/run-integration-tests'; -import { Button } from '@comp/ui/button'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; import { useRealtimeTaskTrigger } from '@trigger.dev/react-hooks'; import { Integration } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { Plus, Settings } from 'lucide-react'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx b/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx index 9ca38b21e..71ee1159f 100644 --- a/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/DynamicMinHeight.tsx @@ -1,6 +1,6 @@ 'use client'; -import { cn } from '@comp/ui/cn'; +import { cn } from '@trycompai/ui/cn'; import { useEffect, useMemo, useRef, useState } from 'react'; interface DynamicMinHeightProps { diff --git a/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx b/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx index 76ebf7efe..d9c0021d2 100644 --- a/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx +++ b/apps/app/src/app/(app)/[orgId]/components/OnboardingTracker.tsx @@ -1,9 +1,9 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent } from '@comp/ui/card'; import { useRealtimeRun } from '@trigger.dev/react-hooks'; import type { Onboarding } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent } from '@trycompai/ui/card'; import { AnimatePresence, motion } from 'framer-motion'; import { AlertTriangle, diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx index 0299764db..a0676b66c 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/ControlDeleteDialog.tsx @@ -1,7 +1,9 @@ 'use client'; import { deleteControlAction } from '@/app/(app)/[orgId]/controls/[controlId]/actions/delete-control'; -import { Button } from '@comp/ui/button'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Control } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -9,10 +11,8 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Form } from '@comp/ui/form'; -import { zodResolver } from '@hookform/resolvers/zod'; -import { Control } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; +import { Form } from '@trycompai/ui/form'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx index 025ceb4ed..15aca2213 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/PoliciesTable.tsx @@ -4,10 +4,10 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { StatusIndicator } from '@/components/status-indicator'; import { useDataTable } from '@/hooks/use-data-table'; -import { Icons } from '@comp/ui/icons'; -import { Input } from '@comp/ui/input'; import { ColumnDef } from '@tanstack/react-table'; import { Policy } from '@trycompai/db'; +import { Icons } from '@trycompai/ui/icons'; +import { Input } from '@trycompai/ui/input'; import { useMemo, useState } from 'react'; interface PoliciesTableProps { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx index e08fb2dea..dd9e5795f 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/RequirementsTable.tsx @@ -3,8 +3,6 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { useDataTable } from '@/hooks/use-data-table'; -import { Icons } from '@comp/ui/icons'; -import { Input } from '@comp/ui/input'; import { ColumnDef } from '@tanstack/react-table'; import type { FrameworkEditorFramework, @@ -12,6 +10,8 @@ import type { FrameworkInstance, RequirementMap, } from '@trycompai/db'; +import { Icons } from '@trycompai/ui/icons'; +import { Input } from '@trycompai/ui/input'; import { useMemo, useState } from 'react'; interface RequirementsTableProps { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx index d65fcd5da..fd2ed79bb 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControl.tsx @@ -1,14 +1,6 @@ 'use client'; import { StatusIndicator } from '@/components/status-indicator'; -import { Button } from '@comp/ui/button'; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; import type { Control, FrameworkEditorFramework, @@ -18,6 +10,14 @@ import type { RequirementMap, Task, } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from '@trycompai/ui/dropdown-menu'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { MoreVertical, Trash2 } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx index 4fbb1f5bb..5e46ccc97 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/SingleControlSkeleton.tsx @@ -1,6 +1,6 @@ -import { CardContent, CardHeader, CardTitle } from '@comp/ui/card'; +import { CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; -import { Card } from '@comp/ui/card'; +import { Card } from '@trycompai/ui/card'; export const SingleControlSkeleton = () => { return ( diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx index cd68819d4..b31505265 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/TasksTable.tsx @@ -4,10 +4,10 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { StatusIndicator } from '@/components/status-indicator'; import { useDataTable } from '@/hooks/use-data-table'; -import { Icons } from '@comp/ui/icons'; -import { Input } from '@comp/ui/input'; import { ColumnDef } from '@tanstack/react-table'; import { Task } from '@trycompai/db'; +import { Icons } from '@trycompai/ui/icons'; +import { Input } from '@trycompai/ui/input'; import { useMemo, useState } from 'react'; interface TasksTableProps { diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx index 4281f55a1..69bf9600c 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTable.tsx @@ -2,8 +2,8 @@ import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; -import { Table, TableBody, TableCell, TableRow } from '@comp/ui/table'; import type { FrameworkEditorRequirement, Policy, Task } from '@trycompai/db'; +import { Table, TableBody, TableCell, TableRow } from '@trycompai/ui/table'; import { useParams, useRouter } from 'next/navigation'; import { ControlRequirementsTableColumns } from './ControlRequirementsTableColumns'; import { ControlRequirementsTableHeader } from './ControlRequirementsTableHeader'; diff --git a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx index 2f95bf465..ef2184d76 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/[controlId]/components/table/ControlRequirementsTableHeader.tsx @@ -1,7 +1,7 @@ 'use client'; -import { TableHead, TableHeader, TableRow } from '@comp/ui/table'; import type { Table } from '@tanstack/react-table'; +import { TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; import type { RequirementTableData } from './ControlRequirementsTable'; type Props = { diff --git a/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx b/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx index 38df3f8da..92322074e 100644 --- a/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/controls/components/CreateControlSheet.tsx @@ -1,15 +1,15 @@ 'use client'; import { createControlAction } from '@/actions/controls/create-control-action'; -import { Button } from '@comp/ui/button'; -import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; -import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { useMediaQuery } from '@comp/ui/hooks'; -import { Input } from '@comp/ui/input'; -import MultipleSelector, { Option } from '@comp/ui/multiple-selector'; -import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@comp/ui/sheet'; -import { Textarea } from '@comp/ui/textarea'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Button } from '@trycompai/ui/button'; +import { Drawer, DrawerContent, DrawerTitle } from '@trycompai/ui/drawer'; +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { useMediaQuery } from '@trycompai/ui/hooks'; +import { Input } from '@trycompai/ui/input'; +import MultipleSelector, { Option } from '@trycompai/ui/multiple-selector'; +import { Sheet, SheetContent, SheetHeader, SheetTitle } from '@trycompai/ui/sheet'; +import { Textarea } from '@trycompai/ui/textarea'; import { ArrowRightIcon, X } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/error.tsx b/apps/app/src/app/(app)/[orgId]/error.tsx index 67b4ceae3..a61fbf685 100644 --- a/apps/app/src/app/(app)/[orgId]/error.tsx +++ b/apps/app/src/app/(app)/[orgId]/error.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import Link from 'next/link'; import { useEffect } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.tsx index 362f79e55..b79b3f5cc 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkDeleteDialog.tsx @@ -1,6 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,9 +9,8 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Form } from '@comp/ui/form'; -import { zodResolver } from '@hookform/resolvers/zod'; +} from '@trycompai/ui/dialog'; +import { Form } from '@trycompai/ui/form'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx index 549ccb15e..ad22e9860 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/FrameworkOverview.tsx @@ -1,17 +1,17 @@ 'use client'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { cn } from '@comp/ui/cn'; +import { Control, Task } from '@trycompai/db'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { cn } from '@trycompai/ui/cn'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Progress } from '@comp/ui/progress'; -import { Control, Task } from '@trycompai/db'; +} from '@trycompai/ui/dropdown-menu'; +import { Progress } from '@trycompai/ui/progress'; import { BarChart3, MoreVertical, Target, Trash2 } from 'lucide-react'; import { useState } from 'react'; import { getControlStatus } from '../../lib/utils'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTable.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTable.tsx index 1c9d2fdd3..f9a161f9b 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTable.tsx @@ -1,8 +1,8 @@ 'use client'; import { Loading } from '@/components/tables/risk-tasks/loading'; -import { Table, TableBody, TableCell, TableRow } from '@comp/ui/table'; import { flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; +import { Table, TableBody, TableCell, TableRow } from '@trycompai/ui/table'; import { Suspense } from 'react'; import { FrameworkControlsTableColumns, diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx index 6666e2f37..34d578400 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableColumns.tsx @@ -1,9 +1,9 @@ 'use client'; import { StatusIndicator, StatusType } from '@/components/status-indicator'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; import type { ColumnDef } from '@tanstack/react-table'; import type { Policy } from '@trycompai/db'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@trycompai/ui/tooltip'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableHeader.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableHeader.tsx index da89f8381..b53e3117a 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableHeader.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/components/table/FrameworkControlsTableHeader.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { TableHead, TableHeader, TableRow } from '@comp/ui/table'; +import { Button } from '@trycompai/ui/button'; +import { TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; import { ArrowDown, ArrowUp } from 'lucide-react'; import { usePathname, useRouter, useSearchParams } from 'next/navigation'; import { useCallback } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx index c482e8f8b..aac7af2ee 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTable.tsx @@ -3,9 +3,9 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { useDataTable } from '@/hooks/use-data-table'; -import { Input } from '@comp/ui/input'; import { ColumnDef } from '@tanstack/react-table'; import type { Control, Task } from '@trycompai/db'; +import { Input } from '@trycompai/ui/input'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx index 63feda7cd..fe0d47ad2 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/[frameworkInstanceId]/requirements/[requirementKey]/components/table/RequirementControlsTableColumns.tsx @@ -2,9 +2,9 @@ import { StatusIndicator } from '@/components/status-indicator'; import { isPolicyCompleted } from '@/lib/control-compliance'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; import type { ColumnDef } from '@tanstack/react-table'; import type { Control, Policy, Task } from '@trycompai/db'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@trycompai/ui/tooltip'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { getControlStatus } from '../../../../../lib/utils'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx index ffda1453b..6fee15eaa 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/AddFrameworkModal.tsx @@ -11,16 +11,16 @@ import type { z } from 'zod'; import { addFrameworksToOrganizationAction } from '@/actions/organization/add-frameworks-to-organization-action'; import { addFrameworksSchema } from '@/actions/schema'; import { FrameworkCard } from '@/components/framework-card'; -import { Button } from '@comp/ui/button'; +import type { FrameworkEditorFramework } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import type { FrameworkEditorFramework } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; type Props = { onOpenChange: (isOpen: boolean) => void; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx index 7e30e5647..cb55e0bf2 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceOverview.tsx @@ -1,8 +1,8 @@ 'use client'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { Progress } from '@comp/ui/progress'; import { FrameworkInstance } from '@trycompai/db'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Progress } from '@trycompai/ui/progress'; import { ComplianceProgressChart } from './ComplianceProgressChart'; import { PoliciesChart } from './PoliciesChart'; import { TasksChart } from './TasksChart'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceProgressChart.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceProgressChart.tsx index 8a961b384..52eac7077 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceProgressChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/ComplianceProgressChart.tsx @@ -3,13 +3,13 @@ import * as React from 'react'; import { Label, Pie, PieChart } from 'recharts'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Info } from 'lucide-react'; interface ComplianceProgressData { diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/ConfirmActionDialog.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/ConfirmActionDialog.tsx index fce3e300e..b57ab3820 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/ConfirmActionDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/ConfirmActionDialog.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,7 +8,7 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; interface ConfirmActionDialogProps { isOpen: boolean; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx index 2ffd08039..07fa8daee 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/FrameworksOverview.tsx @@ -1,10 +1,10 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; -import { Dialog } from '@comp/ui/dialog'; -import { ScrollArea } from '@comp/ui/scroll-area'; import type { FrameworkEditorFramework } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Dialog } from '@trycompai/ui/dialog'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; import { PlusIcon } from 'lucide-react'; import Image from 'next/image'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/PoliciesChart.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/PoliciesChart.tsx index 847a1c514..9790a8bc3 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/PoliciesChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/PoliciesChart.tsx @@ -3,13 +3,13 @@ import * as React from 'react'; import { Label, Pie, PieChart } from 'recharts'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Info } from 'lucide-react'; interface PoliciesChartData { diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/TasksChart.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/TasksChart.tsx index 3c7337c29..fb003049c 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/TasksChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/TasksChart.tsx @@ -3,13 +3,13 @@ import * as React from 'react'; import { Label, Pie, PieChart } from 'recharts'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Info } from 'lucide-react'; interface TasksChartData { diff --git a/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx b/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx index 3e8e853ce..849bf7584 100644 --- a/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/frameworks/components/ToDoOverview.tsx @@ -1,11 +1,11 @@ 'use client'; import { publishAllPoliciesAction } from '@/actions/policies/publish-all'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { ScrollArea } from '@comp/ui/scroll-area'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; import { Policy, Task } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { ArrowRight, CheckCircle2, diff --git a/apps/app/src/app/(app)/[orgId]/integrations/components/IntegrationsGrid.tsx b/apps/app/src/app/(app)/[orgId]/integrations/components/IntegrationsGrid.tsx index eb9cb771d..9e1a38b45 100644 --- a/apps/app/src/app/(app)/[orgId]/integrations/components/IntegrationsGrid.tsx +++ b/apps/app/src/app/(app)/[orgId]/integrations/components/IntegrationsGrid.tsx @@ -1,17 +1,17 @@ 'use client'; import { api } from '@/lib/api-client'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Skeleton } from '@comp/ui/skeleton'; +} from '@trycompai/ui/dialog'; +import { Skeleton } from '@trycompai/ui/skeleton'; import { ArrowRight, CheckCircle2, Loader2, Plug, Sparkles, Zap } from 'lucide-react'; import Image from 'next/image'; import Link from 'next/link'; diff --git a/apps/app/src/app/(app)/[orgId]/integrations/components/SearchInput.tsx b/apps/app/src/app/(app)/[orgId]/integrations/components/SearchInput.tsx index 41e90f8dc..e9d9c59c4 100644 --- a/apps/app/src/app/(app)/[orgId]/integrations/components/SearchInput.tsx +++ b/apps/app/src/app/(app)/[orgId]/integrations/components/SearchInput.tsx @@ -1,6 +1,6 @@ 'use client'; -import { cn } from '@comp/ui/utils/cn'; +import { cn } from '@trycompai/ui/utils/cn'; import { Search, X } from 'lucide-react'; interface SearchInputProps { diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx index 4e78478fe..09565da5b 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeDetails.tsx @@ -1,10 +1,10 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; -import { Form } from '@comp/ui/form'; import { zodResolver } from '@hookform/resolvers/zod'; import type { Departments, Member, User } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Form } from '@trycompai/ui/form'; import { Save } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useForm } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx index 563e664b5..ffe45f77e 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/EmployeeTasks.tsx @@ -2,8 +2,8 @@ import type { TrainingVideo } from '@/lib/data/training-videos'; import type { EmployeeTrainingVideoCompletion, Member, Policy, User } from '@trycompai/db'; import { cn } from '@/lib/utils'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { AlertCircle, CheckCircle2, XCircle } from 'lucide-react'; import type { FleetPolicy, Host } from '../../devices/types'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx index ff35287ad..821529ad8 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Department.tsx @@ -1,6 +1,12 @@ -import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import type { Departments } from '@trycompai/db'; +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; import type { Control } from 'react-hook-form'; import type { EmployeeFormValues } from '../EmployeeDetails'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Email.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Email.tsx index af31cdd29..f6d94e145 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Email.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Email.tsx @@ -1,5 +1,5 @@ -import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { Input } from '@comp/ui/input'; +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { Input } from '@trycompai/ui/input'; import type { Control } from 'react-hook-form'; import type { EmployeeFormValues } from '../EmployeeDetails'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/JoinDate.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/JoinDate.tsx index 10b8ed210..416698ef3 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/JoinDate.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/JoinDate.tsx @@ -1,8 +1,8 @@ -import { Button } from '@comp/ui/button'; -import { Calendar } from '@comp/ui/calendar'; -import { cn } from '@comp/ui/cn'; -import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { Popover, PopoverContent, PopoverTrigger } from '@comp/ui/popover'; +import { Button } from '@trycompai/ui/button'; +import { Calendar } from '@trycompai/ui/calendar'; +import { cn } from '@trycompai/ui/cn'; +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { Popover, PopoverContent, PopoverTrigger } from '@trycompai/ui/popover'; import { format } from 'date-fns'; import { CalendarIcon } from 'lucide-react'; import type { Control } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Name.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Name.tsx index 38dc6c952..c5e9f0f99 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Name.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Name.tsx @@ -1,5 +1,5 @@ -import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { Input } from '@comp/ui/input'; +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { Input } from '@trycompai/ui/input'; import type { Control } from 'react-hook-form'; import type { EmployeeFormValues } from '../EmployeeDetails'; diff --git a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Status.tsx b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Status.tsx index fe8c387cb..4dbcc748f 100644 --- a/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Status.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/[employeeId]/components/Fields/Status.tsx @@ -1,7 +1,13 @@ import type { EmployeeStatusType } from '@/components/tables/people/employee-status'; -import { cn } from '@comp/ui/cn'; -import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; +import { cn } from '@trycompai/ui/cn'; +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; import type { Control } from 'react-hook-form'; import type { EmployeeFormValues } from '../EmployeeDetails'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts b/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts index 2aeae7285..417744872 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts +++ b/apps/app/src/app/(app)/[orgId]/people/all/actions/revokeInvitation.ts @@ -2,7 +2,7 @@ import { db } from '@trycompai/db'; // Remove unused Role import if not needed elsewhere -// import { Role } from "@comp/db/types"; +// import { Role } from "@trycompai/db/types"; import { revalidatePath, revalidateTag } from 'next/cache'; import { z } from 'zod'; // Adjust safe-action import for colocalized structure diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx index d03a715a2..d47581294 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/InviteMembersModal.tsx @@ -11,7 +11,7 @@ import { z } from 'zod'; import type { ActionResponse } from '@/actions/types'; import { authClient } from '@/utils/auth-client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -19,7 +19,7 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { Form, FormControl, @@ -28,9 +28,9 @@ import { FormItem, FormLabel, FormMessage, -} from '@comp/ui/form'; -import { Input } from '@comp/ui/input'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; +} from '@trycompai/ui/form'; +import { Input } from '@trycompai/ui/input'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { addEmployeeWithoutInvite } from '../actions/addEmployeeWithoutInvite'; import { MultiRoleCombobox } from './MultiRoleCombobox'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx index 0dce565df..708d2140a 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MemberRow.tsx @@ -5,6 +5,7 @@ import Link from 'next/link'; import { useParams } from 'next/navigation'; import { useRef, useState } from 'react'; +import type { Role } from '@trycompai/db'; import { AlertDialog, AlertDialogAction, @@ -14,10 +15,10 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, -} from '@comp/ui/alert-dialog'; -import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; +} from '@trycompai/ui/alert-dialog'; +import { Avatar, AvatarFallback, AvatarImage } from '@trycompai/ui/avatar'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -26,15 +27,14 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Label } from '@comp/ui/label'; -import type { Role } from '@trycompai/db'; +} from '@trycompai/ui/dropdown-menu'; +import { Label } from '@trycompai/ui/label'; import { MultiRoleCombobox } from './MultiRoleCombobox'; import type { MemberWithUser } from './TeamMembers'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx index 8c81f62e0..67e009b04 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleCombobox.tsx @@ -3,7 +3,7 @@ import type { Role } from '@trycompai/db'; import * as React from 'react'; -import { Dialog, DialogContent } from '@comp/ui/dialog'; +import { Dialog, DialogContent } from '@trycompai/ui/dialog'; import { MultiRoleComboboxContent } from './MultiRoleComboboxContent'; import { MultiRoleComboboxTrigger } from './MultiRoleComboboxTrigger'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx index 57edb8009..44a1d478b 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxContent.tsx @@ -1,5 +1,6 @@ 'use client'; +import type { Role } from '@trycompai/db'; // Assuming Role is from prisma import { Command, CommandEmpty, @@ -7,11 +8,10 @@ import { CommandInput, CommandItem, CommandList, -} from '@comp/ui/command'; -import type { Role } from '@trycompai/db'; // Assuming Role is from prisma +} from '@trycompai/ui/command'; import { Check } from 'lucide-react'; -import { cn } from '@comp/ui/cn'; +import { cn } from '@trycompai/ui/cn'; interface MultiRoleComboboxContentProps { searchTerm: string; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx index b5ab52073..5ed708984 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/MultiRoleComboboxTrigger.tsx @@ -1,10 +1,10 @@ 'use client'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; -import { cn } from '@comp/ui/cn'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; import type { Role } from '@trycompai/db'; // Assuming Role is from prisma +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; +import { cn } from '@trycompai/ui/cn'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@trycompai/ui/tooltip'; import { ChevronsUpDown, Lock, X } from 'lucide-react'; interface MultiRoleComboboxTriggerProps { diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx index adf210bed..8452689dd 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/PendingInvitationRow.tsx @@ -1,8 +1,9 @@ 'use client'; -import { Avatar, AvatarFallback } from '@comp/ui/avatar'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; +import type { Invitation } from '@trycompai/db'; +import { Avatar, AvatarFallback } from '@trycompai/ui/avatar'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -11,14 +12,13 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import type { Invitation } from '@trycompai/db'; +} from '@trycompai/ui/dropdown-menu'; import { Clock, MoreHorizontal, Trash2 } from 'lucide-react'; import { useEffect, useMemo, useRef, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx b/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx index 1864a9704..762120fe0 100644 --- a/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/all/components/TeamMembersClient.tsx @@ -7,12 +7,18 @@ import { useState } from 'react'; import { toast } from 'sonner'; import { authClient } from '@/utils/auth-client'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent } from '@comp/ui/card'; -import { Input } from '@comp/ui/input'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Separator } from '@comp/ui/separator'; import type { Invitation, Role } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent } from '@trycompai/ui/card'; +import { Input } from '@trycompai/ui/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; +import { Separator } from '@trycompai/ui/separator'; import { MemberRow } from './MemberRow'; import { PendingInvitationRow } from './PendingInvitationRow'; diff --git a/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx b/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx index bd3ce4a2c..9e211a747 100644 --- a/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/dashboard/components/EmployeeCompletionChart.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { Input } from '@comp/ui/input'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Input } from '@trycompai/ui/input'; import { ExternalLink, Search } from 'lucide-react'; import Link from 'next/link'; import { useParams } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceComplianceChart.tsx b/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceComplianceChart.tsx index 13d2cec06..cef1436cc 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceComplianceChart.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/devices/components/DeviceComplianceChart.tsx @@ -1,12 +1,12 @@ 'use client'; -import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@trycompai/ui/card'; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import * as React from 'react'; import { Cell, Label, Pie, PieChart } from 'recharts'; import type { Host } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx b/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx index d1786cbdf..e039de2ff 100644 --- a/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/devices/components/HostDetails.tsx @@ -1,6 +1,6 @@ -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { cn } from '@comp/ui/cn'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { cn } from '@trycompai/ui/cn'; import { ArrowLeft, CheckCircle2, XCircle } from 'lucide-react'; import { useMemo } from 'react'; import type { Host } from '../types'; diff --git a/apps/app/src/app/(app)/[orgId]/people/layout.tsx b/apps/app/src/app/(app)/[orgId]/people/layout.tsx index cd6d39350..e84cca241 100644 --- a/apps/app/src/app/(app)/[orgId]/people/layout.tsx +++ b/apps/app/src/app/(app)/[orgId]/people/layout.tsx @@ -1,6 +1,6 @@ import { auth } from '@/utils/auth'; -import { SecondaryMenu } from '@comp/ui/secondary-menu'; import { db } from '@trycompai/db'; +import { SecondaryMenu } from '@trycompai/ui/secondary-menu'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx index ed01f8f87..6fdf4992c 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-assignee-chart.tsx @@ -2,14 +2,14 @@ import * as React from 'react'; -import { Badge } from '@comp/ui/badge'; -import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; +import { Badge } from '@trycompai/ui/badge'; +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@trycompai/ui/card'; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Users } from 'lucide-react'; import { Bar, BarChart, ResponsiveContainer, XAxis, YAxis } from 'recharts'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx index e2bfbd187..e9c665f11 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/(overview)/components/policy-status-chart.tsx @@ -3,14 +3,14 @@ import * as React from 'react'; import { Label, Pie, PieChart } from 'recharts'; -import { Badge } from '@comp/ui/badge'; -import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@comp/ui/card'; +import { Badge } from '@trycompai/ui/badge'; +import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@trycompai/ui/card'; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, -} from '@comp/ui/chart'; +} from '@trycompai/ui/chart'; import { Info } from 'lucide-react'; interface PolicyOverviewData { diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PdfViewer.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PdfViewer.tsx index 8ee67c6de..d062a9a6c 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PdfViewer.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PdfViewer.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Card, CardContent, CardHeader, CardTitle } from '@comp/ui/card'; -import { cn } from '@comp/ui/cn'; +import { Card, CardContent, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { cn } from '@trycompai/ui/cn'; import { ExternalLink, FileText, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyActionDialog.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyActionDialog.tsx index 82e89eefa..dec8f49ab 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyActionDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyActionDialog.tsx @@ -1,7 +1,8 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { cn } from '@comp/ui/cn'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Button } from '@trycompai/ui/button'; +import { cn } from '@trycompai/ui/cn'; import { Dialog, DialogContent, @@ -9,10 +10,9 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Form, FormControl, FormField, FormItem } from '@comp/ui/form'; -import { Textarea } from '@comp/ui/textarea'; -import { zodResolver } from '@hookform/resolvers/zod'; +} from '@trycompai/ui/dialog'; +import { Form, FormControl, FormField, FormItem } from '@trycompai/ui/form'; +import { Textarea } from '@trycompai/ui/textarea'; import { useState } from 'react'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx index 561bea213..55325aeb3 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyArchiveSheet.tsx @@ -1,11 +1,17 @@ 'use client'; import { archivePolicyAction } from '@/actions/policies/archive-policy'; -import { Button } from '@comp/ui/button'; -import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; -import { useMediaQuery } from '@comp/ui/hooks'; -import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; import { Policy } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Drawer, DrawerContent, DrawerTitle } from '@trycompai/ui/drawer'; +import { useMediaQuery } from '@trycompai/ui/hooks'; +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, +} from '@trycompai/ui/sheet'; import { ArchiveIcon, ArchiveRestoreIcon, X } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx index f2434c8a6..ef3f5e906 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingConfirmDeleteModal.tsx @@ -1,4 +1,5 @@ -import { Button } from '@comp/ui/button'; +import type { Control } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -7,8 +8,7 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@comp/ui/dialog'; -import type { Control } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; import { X } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx index 87bc643ed..ea7814e51 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappingModal.tsx @@ -1,5 +1,6 @@ -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; +import { Control } from '@trycompai/db'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,9 +9,8 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@comp/ui/dialog'; -import MultipleSelector, { Option } from '@comp/ui/multiple-selector'; -import { Control } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; +import MultipleSelector, { Option } from '@trycompai/ui/multiple-selector'; import { PlusIcon } from 'lucide-react'; import { useParams } from 'next/navigation'; import { useEffect, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx index d9019ad74..2c22d4e0a 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyControlMappings.tsx @@ -1,6 +1,6 @@ -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { SelectPills } from '@comp/ui/select-pills'; import { Control } from '@trycompai/db'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { SelectPills } from '@trycompai/ui/select-pills'; import { useAction } from 'next-safe-action/hooks'; import { useParams } from 'next/navigation'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx index 9e41c13c2..01515b180 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyDeleteDialog.tsx @@ -1,7 +1,9 @@ 'use client'; import { deletePolicyAction } from '@/actions/policies/delete-policy'; -import { Button } from '@comp/ui/button'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Policy } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -9,10 +11,8 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Form } from '@comp/ui/form'; -import { zodResolver } from '@hookform/resolvers/zod'; -import { Policy } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; +import { Form } from '@trycompai/ui/form'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useRouter } from 'next/navigation'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx index a4fc1e007..f5854cab2 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyHeaderActions.tsx @@ -2,7 +2,9 @@ import { regeneratePolicyAction } from '@/app/(app)/[orgId]/policies/[policyId]/actions/regenerate-policy'; import { generatePolicyPDF } from '@/lib/pdf-generator'; -import { Button } from '@comp/ui/button'; +import type { JSONContent } from '@tiptap/react'; +import type { Member, Policy, User } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -10,17 +12,15 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Icons } from '@comp/ui/icons'; -import type { JSONContent } from '@tiptap/react'; -import type { Member, Policy, User } from '@trycompai/db'; +} from '@trycompai/ui/dropdown-menu'; +import { Icons } from '@trycompai/ui/icons'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverview.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverview.tsx index 19946df87..b9d2fb1d4 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverview.tsx @@ -3,12 +3,12 @@ import { acceptRequestedPolicyChangesAction } from '@/actions/policies/accept-requested-policy-changes'; import { denyRequestedPolicyChangesAction } from '@/actions/policies/deny-requested-policy-changes'; import { authClient } from '@/utils/auth-client'; -import { Alert, AlertDescription, AlertTitle } from '@comp/ui/alert'; -import { Button } from '@comp/ui/button'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { Icons } from '@comp/ui/icons'; import type { Member, Policy, User } from '@trycompai/db'; import { Control } from '@trycompai/db'; +import { Alert, AlertDescription, AlertTitle } from '@trycompai/ui/alert'; +import { Button } from '@trycompai/ui/button'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Icons } from '@trycompai/ui/icons'; import { format } from 'date-fns'; import { ArchiveIcon, ArchiveRestoreIcon, ShieldCheck, ShieldX } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx index 305ee4ad1..da5e92d2f 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/PolicyOverviewSheet.tsx @@ -1,12 +1,18 @@ 'use client'; import { UpdatePolicyForm } from '@/components/forms/policies/update-policy-form'; -import { Button } from '@comp/ui/button'; -import { Drawer, DrawerContent, DrawerTitle } from '@comp/ui/drawer'; -import { useMediaQuery } from '@comp/ui/hooks'; -import { ScrollArea } from '@comp/ui/scroll-area'; -import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; import { Policy } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { Drawer, DrawerContent, DrawerTitle } from '@trycompai/ui/drawer'; +import { useMediaQuery } from '@trycompai/ui/hooks'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, +} from '@trycompai/ui/sheet'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/RecentAuditLogs.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/RecentAuditLogs.tsx index 39af0988d..dd437248f 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/RecentAuditLogs.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/RecentAuditLogs.tsx @@ -1,9 +1,9 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; -import { Badge } from '@comp/ui/badge'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { cn } from '@comp/ui/cn'; -import { ScrollArea } from '@comp/ui/scroll-area'; import { AuditLog, AuditLogEntityType } from '@trycompai/db'; +import { Avatar, AvatarFallback, AvatarImage } from '@trycompai/ui/avatar'; +import { Badge } from '@trycompai/ui/badge'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { cn } from '@trycompai/ui/cn'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; import { format } from 'date-fns'; import { ActivityIcon, diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/SubmitApprovalDialog.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/SubmitApprovalDialog.tsx index d8de1884c..5de69f069 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/SubmitApprovalDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/SubmitApprovalDialog.tsx @@ -1,7 +1,8 @@ 'use client'; import { SelectAssignee } from '@/components/SelectAssignee'; -import { Button } from '@comp/ui/button'; +import { Member, User } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -9,8 +10,7 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Member, User } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; import { Loader2 } from 'lucide-react'; interface SubmitApprovalDialogProps { diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/UpdatePolicyOverview.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/UpdatePolicyOverview.tsx index ac3ae54bb..659e813d2 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/UpdatePolicyOverview.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/components/UpdatePolicyOverview.tsx @@ -4,10 +4,16 @@ import { submitPolicyForApprovalAction } from '@/actions/policies/submit-policy- import { updatePolicyFormAction } from '@/actions/policies/update-policy-form-action'; import { SelectAssignee } from '@/components/SelectAssignee'; import { StatusIndicator } from '@/components/status-indicator'; -import { Button } from '@comp/ui/button'; -import { cn } from '@comp/ui/cn'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; import { Departments, Frequency, Member, type Policy, PolicyStatus, User } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; +import { cn } from '@trycompai/ui/cn'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; import { format } from 'date-fns'; import { CalendarIcon, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx index 7560f26a8..0ab171269 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/[policyId]/editor/components/PolicyDetails.tsx @@ -1,12 +1,12 @@ 'use client'; import { PolicyEditor } from '@/components/editor/policy-editor'; -import { Card, CardContent } from '@comp/ui/card'; -import { validateAndFixTipTapContent } from '@comp/ui/editor'; -import '@comp/ui/editor.css'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '@comp/ui/tabs'; import type { JSONContent } from '@tiptap/react'; import type { PolicyDisplayFormat } from '@trycompai/db'; +import { Card, CardContent } from '@trycompai/ui/card'; +import { validateAndFixTipTapContent } from '@trycompai/ui/editor'; +import '@trycompai/ui/editor.css'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@trycompai/ui/tabs'; import { useAction } from 'next-safe-action/hooks'; import { toast } from 'sonner'; import { switchPolicyDisplayFormatAction } from '../../actions/switch-policy-display-format'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx index 231b186ba..36988a1ae 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/FullPolicyHeaderActions.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,14 +8,14 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Icons } from '@comp/ui/icons'; +} from '@trycompai/ui/dropdown-menu'; +import { Icons } from '@trycompai/ui/icons'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx index 4034d4a48..a29f59a3f 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table-columns.tsx @@ -3,9 +3,9 @@ import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { StatusIndicator } from '@/components/status-indicator'; import { formatDate } from '@/lib/format'; -import { Badge } from '@comp/ui/badge'; import { type ColumnDef, type Row } from '@tanstack/react-table'; import { Policy } from '@trycompai/db'; +import { Badge } from '@trycompai/ui/badge'; import { ExternalLink, Loader2 } from 'lucide-react'; import Link from 'next/link'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx index 309529986..ac5cd5a89 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/all/components/policies-table.tsx @@ -9,8 +9,8 @@ import { DataTableToolbar } from '@/components/data-table/data-table-toolbar'; import { CreatePolicySheet } from '@/components/sheets/create-policy-sheet'; import { useDataTable } from '@/hooks/use-data-table'; import { downloadAllPolicies } from '@/lib/pdf-generator'; -import { Button } from '@comp/ui/button'; import type { Policy } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { useParams } from 'next/navigation'; import { getLogsForPolicy } from '../../[policyId]/data'; import { getPolicies } from '../data/queries'; diff --git a/apps/app/src/app/(app)/[orgId]/policies/layout.tsx b/apps/app/src/app/(app)/[orgId]/policies/layout.tsx index 2bc06dc08..97e3871d4 100644 --- a/apps/app/src/app/(app)/[orgId]/policies/layout.tsx +++ b/apps/app/src/app/(app)/[orgId]/policies/layout.tsx @@ -1,4 +1,4 @@ -import { SecondaryMenu } from '@comp/ui/secondary-menu'; +import { SecondaryMenu } from '@trycompai/ui/secondary-menu'; interface LayoutProps { children: React.ReactNode; diff --git a/apps/app/src/app/(app)/[orgId]/risk/(overview)/components/table/RiskColumns.tsx b/apps/app/src/app/(app)/[orgId]/risk/(overview)/components/table/RiskColumns.tsx index fd95e8a50..3c596a37c 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/(overview)/components/table/RiskColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/risk/(overview)/components/table/RiskColumns.tsx @@ -1,8 +1,8 @@ import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { StatusIndicator } from '@/components/status-indicator'; -import { Avatar, AvatarFallback, AvatarImage } from '@comp/ui/avatar'; -import { Badge } from '@comp/ui/badge'; import type { ColumnDef } from '@tanstack/react-table'; +import { Avatar, AvatarFallback, AvatarImage } from '@trycompai/ui/avatar'; +import { Badge } from '@trycompai/ui/badge'; import { Loader2, UserIcon } from 'lucide-react'; import Link from 'next/link'; import { RiskRow } from '../../RisksTable'; diff --git a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/components/RiskActions.tsx b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/components/RiskActions.tsx index 9901c407e..c066addee 100644 --- a/apps/app/src/app/(app)/[orgId]/risk/[riskId]/components/RiskActions.tsx +++ b/apps/app/src/app/(app)/[orgId]/risk/[riskId]/components/RiskActions.tsx @@ -1,7 +1,7 @@ 'use client'; import { regenerateRiskMitigationAction } from '@/app/(app)/[orgId]/risk/[riskId]/actions/regenerate-risk-mitigation'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -9,13 +9,13 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; +} from '@trycompai/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; +} from '@trycompai/ui/dropdown-menu'; import { Cog } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResults.tsx b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResults.tsx index d35854f8c..7f264ad36 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResults.tsx +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResults.tsx @@ -1,11 +1,11 @@ 'use client'; -import { ScrollArea } from '@comp/ui/scroll-area'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; import { Search } from 'lucide-react'; -import type { QuestionAnswer } from './types'; import { QuestionnaireResultsCards } from './QuestionnaireResultsCards'; import { QuestionnaireResultsHeader } from './QuestionnaireResultsHeader'; import { QuestionnaireResultsTable } from './QuestionnaireResultsTable'; +import type { QuestionAnswer } from './types'; interface QuestionnaireResultsProps { orgId: string; @@ -105,15 +105,15 @@ export function QuestionnaireResults({ editingAnswer={editingAnswer} onEditingAnswerChange={onEditingAnswerChange} expandedSources={expandedSources} - questionStatuses={questionStatuses} - answeringQuestionIndex={answeringQuestionIndex} - isAutoAnswering={isAutoAnswering} - hasClickedAutoAnswer={hasClickedAutoAnswer} - onEditAnswer={onEditAnswer} - onSaveAnswer={onSaveAnswer} - onCancelEdit={onCancelEdit} - onAnswerSingleQuestion={onAnswerSingleQuestion} - onToggleSource={onToggleSource} + questionStatuses={questionStatuses} + answeringQuestionIndex={answeringQuestionIndex} + isAutoAnswering={isAutoAnswering} + hasClickedAutoAnswer={hasClickedAutoAnswer} + onEditAnswer={onEditAnswer} + onSaveAnswer={onSaveAnswer} + onCancelEdit={onCancelEdit} + onAnswerSingleQuestion={onAnswerSingleQuestion} + onToggleSource={onToggleSource} />
    @@ -151,4 +151,3 @@ export function QuestionnaireResults({
    ); } - diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsCards.tsx b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsCards.tsx index dbf26c2a9..c9e413e93 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsCards.tsx +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsCards.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Textarea } from '@comp/ui/textarea'; +import { Button } from '@trycompai/ui/button'; +import { Textarea } from '@trycompai/ui/textarea'; import { BookOpen, ChevronDown, ChevronUp, Link as LinkIcon, Loader2 } from 'lucide-react'; import Link from 'next/link'; import type { QuestionAnswer } from './types'; diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsHeader.tsx b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsHeader.tsx index d14ca9e34..1f3d71e83 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsHeader.tsx +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsHeader.tsx @@ -9,15 +9,15 @@ import { AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, -} from '@comp/ui/alert-dialog'; -import { Button } from '@comp/ui/button'; +} from '@trycompai/ui/alert-dialog'; +import { Button } from '@trycompai/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, -} from '@comp/ui/dropdown-menu'; -import { Input } from '@comp/ui/input'; +} from '@trycompai/ui/dropdown-menu'; +import { Input } from '@trycompai/ui/input'; import { ChevronDown, Download, diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsTable.tsx b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsTable.tsx index 165f5052c..ec5e2d40f 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireResultsTable.tsx @@ -1,8 +1,8 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@comp/ui/table'; -import { Textarea } from '@comp/ui/textarea'; +import { Button } from '@trycompai/ui/button'; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; +import { Textarea } from '@trycompai/ui/textarea'; import { BookOpen, ChevronDown, ChevronUp, Link as LinkIcon, Loader2, Zap } from 'lucide-react'; import Link from 'next/link'; import type { QuestionAnswer } from './types'; diff --git a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireUpload.tsx b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireUpload.tsx index 2ed367dfe..e0219f82a 100644 --- a/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireUpload.tsx +++ b/apps/app/src/app/(app)/[orgId]/security-questionnaire/components/QuestionnaireUpload.tsx @@ -1,13 +1,8 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { cn } from '@comp/ui/cn'; -import { - FileText, - Loader2, - Upload, - X, -} from 'lucide-react'; +import { Button } from '@trycompai/ui/button'; +import { cn } from '@trycompai/ui/cn'; +import { FileText, Loader2, Upload, X } from 'lucide-react'; import type { FileRejection } from 'react-dropzone'; import Dropzone from 'react-dropzone'; @@ -31,104 +26,101 @@ export function QuestionnaireUpload({ }: QuestionnaireUploadProps) { return (
    - {selectedFile ? ( -
    -
    - -
    -

    {selectedFile.name}

    -

    - {(selectedFile.size / 1024 / 1024).toFixed(2)} MB -

    -
    + {selectedFile ? ( +
    +
    + +
    +

    {selectedFile.name}

    +

    + {(selectedFile.size / 1024 / 1024).toFixed(2)} MB +

    - {!isLoading && ( - - )}
    - ) : ( - - {({ getRootProps, getInputProps, isDragActive }) => ( -
    - -
    - -
    -

    - {isDragActive ? 'Drop file here' : 'Drag & drop or click to select'} -

    -

    - PDF, Excel, CSV (max 10MB) -

    -
    + {!isLoading && ( + + )} +
    + ) : ( + + {({ getRootProps, getInputProps, isDragActive }) => ( +
    + +
    + +
    +

    + {isDragActive ? 'Drop file here' : 'Drag & drop or click to select'} +

    +

    PDF, Excel, CSV (max 10MB)

    - )} - - )} +
    + )} +
    + )} -
    - -
    +
    + +
    ); } - diff --git a/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/CreateApiKeyDialog.tsx b/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/CreateApiKeyDialog.tsx index d5a60efea..e2ff74f53 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/CreateApiKeyDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/CreateApiKeyDialog.tsx @@ -1,20 +1,37 @@ 'use client'; import { createApiKeyAction } from '@/actions/organization/create-api-key-action'; -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@comp/ui/accordion'; -import { Button } from '@comp/ui/button'; +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '@trycompai/ui/accordion'; +import { Button } from '@trycompai/ui/button'; import { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle, -} from '@comp/ui/drawer'; -import { useMediaQuery } from '@comp/ui/hooks'; -import { Input } from '@comp/ui/input'; -import { ScrollArea } from '@comp/ui/scroll-area'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; +} from '@trycompai/ui/drawer'; +import { useMediaQuery } from '@trycompai/ui/hooks'; +import { Input } from '@trycompai/ui/input'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, +} from '@trycompai/ui/sheet'; import { Check, Copy, X } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysColumns.tsx b/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysColumns.tsx index 0e8a4eeb1..98bc914bd 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysColumns.tsx @@ -1,6 +1,7 @@ import { revokeApiKeyAction } from '@/actions/organization/revoke-api-key-action'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import type { ApiKey } from '@/hooks/use-api-keys'; +import type { ColumnDef } from '@tanstack/react-table'; import { AlertDialog, AlertDialogAction, @@ -11,9 +12,8 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '@comp/ui/alert-dialog'; -import { Button } from '@comp/ui/button'; -import type { ColumnDef } from '@tanstack/react-table'; +} from '@trycompai/ui/alert-dialog'; +import { Button } from '@trycompai/ui/button'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysTable.tsx b/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysTable.tsx index e35ba6715..de39c6865 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/api-keys/components/table/ApiKeysTable.tsx @@ -3,7 +3,7 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableToolbar } from '@/components/data-table/data-table-toolbar'; import type { ApiKey } from '@/hooks/use-api-keys'; import { useDataTable } from '@/hooks/use-data-table'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Plus } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { useMemo } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx index a209e21fb..177cefeec 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/ContextTable.tsx @@ -2,8 +2,8 @@ import { DataTable } from '@/components/data-table/data-table'; import { DataTableToolbar } from '@/components/data-table/data-table-toolbar'; import { useDataTable } from '@/hooks/use-data-table'; -import { Button } from '@comp/ui/button'; import type { Context } from '@trycompai/db'; +import { Button } from '@trycompai/ui/button'; import { Plus } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { useMemo } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/CreateContextSheet.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/CreateContextSheet.tsx index 4dc9747e1..aa4947cee 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/CreateContextSheet.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/CreateContextSheet.tsx @@ -1,15 +1,21 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle, -} from '@comp/ui/drawer'; -import { useMediaQuery } from '@comp/ui/hooks'; -import { ScrollArea } from '@comp/ui/scroll-area'; -import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@comp/ui/sheet'; +} from '@trycompai/ui/drawer'; +import { useMediaQuery } from '@trycompai/ui/hooks'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, +} from '@trycompai/ui/sheet'; import { X } from 'lucide-react'; import { useQueryState } from 'nuqs'; import { ContextForm } from './context-form'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx index 55b3bcdff..d8477701a 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-form.tsx @@ -2,12 +2,17 @@ import { createContextEntryAction } from '@/actions/context-hub/create-context-entry-action'; import { updateContextEntryAction } from '@/actions/context-hub/update-context-entry-action'; -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@comp/ui/accordion'; -import { Button } from '@comp/ui/button'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; -import { Textarea } from '@comp/ui/textarea'; import type { Context } from '@trycompai/db'; +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '@trycompai/ui/accordion'; +import { Button } from '@trycompai/ui/button'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; +import { Textarea } from '@trycompai/ui/textarea'; import { Loader2 } from 'lucide-react'; import { useTransition } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx index 984a6e041..07305dc84 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-hub-list.tsx @@ -1,6 +1,6 @@ -import { Badge } from '@comp/ui/badge'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; import type { Context } from '@trycompai/db'; +import { Badge } from '@trycompai/ui/badge'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; export async function ContextHubList({ entries }: { entries: Context[] }) { return ( diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx index 492685a11..95d0859d0 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/context-list.tsx @@ -1,6 +1,7 @@ 'use client'; import { deleteContextEntryAction } from '@/actions/context-hub/delete-context-entry-action'; +import type { Context } from '@trycompai/db'; import { AlertDialog, AlertDialogAction, @@ -11,8 +12,8 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '@comp/ui/alert-dialog'; -import { Button } from '@comp/ui/button'; +} from '@trycompai/ui/alert-dialog'; +import { Button } from '@trycompai/ui/button'; import { Card, CardContent, @@ -20,7 +21,7 @@ import { CardFooter, CardHeader, CardTitle, -} from '@comp/ui/card'; +} from '@trycompai/ui/card'; import { Dialog, DialogContent, @@ -28,8 +29,7 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@comp/ui/dialog'; -import type { Context } from '@trycompai/db'; +} from '@trycompai/ui/dialog'; import { Pencil, Plus } from 'lucide-react'; import { useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx index 160c5fb5c..b72baaa80 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/context-hub/components/table/ContextColumns.tsx @@ -1,6 +1,8 @@ import { deleteContextEntryAction } from '@/actions/context-hub/delete-context-entry-action'; import { DataTableColumnHeader } from '@/components/data-table/data-table-column-header'; import { isJSON } from '@/lib/utils'; +import type { ColumnDef } from '@tanstack/react-table'; +import type { Context } from '@trycompai/db'; import { AlertDialog, AlertDialogAction, @@ -11,10 +13,8 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '@comp/ui/alert-dialog'; -import { Button } from '@comp/ui/button'; -import type { ColumnDef } from '@tanstack/react-table'; -import type { Context } from '@trycompai/db'; +} from '@trycompai/ui/alert-dialog'; +import { Button } from '@trycompai/ui/button'; import { Trash2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/layout.tsx b/apps/app/src/app/(app)/[orgId]/settings/layout.tsx index 835945cbe..b257f2c04 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/layout.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/layout.tsx @@ -1,5 +1,5 @@ import { auth } from '@/utils/auth'; -import { SecondaryMenu } from '@comp/ui/secondary-menu'; +import { SecondaryMenu } from '@trycompai/ui/secondary-menu'; import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { Suspense } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/secrets/components/AddSecretDialog.tsx b/apps/app/src/app/(app)/[orgId]/settings/secrets/components/AddSecretDialog.tsx index d18266981..92e967024 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/secrets/components/AddSecretDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/secrets/components/AddSecretDialog.tsx @@ -1,6 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -9,12 +10,17 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@comp/ui/dialog'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Textarea } from '@comp/ui/textarea'; -import { zodResolver } from '@hookform/resolvers/zod'; +} from '@trycompai/ui/dialog'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; +import { Textarea } from '@trycompai/ui/textarea'; import { Loader2, Plus } from 'lucide-react'; import { useState } from 'react'; import { Controller, useForm } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/secrets/components/EditSecretDialog.tsx b/apps/app/src/app/(app)/[orgId]/settings/secrets/components/EditSecretDialog.tsx index 0c4d746dd..efb8b1c51 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/secrets/components/EditSecretDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/secrets/components/EditSecretDialog.tsx @@ -1,6 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,12 +9,17 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Textarea } from '@comp/ui/textarea'; -import { zodResolver } from '@hookform/resolvers/zod'; +} from '@trycompai/ui/dialog'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; +import { Textarea } from '@trycompai/ui/textarea'; import { Loader2 } from 'lucide-react'; import { useEffect } from 'react'; import { Controller, useForm } from 'react-hook-form'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/secrets/components/table/SecretsTable.tsx b/apps/app/src/app/(app)/[orgId]/settings/secrets/components/table/SecretsTable.tsx index a9b2c273f..ace230ba6 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/secrets/components/table/SecretsTable.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/secrets/components/table/SecretsTable.tsx @@ -1,9 +1,9 @@ 'use client'; -import { Badge } from '@comp/ui/badge'; -import { Button } from '@comp/ui/button'; -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@comp/ui/table'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; +import { Badge } from '@trycompai/ui/badge'; +import { Button } from '@trycompai/ui/button'; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@trycompai/ui/table'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@trycompai/ui/tooltip'; import { format } from 'date-fns'; import { Copy, Edit, Eye, EyeOff, Loader2, Trash2 } from 'lucide-react'; import { useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts index ed1c44243..111bfb346 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/actions/check-dns-record.ts @@ -163,7 +163,7 @@ export const checkDnsRecordAction = authActionClient }); revalidatePath(`/${activeOrgId}/settings/trust-portal`); - revalidateTag(`organization_${activeOrgId}`); + revalidateTag(`organization_${activeOrgId}`, 'organization'); return { success: true, diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalDomain.tsx b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalDomain.tsx index 247fa382a..2b32cea98 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalDomain.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalDomain.tsx @@ -1,7 +1,8 @@ 'use client'; import { useDomain } from '@/hooks/use-domain'; -import { Button } from '@comp/ui/button'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Button } from '@trycompai/ui/button'; import { Card, CardContent, @@ -9,11 +10,10 @@ import { CardFooter, CardHeader, CardTitle, -} from '@comp/ui/card'; -import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@comp/ui/form'; -import { Input } from '@comp/ui/input'; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@comp/ui/tooltip'; -import { zodResolver } from '@hookform/resolvers/zod'; +} from '@trycompai/ui/card'; +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@trycompai/ui/form'; +import { Input } from '@trycompai/ui/input'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@trycompai/ui/tooltip'; import { AlertCircle, CheckCircle, ClipboardCopy, ExternalLink, Loader2 } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import { useEffect, useMemo, useState } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalSwitch.tsx b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalSwitch.tsx index 1a6d4c8cb..ac7258eb4 100644 --- a/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalSwitch.tsx +++ b/apps/app/src/app/(app)/[orgId]/settings/trust-portal/components/TrustPortalSwitch.tsx @@ -1,12 +1,18 @@ 'use client'; import { useDebounce } from '@/hooks/useDebounce'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@comp/ui/card'; -import { Form, FormControl, FormField, FormItem, FormLabel } from '@comp/ui/form'; -import { Input } from '@comp/ui/input'; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@comp/ui/select'; -import { Switch } from '@comp/ui/switch'; import { zodResolver } from '@hookform/resolvers/zod'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@trycompai/ui/card'; +import { Form, FormControl, FormField, FormItem, FormLabel } from '@trycompai/ui/form'; +import { Input } from '@trycompai/ui/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@trycompai/ui/select'; +import { Switch } from '@trycompai/ui/switch'; import { ExternalLink } from 'lucide-react'; import { useAction } from 'next-safe-action/hooks'; import Link from 'next/link'; @@ -17,7 +23,7 @@ import { z } from 'zod'; import { isFriendlyAvailable } from '../actions/is-friendly-available'; import { trustPortalSwitchAction } from '../actions/trust-portal-switch'; import { updateTrustPortalFrameworks } from '../actions/update-trust-portal-frameworks'; -import { GDPR, HIPAA, ISO27001, SOC2Type1, SOC2Type2, PCIDSS, ISO42001, NEN7510 } from './logos'; +import { GDPR, HIPAA, ISO27001, ISO42001, NEN7510, PCIDSS, SOC2Type1, SOC2Type2 } from './logos'; const trustPortalSwitchSchema = z.object({ enabled: z.boolean(), diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/chat.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/chat.tsx index 22c8990af..733019961 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/chat.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/chat.tsx @@ -11,7 +11,7 @@ import { PromptInputTextarea, PromptInputTools, usePromptInputController, -} from '@comp/ui'; +} from '@trycompai/ui/ai-elements/prompt-input'; import Image from 'next/image'; import { useSearchParams } from 'next/navigation'; import { useCallback, useEffect } from 'react'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/AutomationSettingsDialogs.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/AutomationSettingsDialogs.tsx index c05bdd91c..3931fdcab 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/AutomationSettingsDialogs.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/AutomationSettingsDialogs.tsx @@ -1,7 +1,7 @@ 'use client'; import { api } from '@/lib/api-client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -9,10 +9,10 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Input } from '@comp/ui/input'; -import { Label } from '@comp/ui/label'; -import { Textarea } from '@comp/ui/textarea'; +} from '@trycompai/ui/dialog'; +import { Input } from '@trycompai/ui/input'; +import { Label } from '@trycompai/ui/label'; +import { Textarea } from '@trycompai/ui/textarea'; import { useParams } from 'next/navigation'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/PublishDialog.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/PublishDialog.tsx index bda713016..a104d67e3 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/PublishDialog.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/PublishDialog.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Button } from '@comp/ui/button'; +import { Button } from '@trycompai/ui/button'; import { Dialog, DialogContent, @@ -8,9 +8,9 @@ import { DialogFooter, DialogHeader, DialogTitle, -} from '@comp/ui/dialog'; -import { Label } from '@comp/ui/label'; -import { Textarea } from '@comp/ui/textarea'; +} from '@trycompai/ui/dialog'; +import { Label } from '@trycompai/ui/label'; +import { Textarea } from '@trycompai/ui/textarea'; import { Loader2 } from 'lucide-react'; import { useParams, useRouter } from 'next/navigation'; import { useState } from 'react'; @@ -148,7 +148,8 @@ export function PublishDialog({ open, onOpenChange }: PublishDialogProps) { Automation Published! - Version {publishedVersion} has been published and is now running. Where would you like to go? + Version {publishedVersion} has been published and is now running. Where would you + like to go? diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/ChatBreadcrumb.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/ChatBreadcrumb.tsx index 19bc853b4..e48e80b77 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/ChatBreadcrumb.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/ChatBreadcrumb.tsx @@ -4,7 +4,7 @@ import { BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator, -} from '@comp/ui/breadcrumb'; +} from '@trycompai/ui/breadcrumb'; import { ChevronRight } from 'lucide-react'; import Link from 'next/link'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/EmptyState.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/EmptyState.tsx index 1d6cc0bea..e8d75f125 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/EmptyState.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/chat/EmptyState.tsx @@ -6,9 +6,9 @@ import { PromptInputTextarea, PromptInputTools, usePromptInputController, -} from '@comp/ui'; -import { Card, CardDescription, CardHeader } from '@comp/ui/card'; -import { Skeleton } from '@comp/ui/skeleton'; +} from '@trycompai/ui'; +import { Card, CardDescription, CardHeader } from '@trycompai/ui/card'; +import { Skeleton } from '@trycompai/ui/skeleton'; import { useState } from 'react'; import { AUTOMATION_EXAMPLES, AutomationExample } from '../../constants/automation-examples'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/evaluation/EvaluationCriteriaCard.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/evaluation/EvaluationCriteriaCard.tsx index aa52ba278..40599626c 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/evaluation/EvaluationCriteriaCard.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/evaluation/EvaluationCriteriaCard.tsx @@ -1,7 +1,7 @@ 'use client'; -import { Button } from '@comp/ui/button'; -import { Textarea } from '@comp/ui/textarea'; +import { Button } from '@trycompai/ui/button'; +import { Textarea } from '@trycompai/ui/textarea'; import { Save } from 'lucide-react'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/preview/preview.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/preview/preview.tsx index 0f54f92a9..f7807190a 100644 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/preview/preview.tsx +++ b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/preview/preview.tsx @@ -1,7 +1,7 @@ 'use client'; import { cn } from '@/lib/utils'; -import { ScrollArea } from '@radix-ui/react-scroll-area'; +import { ScrollArea } from '@trycompai/ui/scroll-area'; import { CompassIcon, RefreshCwIcon } from 'lucide-react'; import { useEffect, useRef, useState } from 'react'; import { BarLoader } from 'react-spinners'; diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/badge.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/badge.tsx deleted file mode 100644 index c5fa36f7a..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/badge.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import * as React from 'react' -import { Slot } from '@radix-ui/react-slot' -import { cva, type VariantProps } from 'class-variance-authority' -import { cn } from '@/lib/utils' - -const badgeVariants = cva( - 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden', - { - variants: { - variant: { - default: - 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90', - secondary: - 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90', - destructive: - 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', - outline: - 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground', - }, - }, - defaultVariants: { - variant: 'default', - }, - } -) - -function Badge({ - className, - variant, - asChild = false, - ...props -}: React.ComponentProps<'span'> & - VariantProps & { asChild?: boolean }) { - const Comp = asChild ? Slot : 'span' - - return ( - - ) -} - -export { Badge, badgeVariants } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/button.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/button.tsx deleted file mode 100644 index 8bda695cc..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/button.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import * as React from 'react' -import { Slot } from '@radix-ui/react-slot' -import { cva, type VariantProps } from 'class-variance-authority' - -import { cn } from '@/lib/utils' - -const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", - { - variants: { - variant: { - default: - 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90', - destructive: - 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', - // outline: 'border bg-red-500 shadow-xs hover:bg-accent hover:text-primary dark:bg-input/30 dark:border-input dark:hover:bg-input/50', - outline: - 'border bg-background border-border shadow-xs hover:bg-accent hover:text-primary', - secondary: - 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80', - ghost: - 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', - link: 'text-primary underline-offset-4 hover:underline', - }, - size: { - default: 'h-10 px-4 py-2 has-[>svg]:px-3', - sm: 'h-9 gap-1 px-2.5 has-[>svg]:pl-2', - lg: 'h-12 rounded-md px-6 has-[>svg]:px-4', - icon: 'size-9', - }, - }, - defaultVariants: { - variant: 'default', - size: 'default', - }, - } -) - -function Button({ - className, - variant, - size, - asChild = false, - ...props -}: React.ComponentProps<'button'> & - VariantProps & { - asChild?: boolean - }) { - const Comp = asChild ? Slot : 'button' - - return ( - - ) -} - -export { Button, buttonVariants } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/checkbox.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/checkbox.tsx deleted file mode 100644 index 1572f64ce..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/checkbox.tsx +++ /dev/null @@ -1,31 +0,0 @@ -'use client' - -import * as React from 'react' -import * as CheckboxPrimitive from '@radix-ui/react-checkbox' -import { CheckIcon } from 'lucide-react' -import { cn } from '@/lib/utils' - -function Checkbox({ - className, - ...props -}: React.ComponentProps) { - return ( - - - - - - ) -} - -export { Checkbox } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/dialog.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/dialog.tsx deleted file mode 100644 index 37c266b77..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/dialog.tsx +++ /dev/null @@ -1,146 +0,0 @@ -'use client' - -import * as React from 'react' -import * as DialogPrimitive from '@radix-ui/react-dialog' -import { XIcon } from 'lucide-react' - -import { cn } from '@/lib/utils' - -function Dialog({ - ...props -}: React.ComponentProps) { - return -} - -function DialogTrigger({ - ...props -}: React.ComponentProps) { - return -} - -function DialogPortal({ - ...props -}: React.ComponentProps) { - return -} - -function DialogClose({ - ...props -}: React.ComponentProps) { - return -} - -function DialogOverlay({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -function DialogContent({ - className, - children, - showCloseButton = true, - ...props -}: React.ComponentProps & { - showCloseButton?: boolean -}) { - return ( - - - - {children} - {showCloseButton && ( - - - Close - - )} - - - ) -} - -function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
    - ) -} - -function DialogFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
    - ) -} - -function DialogTitle({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -function DialogDescription({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -export { - Dialog, - DialogClose, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogOverlay, - DialogPortal, - DialogTitle, - DialogTrigger, -} diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/input.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/input.tsx deleted file mode 100644 index 0a5dda53a..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/input.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import * as React from 'react' - -import { cn } from '@/lib/utils' - -function Input({ className, type, ...props }: React.ComponentProps<'input'>) { - return ( - - ) -} - -export { Input } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/label.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/label.tsx deleted file mode 100644 index 84183dc50..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/label.tsx +++ /dev/null @@ -1,23 +0,0 @@ -'use client' - -import * as React from 'react' -import * as LabelPrimitive from '@radix-ui/react-label' -import { cn } from '@/lib/utils' - -function Label({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -export { Label } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/popover.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/popover.tsx deleted file mode 100644 index 7c3b02198..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/popover.tsx +++ /dev/null @@ -1,48 +0,0 @@ -'use client' - -import * as React from 'react' -import * as PopoverPrimitive from '@radix-ui/react-popover' - -import { cn } from '@/lib/utils' - -function Popover({ - ...props -}: React.ComponentProps) { - return -} - -function PopoverTrigger({ - ...props -}: React.ComponentProps) { - return -} - -function PopoverContent({ - className, - align = 'center', - sideOffset = 4, - ...props -}: React.ComponentProps) { - return ( - - - - ) -} - -function PopoverAnchor({ - ...props -}: React.ComponentProps) { - return -} - -export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/scroll-area.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/scroll-area.tsx deleted file mode 100644 index 29e048ab6..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/scroll-area.tsx +++ /dev/null @@ -1,57 +0,0 @@ -'use client' - -import * as React from 'react' -import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area' -import { cn } from '@/lib/utils' - -function ScrollArea({ - className, - children, - ...props -}: React.ComponentProps) { - return ( - - - {children} - - - - - ) -} - -function ScrollBar({ - className, - orientation = 'vertical', - ...props -}: React.ComponentProps) { - return ( - - - - ) -} - -export { ScrollArea, ScrollBar } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/select.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/select.tsx deleted file mode 100644 index 638fee3a4..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/select.tsx +++ /dev/null @@ -1,184 +0,0 @@ -'use client' - -import * as React from 'react' -import * as SelectPrimitive from '@radix-ui/react-select' -import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react' -import { cn } from '@/lib/utils' - -function Select({ - ...props -}: React.ComponentProps) { - return -} - -function SelectGroup({ - ...props -}: React.ComponentProps) { - return -} - -function SelectValue({ - ...props -}: React.ComponentProps) { - return -} - -function SelectTrigger({ - className, - size = 'default', - children, - ...props -}: React.ComponentProps & { - size?: 'sm' | 'default' -}) { - return ( - - {children} - - - - - ) -} - -function SelectContent({ - className, - children, - position = 'popper', - ...props -}: React.ComponentProps) { - return ( - - - - - {children} - - - - - ) -} - -function SelectLabel({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -function SelectItem({ - className, - children, - ...props -}: React.ComponentProps) { - return ( - - - - - - - {children} - - ) -} - -function SelectSeparator({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -function SelectScrollUpButton({ - className, - ...props -}: React.ComponentProps) { - return ( - - - - ) -} - -function SelectScrollDownButton({ - className, - ...props -}: React.ComponentProps) { - return ( - - - - ) -} - -export { - Select, - SelectContent, - SelectGroup, - SelectItem, - SelectLabel, - SelectScrollDownButton, - SelectScrollUpButton, - SelectSeparator, - SelectTrigger, - SelectValue, -} diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/sonner.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/sonner.tsx deleted file mode 100644 index 0626cafa8..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/sonner.tsx +++ /dev/null @@ -1,25 +0,0 @@ -'use client' - -import { useTheme } from 'next-themes' -import { Toaster as Sonner, ToasterProps } from 'sonner' - -const Toaster = ({ ...props }: ToasterProps) => { - const { theme = 'system' } = useTheme() - - return ( - - ) -} - -export { Toaster } diff --git a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/textarea.tsx b/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/textarea.tsx deleted file mode 100644 index 9ff23802a..000000000 --- a/apps/app/src/app/(app)/[orgId]/tasks/[taskId]/automation/[automationId]/components/ui/textarea.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { cn } from '@/lib/utils'; -import * as React from 'react'; - -export interface TextareaProps extends React.TextareaHTMLAttributes {} - -const Textarea = React.forwardRef( - ({ className, ...props }, ref) => { - return ( -