├── .dockerignore ├── .github ├── FUNDING.yml └── workflows │ ├── build-image.yml │ ├── frontend.yml │ ├── go.yml │ ├── linter.yml │ ├── release.yml │ └── vercel.yml ├── .gitignore ├── .goreleaser.yaml ├── Dockerfile ├── LICENSE ├── README.md ├── Taskfile.yml ├── api_key.go ├── api_key_enum.go ├── auth.go ├── blocknote.go ├── blocknote_test.go ├── cmd ├── cli │ ├── config.go │ ├── cron.go │ ├── cron_apikey_revocation.go │ ├── cron_deck_analytics.go │ ├── cron_integration_sync.go │ ├── cron_scheduled_emails.go │ ├── http.go │ ├── integration.go │ ├── main.go │ ├── migrate.go │ └── plan.go └── main.go ├── config ├── .env.example ├── config.example.json ├── config.example.yml ├── config.go └── config_enum.go ├── contact.go ├── contact_enum.go ├── contact_list.go ├── dashboard.go ├── dashboard_link.go ├── dashboard_link_enum.go ├── date.go ├── date_test.go ├── deck.go ├── dev └── otel-collector.yml ├── docker-compose.yml ├── errors.go ├── fundraising.go ├── fundraising_enum.go ├── fundraising_link.go ├── generate.go ├── go.mod ├── go.sum ├── image.go ├── image_test.go ├── integration.go ├── integration_checkpoint.go ├── integration_checkpoint_enum.go ├── integration_enum.go ├── internal ├── datastore │ └── postgres │ │ ├── api_key.go │ │ ├── api_key_test.go │ │ ├── contact.go │ │ ├── contact_list.go │ │ ├── contact_list_test.go │ │ ├── contact_test.go │ │ ├── dashboard.go │ │ ├── dashboard_link.go │ │ ├── dashboard_link_test.go │ │ ├── dashboard_test.go │ │ ├── deck.go │ │ ├── deck_test.go │ │ ├── email.go │ │ ├── email_test.go │ │ ├── fundraising.go │ │ ├── fundraising_test.go │ │ ├── integration.go │ │ ├── integration_test.go │ │ ├── migrations │ │ ├── 20240820215002_initial_tables.down.sql │ │ ├── 20240820215002_initial_tables.up.sql │ │ ├── 20240904140857_change_role_column.down.sql │ │ ├── 20240904140857_change_role_column.up.sql │ │ ├── 20240904141511_add_refernce_to_workspace.down.sql │ │ ├── 20240904141511_add_refernce_to_workspace.up.sql │ │ ├── 20240912200439_create_contacts_table.down.sql │ │ ├── 20240912200439_create_contacts_table.up.sql │ │ ├── 20240913122737_make_email_for_contacts_unique_per_workspace.down.sql │ │ ├── 20240913122737_make_email_for_contacts_unique_per_workspace.up.sql │ │ ├── 20240915144702_create_updates_table.down.sql │ │ ├── 20240915144702_create_updates_table.up.sql │ │ ├── 20240927172202_add_is_pinned_to_updates_table.down.sql │ │ ├── 20240927172202_add_is_pinned_to_updates_table.up.sql │ │ ├── 20240927231630_add_title_column_to_table.down.sql │ │ ├── 20240927231630_add_title_column_to_table.up.sql │ │ ├── 20240929140215_make_content_json.down.sql │ │ ├── 20240929140215_make_content_json.up.sql │ │ ├── 20241005001421_add_recipient_type.down.sql │ │ ├── 20241005001421_add_recipient_type.up.sql │ │ ├── 20241005195001_add_recipient_type_to_schedule.down.sql │ │ ├── 20241005195001_add_recipient_type_to_schedule.up.sql │ │ ├── 20241014113650_create_contact_list.down.sql │ │ ├── 20241014113650_create_contact_list.up.sql │ │ ├── 20241015193545_add_schedule_id_drop_email_from_recipients.down.sql │ │ ├── 20241015193545_add_schedule_id_drop_email_from_recipients.up.sql │ │ ├── 20241101164422_add_list_emails.down.sql │ │ ├── 20241101164422_add_list_emails.up.sql │ │ ├── 20241113221847_unique_constraint_list_mappings.down.sql │ │ ├── 20241113221847_unique_constraint_list_mappings.up.sql │ │ ├── 20241115181034_add_unique_constraints_contacts_table.down.sql │ │ ├── 20241115181034_add_unique_constraints_contacts_table.up.sql │ │ ├── 20241116110626_alter_enum_for_schedule.down.sql │ │ ├── 20241116110626_alter_enum_for_schedule.up.sql │ │ ├── 20241117164235_analytics_track_update.down.sql │ │ ├── 20241117164235_analytics_track_update.up.sql │ │ ├── 20241120201739_track_recipient_status.down.sql │ │ ├── 20241120201739_track_recipient_status.up.sql │ │ ├── 20241121182815_add_recipient_log.down.sql │ │ ├── 20241121182815_add_recipient_log.up.sql │ │ ├── 20241130180843_create_deck_table.down.sql │ │ ├── 20241130180843_create_deck_table.up.sql │ │ ├── 20250118154222_add_is_archived_decks.down.sql │ │ ├── 20250118154222_add_is_archived_decks.up.sql │ │ ├── 20250118163118_add_size_of_deck.down.sql │ │ ├── 20250118163118_add_size_of_deck.up.sql │ │ ├── 20250123140110_add_constraint_for_update_Recipients.down.sql │ │ ├── 20250123140110_add_constraint_for_update_Recipients.up.sql │ │ ├── 20250123150600_add_is_pinned_decks.down.sql │ │ ├── 20250123150600_add_is_pinned_decks.up.sql │ │ ├── 20250123221403_store_deck_url.down.sql │ │ ├── 20250123221403_store_deck_url.up.sql │ │ ├── 20250124141520_create_share_table.down.sql │ │ ├── 20250124141520_create_share_table.up.sql │ │ ├── 20250124155739_add_reference_to_share_and_constraint.down.sql │ │ ├── 20250124155739_add_reference_to_share_and_constraint.up.sql │ │ ├── 20250127103311_add_is_default_to_plans_table.down.sql │ │ ├── 20250127103311_add_is_default_to_plans_table.up.sql │ │ ├── 20250127221605_add_website_and_timezone_to_workspaces.down.sql │ │ ├── 20250127221605_add_website_and_timezone_to_workspaces.up.sql │ │ ├── 20250128140800_add_logourl_to_workspaces.down.sql │ │ ├── 20250128140800_add_logourl_to_workspaces.up.sql │ │ ├── 20250128153903_create_preferences_table.down.sql │ │ ├── 20250128153903_create_preferences_table.up.sql │ │ ├── 20250129121822_create_integrations_table.down.sql │ │ ├── 20250129121822_create_integrations_table.up.sql │ │ ├── 20250129164036_add_logourl_to_integrations.down.sql │ │ ├── 20250129164036_add_logourl_to_integrations.up.sql │ │ ├── 20250129164525_create_integration_uniqueness.down.sql │ │ ├── 20250129164525_create_integration_uniqueness.up.sql │ │ ├── 20250131190316_add_is_sub_active_workspaces.down.sql │ │ ├── 20250131190316_add_is_sub_active_workspaces.up.sql │ │ ├── 20250202132535_create_integration_data_points.down.sql │ │ ├── 20250202132535_create_integration_data_points.up.sql │ │ ├── 20250202140712_add_is_enabled_to_workspace_integrations.down.sql │ │ ├── 20250202140712_add_is_enabled_to_workspace_integrations.up.sql │ │ ├── 20250204154300_create_integration_chart.down.sql │ │ ├── 20250204154300_create_integration_chart.up.sql │ │ ├── 20250209161655_add_metadata_to_charts_table.down.sql │ │ ├── 20250209161655_add_metadata_to_charts_table.up.sql │ │ ├── 20250209164001_fix_uniqueness_for_integration_charts.down.sql │ │ ├── 20250209164001_fix_uniqueness_for_integration_charts.up.sql │ │ ├── 20250209181703_make_chart_id_not_null.down.sql │ │ ├── 20250209181703_make_chart_id_not_null.up.sql │ │ ├── 20250209194517_add_sync_checkpointing_for_integrations.down.sql │ │ ├── 20250209194517_add_sync_checkpointing_for_integrations.up.sql │ │ ├── 20250214212029_add_extra_fields_to_dashboard_table.down.sql │ │ ├── 20250214212029_add_extra_fields_to_dashboard_table.up.sql │ │ ├── 20250215120421_create_dashboard_chart_table.down.sql │ │ ├── 20250215120421_create_dashboard_chart_table.up.sql │ │ ├── 20250220111140_add_title_to_dashboards.down.sql │ │ ├── 20250220111140_add_title_to_dashboards.up.sql │ │ ├── 20250220113938_add_workspace_id_to_dashboard.down.sql │ │ ├── 20250220113938_add_workspace_id_to_dashboard.up.sql │ │ ├── 20250220161732_add_charttype_to_integration_charts.down.sql │ │ ├── 20250220161732_add_charttype_to_integration_charts.up.sql │ │ ├── 20250220215457_add_chartid_to_dashboard_charts.down.sql │ │ ├── 20250220215457_add_chartid_to_dashboard_charts.up.sql │ │ ├── 20250221182318_create_dashboard_ordering.down.sql │ │ ├── 20250221182318_create_dashboard_ordering.up.sql │ │ ├── 20250301123051_create_system_templates.down.sql │ │ ├── 20250301123051_create_system_templates.up.sql │ │ ├── 20250305215107_create_deck_analytics.down.sql │ │ ├── 20250305215107_create_deck_analytics.up.sql │ │ ├── 20250309200149_make_created_by_on_contacts_nullable.down.sql │ │ ├── 20250309200149_make_created_by_on_contacts_nullable.up.sql │ │ ├── 20250314231745_create_dashboard_link_table.down.sql │ │ ├── 20250314231745_create_dashboard_link_table.up.sql │ │ ├── 20250316003948_add_uniqueness_to_dashboard_links.down.sql │ │ ├── 20250316003948_add_uniqueness_to_dashboard_links.up.sql │ │ ├── 20250319194521_create_api_keys.down.sql │ │ ├── 20250319194521_create_api_keys.up.sql │ │ ├── 20250321215711_add_system_to_integration_type.down.sql │ │ ├── 20250321215711_add_system_to_integration_type.up.sql │ │ ├── 20250322093546_migrate_datapoint_type_to_chart_root_level.down.sql │ │ ├── 20250322093546_migrate_datapoint_type_to_chart_root_level.up.sql │ │ ├── 20250322132535_add_unique_constraint_to_integration_data_points.down.sql │ │ ├── 20250322132535_add_unique_constraint_to_integration_data_points.up.sql │ │ ├── 20250327170353_add_is_banned.down.sql │ │ ├── 20250327170353_add_is_banned.up.sql │ │ ├── 20250405141736_create_fundraising_table.down.sql │ │ ├── 20250405141736_create_fundraising_table.up.sql │ │ ├── 20250405222513_create_fundraising_contact_table.down.sql │ │ ├── 20250405222513_create_fundraising_contact_table.up.sql │ │ ├── 20250405225253_investors_count_auto_add.down.sql │ │ ├── 20250405225253_investors_count_auto_add.up.sql │ │ ├── 20251024233343_user_password.down.sql │ │ ├── 20251024233343_user_password.up.sql │ │ ├── 20251025161615_email_verifications.down.sql │ │ └── 20251025161615_email_verifications.up.sql │ │ ├── plan.go │ │ ├── plan_test.go │ │ ├── postgres.go │ │ ├── postgres_test.go │ │ ├── preferences.go │ │ ├── preferences_test.go │ │ ├── share.go │ │ ├── share_test.go │ │ ├── template.go │ │ ├── template_test.go │ │ ├── testdata │ │ └── fixtures │ │ │ ├── contacts.yml │ │ │ ├── dashboards.yml │ │ │ ├── plans.yml │ │ │ ├── roles.yml │ │ │ ├── system_templates.yml │ │ │ ├── updates.yml │ │ │ ├── users.yml │ │ │ └── workspaces.yml │ │ ├── update.go │ │ ├── update_test.go │ │ ├── user.go │ │ ├── user_test.go │ │ ├── workspace.go │ │ └── workspace_test.go ├── integrations │ ├── brex │ │ ├── brex.go │ │ └── brex_test.go │ ├── flutterwave │ │ └── flw.go │ ├── manager.go │ ├── mercury │ │ ├── mercury.go │ │ └── mercury_test.go │ └── paystack │ │ └── paystack.go ├── pkg │ ├── billing │ │ ├── billing.go │ │ └── stripe │ │ │ ├── stripe.go │ │ │ └── stripe_test.go │ ├── cache │ │ ├── cache.go │ │ └── rediscache │ │ │ ├── cache_test.go │ │ │ └── redis.go │ ├── chart │ │ ├── mock_storage_test.go │ │ ├── renderer.go │ │ └── renderer_test.go │ ├── email │ │ ├── email.go │ │ ├── email_test.go │ │ ├── resend │ │ │ └── client.go │ │ ├── smtp │ │ │ ├── smtp.go │ │ │ └── smtp_test.go │ │ └── templates │ │ │ ├── auth │ │ │ └── email_verify.html │ │ │ ├── billing │ │ │ ├── expired.html │ │ │ └── trial.html │ │ │ ├── sharing │ │ │ └── dashboard_share.html │ │ │ └── updates │ │ │ └── view.html │ ├── geolocation │ │ ├── location.go │ │ └── maxmind │ │ │ ├── maxmind.go │ │ │ ├── maxmind_test.go │ │ │ └── testdata │ │ │ ├── city.mmdb │ │ │ └── country.mmdb │ ├── jwttoken │ │ ├── jwt.go │ │ ├── jwt_enum.go │ │ ├── jwt_test.go │ │ └── mocks │ │ │ └── token.go │ ├── queue │ │ ├── queue.go │ │ ├── queue_enum.go │ │ └── watermill │ │ │ ├── watermill.go │ │ │ └── watermill_email.go │ ├── socialauth │ │ ├── google.go │ │ ├── mocks │ │ │ └── social.go │ │ └── social.go │ └── util │ │ ├── generic.go │ │ ├── strings.go │ │ └── strings_test.go └── secret │ ├── aes │ ├── aes.go │ └── aes_test.go │ ├── infisical │ ├── infisical.go │ └── infisical_test.go │ ├── secret.go │ ├── secret_enum.go │ ├── secretsmanager │ ├── aws_secretmanager.go │ └── aws_secretmanager_test.go │ └── vault │ ├── vault.go │ └── vault_test.go ├── migrate.go ├── mocks ├── api_key.go ├── auth.go ├── billing.go ├── cache.go ├── contact.go ├── contact_list.go ├── dashboard.go ├── dashboard_link.go ├── deck.go ├── fundraising.go ├── integration.go ├── location.go ├── plan.go ├── preferences.go ├── queue.go ├── reference.go ├── secret.go ├── share.go ├── template.go ├── update.go ├── user.go ├── uuid.go ├── vault.go └── workspace.go ├── paginator.go ├── password.go ├── plan.go ├── plan_test.go ├── preferences.go ├── reference.go ├── reference_enum.go ├── server ├── api_key.go ├── api_key_test.go ├── auth.go ├── auth_enum.go ├── auth_test.go ├── contact.go ├── contact_import.go ├── contact_test.go ├── dashboard.go ├── dashboard_link.go ├── dashboard_link_test.go ├── dashboard_test.go ├── deck.go ├── deck_analytics.go ├── deck_public_test.go ├── deck_test.go ├── fundraising.go ├── fundraising_test.go ├── handler.go ├── handler_enum.go ├── http.go ├── http_test.go ├── middleware.go ├── middleware_test.go ├── otel.go ├── preferences.go ├── response.go ├── stripe.go ├── stripe_request.go ├── stripe_test.go ├── testdata │ ├── TestAPIKeyHandler_Create │ │ ├── api_key_creation_error.golden │ │ ├── empty_title.golden │ │ ├── encryption_error.golden │ │ ├── max_limit_reached.golden │ │ ├── successful_creation.golden │ │ ├── title_too_long.golden │ │ └── title_too_short.golden │ ├── TestAPIKeyHandler_List │ │ ├── list_error.golden │ │ └── successful_list.golden │ ├── TestAPIKeyHandler_Revoke │ │ ├── api_key_already_revoked.golden │ │ ├── api_key_not_found.golden │ │ ├── empty_reference.golden │ │ ├── invalid_strategy.golden │ │ ├── revocation_error.golden │ │ └── successful_revocation.golden │ ├── TestAuthHandler_EmailSignup │ │ ├── could_not_create_user.golden │ │ ├── could_not_generate_token.golden │ │ ├── empty_email.golden │ │ ├── empty_full_name.golden │ │ ├── empty_password.golden │ │ ├── invalid_email.golden │ │ ├── user_already_exists.golden │ │ ├── user_created_successfully.golden │ │ └── weak_password.golden │ ├── TestAuthHandler_FetchCurrentUser │ │ ├── could_not_list_workspaces.golden │ │ ├── listed_workspaces.golden │ │ └── listed_workspaces_with_current_workspace.golden │ ├── TestAuthHandler_Login │ │ ├── could_not_create_user_in_datastore.golden │ │ ├── could_not_fetch_user_details.golden │ │ ├── duplicate_email._user_gets_logged_in.golden │ │ ├── duplicate_email._user_gets_logged_in_inside_but_could_not_fetch_details_from_db.golden │ │ ├── no_code_to_exchange_provided.golden │ │ ├── token_exchange_fails.golden │ │ └── user_was_succesfully_created.golden │ ├── TestContactHandler_AddUserToContactList │ │ ├── Error_while_fetching_list.golden │ │ ├── added_contact_to_list.golden │ │ ├── contact_not_found.golden │ │ ├── could_not_create_contact_list_mappings.golden │ │ ├── error_fetching_contact.golden │ │ ├── list_not_found.golden │ │ └── no_reference_provided.golden │ ├── TestContactHandler_All │ │ ├── could_not_list_contacts.golden │ │ └── list_contacts.golden │ ├── TestContactHandler_BatchCreate │ │ ├── duplicate_contact.golden │ │ ├── empty_contacts_array.golden │ │ ├── first_name_too_long.golden │ │ ├── last_name_too_long.golden │ │ ├── missing_email.golden │ │ ├── success_with_email_as_first_name.golden │ │ ├── success_with_multiple_contacts.golden │ │ ├── success_with_single_contact.golden │ │ └── unknown_error.golden │ ├── TestContactHandler_Create │ │ ├── duplicate_contact.golden │ │ ├── no_email_provided.golden │ │ ├── success.golden │ │ └── unknown_error.golden │ ├── TestContactHandler_CreateContactList │ │ ├── name_too_long.golden │ │ ├── no_name_provided.golden │ │ ├── success.golden │ │ └── unknown_error.golden │ ├── TestContactHandler_DeleteContact │ │ ├── contact_error_while_fetching.golden │ │ ├── contact_not_exists.golden │ │ ├── deleting_contact_fails.golden │ │ └── deleting_contact_succeeds.golden │ ├── TestContactHandler_DeleteContactList │ │ ├── contact_list_not_found.golden │ │ ├── success.golden │ │ ├── unknown_error_during_delete.golden │ │ └── unknown_error_during_fetch.golden │ ├── TestContactHandler_Edit │ │ ├── address_too_long.golden │ │ ├── address_too_short.golden │ │ ├── company_name_too_long.golden │ │ ├── company_name_too_short.golden │ │ ├── could_not_fetch_contact_because_contact_does_not_exists.golden │ │ ├── could_not_fetch_contact_due_to_db_error.golden │ │ ├── first_name_too_long.golden │ │ ├── first_name_too_short.golden │ │ ├── last_name_too_long.golden │ │ ├── last_name_too_short.golden │ │ ├── notes_too_long.golden │ │ ├── notes_too_short.golden │ │ ├── updating_contact_fails_at_db_level.golden │ │ ├── updating_contact_succeeds.golden │ │ ├── updating_contact_succeeds_even_without_any_data_in_request.golden │ │ └── updating_contact_succeeds_with_partial_data.golden │ ├── TestContactHandler_EditContactList │ │ ├── contact_list_not_found.golden │ │ ├── no_name_provided.golden │ │ ├── success.golden │ │ ├── unknown_error_during_fetch.golden │ │ └── unknown_error_during_update.golden │ ├── TestContactHandler_FetchContactLists │ │ ├── empty_lists.golden │ │ ├── lists_with_contacts.golden │ │ ├── lists_with_include_emails_parameter.golden │ │ ├── lists_with_no_contacts.golden │ │ └── unknown_error.golden │ ├── TestContactHandler_GetSingleContact │ │ ├── get_contact_fails_because_it_does_not_exists.golden │ │ ├── get_contact_fails_because_of_db_error.golden │ │ ├── getting_shared_items_failed.golden │ │ └── getting_shared_items_succeeds.golden │ ├── TestContactHandler_List │ │ ├── empty_contacts.golden │ │ ├── unknown_error.golden │ │ ├── with_contacts.golden │ │ └── with_pagination.golden │ ├── TestContactHandler_Search │ │ ├── search_with_error.golden │ │ ├── search_with_no_query_parameter.golden │ │ └── search_with_query_parameter.golden │ ├── TestDashboardHandler_AddChart │ │ ├── chart_not_found.golden │ │ ├── dashboard_not_found.golden │ │ ├── error_adding_chart_to_dashboard.golden │ │ ├── error_fetching_chart.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── no_chart_reference_provided.golden │ │ └── successfully_added_chart_to_dashboard.golden │ ├── TestDashboardHandler_Create │ │ ├── description_too_long.golden │ │ ├── error_creating_dashboard.golden │ │ ├── no_description_provided.golden │ │ ├── no_title_provided.golden │ │ ├── successfully_created_dashboard.golden │ │ └── title_too_long.golden │ ├── TestDashboardHandler_FetchChartingData │ │ ├── chart_not_found.golden │ │ ├── error_fetching_chart.golden │ │ ├── error_fetching_data_points.golden │ │ └── successfully_fetched_chart_data.golden │ ├── TestDashboardHandler_FetchDashboard │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_fetching_dashboard_charts.golden │ │ ├── error_fetching_dashboard_positions.golden │ │ └── successfully_fetched_dashboard_and_charts.golden │ ├── TestDashboardHandler_GenerateLink │ │ ├── dashboard_not_found.golden │ │ ├── error_creating_dashboard_link.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── invalid_email_address.golden │ │ ├── successfully_generated_default_link.golden │ │ └── successfully_generated_link_with_email.golden │ ├── TestDashboardHandler_List │ │ ├── empty_dashboards_list.golden │ │ ├── error_listing_dashboards.golden │ │ └── successfully_listed_dashboards.golden │ ├── TestDashboardHandler_ListAccessControls │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_listing_links.golden │ │ └── successfully_listed_links.golden │ ├── TestDashboardHandler_ListAllCharts │ │ ├── empty_charts_list.golden │ │ ├── error_listing_charts.golden │ │ └── successfully_listed_charts.golden │ ├── TestDashboardHandler_PublicChartingDataFetch │ │ ├── chart_not_found.golden │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_chart.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_fetching_data_points.golden │ │ └── successfully_fetched_public_charting_data.golden │ ├── TestDashboardHandler_PublicDashboardDetails │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_charts.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_fetching_positions.golden │ │ └── successfully_fetched_public_dashboard_details.golden │ ├── TestDashboardHandler_RemoveChart │ │ ├── chart_not_found.golden │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_chart.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_removing_chart_from_dashboard.golden │ │ ├── no_chart_reference_provided.golden │ │ └── successfully_removed_chart_from_dashboard.golden │ ├── TestDashboardHandler_RevokeAccessControl │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_revoking_access.golden │ │ └── successfully_revoked_access.golden │ ├── TestDashboardHandler_UpdateDashboardPositions │ │ ├── dashboard_not_found.golden │ │ ├── error_fetching_dashboard.golden │ │ ├── error_updating_positions.golden │ │ └── successfully_updated_positions.golden │ ├── TestDeckHandler_Create │ │ ├── could_not_create_deck.golden │ │ ├── created_deck_successfully.golden │ │ ├── file_not_exists_in_cache.golden │ │ ├── file_size_in_cache_is_0.golden │ │ ├── no_title_provided.golden │ │ └── no_url_provided.golden │ ├── TestDeckHandler_Delete │ │ ├── could_not_delete_deck.golden │ │ ├── could_not_fetch_deck.golden │ │ ├── could_not_fetch_deck_because_deck_does_not_exists.golden │ │ └── deleted_deck.golden │ ├── TestDeckHandler_Fetch │ │ ├── could_not_fetch_deck.golden │ │ ├── could_not_fetch_deck_because_deck_does_not_exists.golden │ │ └── fetched_deck.golden │ ├── TestDeckHandler_FetchDeckSessions │ │ ├── deck_not_found.golden │ │ ├── error_fetching_analytics.golden │ │ ├── error_fetching_deck.golden │ │ ├── invalid_days_parameter.golden │ │ ├── no_reference_provided.golden │ │ └── successfully_fetched_sessions.golden │ ├── TestDeckHandler_FetchEngagements │ │ ├── deck_not_found.golden │ │ ├── error_fetching_deck.golden │ │ ├── error_fetching_engagements.golden │ │ ├── no_reference_provided.golden │ │ └── successfully_fetched_engagements.golden │ ├── TestDeckHandler_List │ │ ├── could_not_list_decks.golden │ │ └── listed_deck_successfully.golden │ ├── TestDeckHandler_PublicDeckDetails │ │ ├── deck_not_found.golden │ │ ├── error_creating_session.golden │ │ ├── error_fetching_deck.golden │ │ ├── error_getting_geolocation.golden │ │ ├── error_getting_object_path.golden │ │ ├── fetched_public_deck_details_successfully.golden │ │ ├── no_device_info_provided.golden │ │ ├── no_os_provided.golden │ │ ├── no_reference_provided.golden │ │ └── successfully_fetched_deck_details.golden │ ├── TestDeckHandler_ToggleArchive │ │ ├── deck_not_found.golden │ │ ├── error_fetching_deck.golden │ │ ├── error_toggling_archive_status.golden │ │ ├── no_reference_provided.golden │ │ └── successfully_toggled_archive_status.golden │ ├── TestDeckHandler_UpdateDeckViewerSession │ │ ├── deck_not_found.golden │ │ ├── error_fetching_deck.golden │ │ ├── error_finding_session.golden │ │ ├── error_updating_session.golden │ │ ├── invalid_email.golden │ │ ├── no_reference_provided.golden │ │ └── successfully_updated_session.golden │ ├── TestDeckHandler_UpdatePreferences │ │ ├── could_not_fetch_deck.golden │ │ ├── could_not_update_preferences.golden │ │ ├── deck_not_found.golden │ │ ├── no_reference_provided.golden │ │ ├── password_enabled_but_no_password_provided.golden │ │ └── successfully_updated_preferences.golden │ ├── TestDeckHandler_UploadImage │ │ ├── could_not_store_file_details_in_cache.golden │ │ ├── no_file_uploaded.golden │ │ └── successfully_uploaded_file.golden │ ├── TestDecksHandler_Pin │ │ ├── deck_not_found.golden │ │ ├── error_fetching_deck.golden │ │ ├── error_toggling_pinned_status.golden │ │ ├── no_reference_provided.golden │ │ └── successfully_toggled_pinned_status.golden │ ├── TestFundraisingHandler_AddContact │ │ ├── add_contact_to_board_error.golden │ │ ├── closed_pipeline_cannot_be_written_to.golden │ │ ├── contact_not_found.golden │ │ ├── default_column_error.golden │ │ ├── invalid_request_-_check_size_too_small.golden │ │ ├── invalid_request_-_empty_contact_reference.golden │ │ ├── invalid_request_-_empty_pipeline_reference.golden │ │ ├── invalid_request_-_initial_contact_date_in_future.golden │ │ ├── invalid_request_-_rating_too_high.golden │ │ ├── invalid_request_-_rating_too_low.golden │ │ ├── pipeline_not_found.golden │ │ └── successful_add_contact_to_board.golden │ ├── TestFundraisingHandler_Board │ │ ├── board_fetch_error.golden │ │ ├── get_pipeline_error.golden │ │ ├── missing_reference_parameter.golden │ │ ├── pipeline_not_found.golden │ │ └── successful_fetch.golden │ ├── TestFundraisingHandler_CloseBoard │ │ ├── close_board_error.golden │ │ ├── get_pipeline_error.golden │ │ ├── missing_reference_parameter.golden │ │ ├── pipeline_already_closed.golden │ │ ├── pipeline_not_found.golden │ │ └── successful_close.golden │ ├── TestFundraisingHandler_List │ │ ├── repository_error.golden │ │ ├── successful_listing_-_active_only.golden │ │ ├── successful_listing_-_default_params.golden │ │ └── successful_listing_-_with_pagination.golden │ ├── TestFundraisingHandler_MoveContactAcrossBoard │ │ ├── column_not_found.golden │ │ ├── contact_not_found_on_board.golden │ │ ├── empty_pipeline_reference.golden │ │ ├── move_contact_error.golden │ │ ├── pipeline_is_closed.golden │ │ ├── pipeline_not_found.golden │ │ └── successful_move.golden │ ├── TestFundraisingHandler_NewPipeline │ │ ├── invalid_request_-_description_too_long.golden │ │ ├── invalid_request_-_empty_title.golden │ │ ├── invalid_request_-_expected_close_date_in_past.golden │ │ ├── invalid_request_-_expected_close_date_today.golden │ │ ├── invalid_request_-_invalid_stage.golden │ │ ├── invalid_request_-_start_date_in_past.golden │ │ ├── invalid_request_-_title_too_short.golden │ │ ├── repository_error.golden │ │ ├── valid_request_-_seed_stage.golden │ │ └── valid_request_-_series_A_stage.golden │ ├── TestFundraisingHandler_UpdateContactDeal │ │ ├── cannot_update_closed_column.golden │ │ ├── cannot_update_pipeline_that_is_closed.golden │ │ ├── could_not_fetch_column.golden │ │ ├── invalid_request_-_check_size_too_small.golden │ │ ├── invalid_request_-_empty_contact_ID.golden │ │ ├── invalid_request_-_empty_pipeline_reference.golden │ │ ├── invalid_request_-_rating_too_high.golden │ │ ├── invalid_request_-_rating_too_low.golden │ │ ├── pipeline_not_found.golden │ │ ├── updated_contact_deal_details.golden │ │ └── updated_contact_repo_fails.golden │ ├── TestRequireWorkspaceValidSubscription │ │ ├── sub_active.golden │ │ └── sub_not_active.golden │ ├── TestStripeHandler_HandleWebhook │ │ ├── customer.created_-_add_plan_fails.golden │ │ ├── customer.created_-_success.golden │ │ ├── customer.created_-_workspace_not_found.golden │ │ ├── invalid_webhook_signature.golden │ │ ├── invoice.paid_-_plan_not_found.golden │ │ ├── invoice.paid_-_success.golden │ │ ├── invoice.paid_-_workspace_not_found.golden │ │ └── missing_webhook_signature.golden │ ├── TestUpdateHandler_FetchUpdate │ │ ├── Fetched_item_successfully.golden │ │ ├── could_not_fetch_update_from_db.golden │ │ └── update_not_exists.golden │ ├── TestUpdateHandler_FetchUpdateAnalytics │ │ ├── could_not_fetch_recipient_stats.golden │ │ ├── could_not_fetch_update_from_db.golden │ │ ├── could_not_fetch_update_stats.golden │ │ ├── fetched_successfully.golden │ │ └── update_not_exists.golden │ ├── TestUpdatesHandler_Create │ │ ├── created_update.golden │ │ ├── culd_not_create_update.golden │ │ ├── title_not_provided.golden │ │ └── title_not_up_to_5_chars.golden │ ├── TestUpdatesHandler_Delete │ │ ├── could_not_fetch_update_from_db.golden │ │ ├── deleting_content_fails.golden │ │ ├── deleting_content_succeeds.golden │ │ ├── update_not_exists.golden │ │ └── you_cannot_delete_an_update_that_is_sent_already.golden │ ├── TestUpdatesHandler_Duplicate │ │ ├── could_not_fetch_update_from_db.golden │ │ ├── duplicating_content_failed.golden │ │ ├── duplicating_content_succeeds.golden │ │ └── update_not_exists.golden │ ├── TestUpdatesHandler_HandleReaction │ │ ├── recipient_stat_does_not_exists.golden │ │ ├── update_stat_failed.golden │ │ ├── update_stat_reaction.golden │ │ └── update_stat_updating_failed.golden │ ├── TestUpdatesHandler_List │ │ ├── culd_not_list_update.golden │ │ └── listed_updates.golden │ ├── TestUpdatesHandler_ListPins │ │ ├── culd_not_list_update.golden │ │ └── listed_pinned_updates.golden │ ├── TestUpdatesHandler_Pin │ │ ├── could_not_fetch_update_from_db.golden │ │ ├── toggling_failed.golden │ │ ├── toggling_to_false_succeeds.golden │ │ ├── toggling_to_true_succeeds.golden │ │ └── update_not_exists.golden │ ├── TestUpdatesHandler_PreviewUpdate │ │ ├── email_not_provided.golden │ │ ├── error_creating_preview.golden │ │ ├── error_fetching_update.golden │ │ ├── invalid_email.golden │ │ ├── preview_throttled.golden │ │ ├── successful_preview_creation.golden │ │ └── update_not_found.golden │ ├── TestUpdatesHandler_SendUpdate │ │ ├── email_not_provided.golden │ │ ├── error_during_update_sending.golden │ │ ├── error_fetching_update.golden │ │ ├── invalid_email.golden │ │ ├── successful_update_sending.golden │ │ ├── update_not_found.golden │ │ └── update_sending_reached_max_recipients.golden │ ├── TestUpdatesHandler_Templates │ │ ├── error_listing_templates.golden │ │ ├── successfully_list_all_templates.golden │ │ ├── successfully_list_most_used_templates.golden │ │ └── successfully_list_recently_created_templates.golden │ ├── TestUpdatesHandler_UpdateContent │ │ ├── could_not_fetch_update_from_db.golden │ │ ├── empty_content.golden │ │ ├── empty_title.golden │ │ ├── title_not_up_to_5_chars.golden │ │ ├── update_already_sent.golden │ │ ├── update_not_exists.golden │ │ ├── updating_content_failed.golden │ │ └── updating_content_succeeds.golden │ ├── TestWorkspaceHandler_AddDataPoint │ │ ├── add_data_point_error.golden │ │ ├── chart_fetch_error.golden │ │ ├── chart_not_found.golden │ │ ├── integration_fetch_error.golden │ │ ├── integration_not_enabled.golden │ │ ├── integration_not_found.golden │ │ ├── invalid_value_-_negative.golden │ │ ├── non-system_integration_type.golden │ │ └── successful_data_point_addition.golden │ ├── TestWorkspaceHandler_Create │ │ ├── could_not_create_workspace.golden │ │ ├── could_not_fetch_plan.golden │ │ ├── created_workspace.golden │ │ ├── created_workspace_but_queue_error.golden │ │ ├── invalid_name_provided.golden │ │ └── no_name_provided.golden │ ├── TestWorkspaceHandler_CreateChart │ │ ├── create_chart_error.golden │ │ ├── integration_fetch_error.golden │ │ ├── integration_not_enabled.golden │ │ ├── integration_not_found.golden │ │ ├── invalid_chart_type.golden │ │ ├── invalid_title_-_empty.golden │ │ ├── invalid_title_-_too_long.golden │ │ ├── invalid_title_-_too_short.golden │ │ ├── non-system_integration_type.golden │ │ └── successful_chart_creation.golden │ ├── TestWorkspaceHandler_DisableIntegration │ │ ├── cannot_disable_system_integration.golden │ │ ├── disable_error.golden │ │ ├── integration_already_disabled.golden │ │ ├── integration_db_error.golden │ │ ├── integration_not_found.golden │ │ ├── root_integration_not_enabled.golden │ │ └── successful_disable.golden │ ├── TestWorkspaceHandler_EnableIntegration │ │ ├── cannot_enable_system_integration.golden │ │ ├── chart_creation_error.golden │ │ ├── integration_already_enabled.golden │ │ ├── integration_cannot_update_if_not_api_key_type.golden │ │ ├── integration_failure_from_database.golden │ │ ├── integration_not_found.golden │ │ ├── integration_ping_error.golden │ │ ├── integration_provider_not_found.golden │ │ ├── invalid_request_-_no_api_key.golden │ │ ├── root_integration_not_enabled_yet.golden │ │ ├── secrets_storage_error.golden │ │ └── successful_enable.golden │ ├── TestWorkspaceHandler_GetPreferences │ │ ├── could_not_fetch_workspace_preferences.golden │ │ └── fetched_workspace_preferences.golden │ ├── TestWorkspaceHandler_Overview │ │ ├── all_repos_succeed.golden │ │ ├── contact_repo_fails.golden │ │ ├── deck_repo_fails.golden │ │ ├── funding_repo_fails.golden │ │ ├── share_repo_fails.golden │ │ └── update_repo_fails.golden │ ├── TestWorkspaceHandler_PingIntegration │ │ ├── cannot_ping_system_integration.golden │ │ ├── integration_fetching_error_from_database.golden │ │ ├── integration_not_found.golden │ │ ├── integration_provider_valid_but_no_client.golden │ │ ├── invalid_integration_provider.golden │ │ ├── invalid_request_-_no_api_key.golden │ │ ├── only_api_integration_can_be_pinged.golden │ │ ├── ping_error.golden │ │ ├── root_integration_not_enabled_yet.golden │ │ └── successful_ping.golden │ ├── TestWorkspaceHandler_SwitchWorkspace │ │ ├── could_not_find_reference.golden │ │ ├── could_not_update_user_repo.golden │ │ ├── no_access_to_workspace.golden │ │ └── updated_current_workspace.golden │ ├── TestWorkspaceHandler_Update │ │ ├── invalid_image_provided.golden │ │ ├── invalid_timezone_provided.golden │ │ ├── invalid_workspace_name_provided.golden │ │ ├── update_fails.golden │ │ ├── update_succeeds.golden │ │ ├── update_succeeds_even_if_partial_fields_provided.golden │ │ └── update_succeeds_if_no_fields_provided.golden │ ├── TestWorkspaceHandler_UpdateAPIKey │ │ ├── chart_creation_error.golden │ │ ├── integration_db_error.golden │ │ ├── integration_not_enabled_for_workspace.golden │ │ ├── integration_not_found.golden │ │ ├── invalid_integration_provider.golden │ │ ├── invalid_request_-_no_api_key.golden │ │ ├── non-api_key_integration_type.golden │ │ ├── ping_error.golden │ │ ├── root_integration_not_enabled_yet.golden │ │ ├── secrets_storage_error.golden │ │ └── successful_update.golden │ ├── TestWorkspaceHandler_UpdatePreferences │ │ ├── could_not_fetch_workspace_preferences.golden │ │ ├── update_fails.golden │ │ ├── update_succeeds.golden │ │ └── update_succeeds_with_request_data.golden │ ├── TestWorkspaceHandler_getBillingPortal │ │ ├── could_not_fetch_billing_portal_url.golden │ │ └── fectched_billing_portal_successfully.golden │ └── TestWorkspaceHandler_getIntegrations │ │ ├── could_not_fetch_workspace_integrations.golden │ │ ├── empty_integrations_list.golden │ │ ├── listed_integrations_successfully.golden │ │ ├── listed_integrations_with_disabled_root_integration.golden │ │ └── successfully_listed_multiple_integrations.golden ├── update.go ├── update_actions.go ├── update_actions_test.go ├── update_analytics.go ├── update_analytics_test.go ├── update_image.go ├── update_send.go ├── update_test.go ├── webhook.go ├── workspace.go ├── workspace_integration.go ├── workspace_integration_chart.go ├── workspace_integration_chart_test.go ├── workspace_integration_test.go ├── workspace_overview.go ├── workspace_overview_test.go └── workspace_test.go ├── share.go ├── share_enum.go ├── swagger.go ├── swagger ├── docs.go ├── swagger.json └── swagger.yaml ├── template.go ├── template_enum.go ├── tools └── v3gen │ └── main.go ├── update.go ├── update_enum.go ├── user.go ├── user_enum.go ├── user_test.go ├── uuid.go ├── vercel.json ├── web └── ui │ ├── .env.example │ ├── .eslintignore │ ├── .gitignore │ ├── README.md │ ├── biome.json │ ├── bun.lockb │ ├── components.json │ ├── environment.d.ts │ ├── eslint.config.mjs │ ├── next.config.mjs │ ├── package.json │ ├── postcss.config.js │ ├── public │ ├── DatabaseLogo.tsx │ ├── fundraising-crm.png │ ├── overview-malak.png │ └── update-malak.png │ ├── sentry.client.config.ts │ ├── sentry.edge.config.ts │ ├── sentry.server.config.ts │ ├── src │ ├── app │ │ ├── (main) │ │ │ ├── banned │ │ │ │ └── page.tsx │ │ │ ├── captable │ │ │ │ └── page.tsx │ │ │ ├── contacts │ │ │ │ ├── [slug] │ │ │ │ │ └── page.tsx │ │ │ │ ├── lists │ │ │ │ │ └── page.tsx │ │ │ │ └── page.tsx │ │ │ ├── dashboards │ │ │ │ ├── [slug] │ │ │ │ │ ├── page.tsx │ │ │ │ │ └── styles.module.css │ │ │ │ └── page.tsx │ │ │ ├── decks │ │ │ │ ├── [slug] │ │ │ │ │ └── page.tsx │ │ │ │ └── page.tsx │ │ │ ├── fundraising │ │ │ │ ├── [slug] │ │ │ │ │ └── page.tsx │ │ │ │ └── page.tsx │ │ │ ├── integrations │ │ │ │ └── page.tsx │ │ │ ├── layout.tsx │ │ │ ├── metrics │ │ │ │ └── page.tsx │ │ │ ├── overview │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ ├── settings │ │ │ │ └── page.tsx │ │ │ └── updates │ │ │ │ ├── [slug] │ │ │ │ └── page.tsx │ │ │ │ ├── page.tsx │ │ │ │ └── templates │ │ │ │ └── page.tsx │ │ ├── favicon.ico │ │ ├── global-error.tsx │ │ ├── globals.css │ │ ├── layout.tsx │ │ ├── login │ │ │ └── page.tsx │ │ ├── not-found.tsx │ │ ├── opengraph-image.png │ │ ├── shared │ │ │ ├── dashboards │ │ │ │ └── [slug] │ │ │ │ │ └── page.tsx │ │ │ └── layout.tsx │ │ ├── signup │ │ │ └── page.tsx │ │ └── siteConfig.ts │ ├── client │ │ └── Api.ts │ ├── components │ │ ├── ApiExamples.tsx │ │ ├── CodeExamples.tsx │ │ ├── error-boundary.tsx │ │ ├── investor-pipeline │ │ │ ├── AddInvestorDialog.tsx │ │ │ ├── ShareSettingsDialog.tsx │ │ │ ├── details │ │ │ │ ├── dialogs │ │ │ │ │ └── EditInvestorDialog.tsx │ │ │ │ └── tabs │ │ │ │ │ ├── activity │ │ │ │ │ ├── ActivityItem.tsx │ │ │ │ │ ├── ActivityList.tsx │ │ │ │ │ └── AddActivityDialog.tsx │ │ │ │ │ └── documents │ │ │ │ │ └── DocumentsTab.tsx │ │ │ ├── types.ts │ │ │ └── types │ │ │ │ └── index.ts │ │ ├── metrics │ │ │ ├── AddDataPointDialog.tsx │ │ │ ├── ChartCard.tsx │ │ │ ├── ChartDataView.tsx │ │ │ ├── ChartTypeIcon.tsx │ │ │ ├── CreateChartDialog.tsx │ │ │ └── IntegrationCard.tsx │ │ ├── pages │ │ │ ├── InvestorDetailsDrawer.tsx │ │ │ ├── KanbanBoard.tsx │ │ │ ├── KanbanBoardError.tsx │ │ │ ├── Signup.tsx │ │ │ ├── api-keys.tsx │ │ │ ├── billing.tsx │ │ │ ├── captable.tsx │ │ │ ├── contact-details.tsx │ │ │ ├── contact-lists.tsx │ │ │ ├── contacts.tsx │ │ │ ├── dashboard-details.tsx │ │ │ ├── dashboards.tsx │ │ │ ├── deck-details.tsx │ │ │ ├── decks.tsx │ │ │ ├── fundraising.tsx │ │ │ ├── general-settings.tsx │ │ │ ├── integrations.tsx │ │ │ ├── login.tsx │ │ │ ├── metrics.tsx │ │ │ ├── not-found.tsx │ │ │ ├── overview.tsx │ │ │ ├── settings.tsx │ │ │ ├── soon.tsx │ │ │ ├── styles.module.css │ │ │ ├── update-details.tsx │ │ │ └── updates.tsx │ │ ├── providers │ │ │ ├── posthog.tsx │ │ │ ├── providers.tsx │ │ │ ├── theme.tsx │ │ │ └── user.tsx │ │ └── ui │ │ │ ├── accordion.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── app-sidebar.tsx │ │ │ ├── aspect-ratio.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── button.tsx │ │ │ ├── calendar.tsx │ │ │ ├── card.tsx │ │ │ ├── carousel.tsx │ │ │ ├── chart.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── contacts │ │ │ ├── csv-upload-modal.tsx │ │ │ ├── list │ │ │ │ ├── list.tsx │ │ │ │ └── table.tsx │ │ │ ├── lists │ │ │ │ ├── add-to-list-dialog.tsx │ │ │ │ └── contact-lists-view.tsx │ │ │ ├── modal.tsx │ │ │ ├── new-list-modal.tsx │ │ │ └── single │ │ │ │ ├── form.tsx │ │ │ │ └── view.tsx │ │ │ ├── context-menu.tsx │ │ │ ├── currency-input.tsx │ │ │ ├── custom │ │ │ ├── README.md │ │ │ ├── avatar │ │ │ │ └── avatar.tsx │ │ │ ├── copy.tsx │ │ │ ├── loader │ │ │ │ └── skeleton.tsx │ │ │ ├── select │ │ │ │ └── select.tsx │ │ │ └── update │ │ │ │ └── badge.tsx │ │ │ ├── dashboard │ │ │ ├── access-log.tsx │ │ │ ├── access-management.tsx │ │ │ └── share-dialog.tsx │ │ │ ├── dashboards │ │ │ ├── create-modal.tsx │ │ │ └── list.tsx │ │ │ ├── decks │ │ │ ├── details │ │ │ │ ├── analytics.tsx │ │ │ │ └── delete.tsx │ │ │ ├── list │ │ │ │ └── list.tsx │ │ │ └── modal.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── field.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── icons │ │ │ ├── ArrowAnimated.tsx │ │ │ └── TremorPlaceholder.tsx │ │ │ ├── input-otp.tsx │ │ │ ├── input.tsx │ │ │ ├── integrations │ │ │ ├── card.tsx │ │ │ └── list.tsx │ │ │ ├── label.tsx │ │ │ ├── menubar.tsx │ │ │ ├── multi-select.tsx │ │ │ ├── nav-main.tsx │ │ │ ├── nav-user.tsx │ │ │ ├── navigation-menu.tsx │ │ │ ├── navigation │ │ │ ├── DropdownUserProfile.tsx │ │ │ ├── ModalAddWorkspace.tsx │ │ │ ├── UserProfile.tsx │ │ │ ├── navlist.ts │ │ │ └── sidebar.tsx │ │ │ ├── pagination.tsx │ │ │ ├── popover.tsx │ │ │ ├── progress.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── resizable.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── sidebar.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── slider.tsx │ │ │ ├── sonner.tsx │ │ │ ├── switch.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── team-switcher.tsx │ │ │ ├── textarea.tsx │ │ │ ├── toast.tsx │ │ │ ├── toaster.tsx │ │ │ ├── toggle-group.tsx │ │ │ ├── toggle.tsx │ │ │ ├── tooltip.tsx │ │ │ └── updates │ │ │ ├── analytics │ │ │ ├── analytics.tsx │ │ │ └── view.tsx │ │ │ ├── button │ │ │ ├── props.ts │ │ │ ├── send-test.tsx │ │ │ └── send.tsx │ │ │ ├── editor │ │ │ ├── blocknote.tsx │ │ │ ├── blocks │ │ │ │ ├── alert.tsx │ │ │ │ ├── chart.tsx │ │ │ │ ├── dashboard.tsx │ │ │ │ └── styles.css │ │ │ ├── default-value.ts │ │ │ └── image-upload.ts │ │ │ └── list │ │ │ ├── list.tsx │ │ │ ├── pinned.tsx │ │ │ └── single.tsx │ ├── hooks │ │ ├── use-api.ts │ │ ├── use-mobile.tsx │ │ └── use-toast.ts │ ├── instrumentation.ts │ ├── lib │ │ ├── analytics-constansts.ts │ │ ├── chart-utils.ts │ │ ├── chartUtils.ts │ │ ├── client.ts │ │ ├── config.ts │ │ ├── custom.ts │ │ ├── events.ts │ │ ├── query-constants.ts │ │ ├── timezone.ts │ │ ├── useOnWindowResize.tsx │ │ └── utils.ts │ ├── store │ │ ├── auth.ts │ │ └── workspace.ts │ └── types │ │ └── react-copy-to-clipboard.d.ts │ ├── tailwind.config.ts │ └── tsconfig.json └── workspace.go /.dockerignore: -------------------------------------------------------------------------------- 1 | ./web/ui/ 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [adelowo] 2 | -------------------------------------------------------------------------------- /.github/workflows/build-image.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.github/workflows/build-image.yml -------------------------------------------------------------------------------- /.github/workflows/frontend.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.github/workflows/frontend.yml -------------------------------------------------------------------------------- /.github/workflows/go.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.github/workflows/go.yml -------------------------------------------------------------------------------- /.github/workflows/linter.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.github/workflows/linter.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/vercel.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.github/workflows/vercel.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | docker-data/ 2 | config.yml 3 | -------------------------------------------------------------------------------- /.goreleaser.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/.goreleaser.yaml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/README.md -------------------------------------------------------------------------------- /Taskfile.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/Taskfile.yml -------------------------------------------------------------------------------- /api_key.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/api_key.go -------------------------------------------------------------------------------- /api_key_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/api_key_enum.go -------------------------------------------------------------------------------- /auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/auth.go -------------------------------------------------------------------------------- /blocknote.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/blocknote.go -------------------------------------------------------------------------------- /blocknote_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/blocknote_test.go -------------------------------------------------------------------------------- /cmd/cli/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/config.go -------------------------------------------------------------------------------- /cmd/cli/cron.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/cron.go -------------------------------------------------------------------------------- /cmd/cli/cron_apikey_revocation.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/cron_apikey_revocation.go -------------------------------------------------------------------------------- /cmd/cli/cron_deck_analytics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/cron_deck_analytics.go -------------------------------------------------------------------------------- /cmd/cli/cron_integration_sync.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/cron_integration_sync.go -------------------------------------------------------------------------------- /cmd/cli/cron_scheduled_emails.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/cron_scheduled_emails.go -------------------------------------------------------------------------------- /cmd/cli/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/http.go -------------------------------------------------------------------------------- /cmd/cli/integration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/integration.go -------------------------------------------------------------------------------- /cmd/cli/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/main.go -------------------------------------------------------------------------------- /cmd/cli/migrate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/migrate.go -------------------------------------------------------------------------------- /cmd/cli/plan.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/cli/plan.go -------------------------------------------------------------------------------- /cmd/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/cmd/main.go -------------------------------------------------------------------------------- /config/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/config/.env.example -------------------------------------------------------------------------------- /config/config.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/config/config.example.json -------------------------------------------------------------------------------- /config/config.example.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/config/config.example.yml -------------------------------------------------------------------------------- /config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/config/config.go -------------------------------------------------------------------------------- /config/config_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/config/config_enum.go -------------------------------------------------------------------------------- /contact.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/contact.go -------------------------------------------------------------------------------- /contact_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/contact_enum.go -------------------------------------------------------------------------------- /contact_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/contact_list.go -------------------------------------------------------------------------------- /dashboard.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/dashboard.go -------------------------------------------------------------------------------- /dashboard_link.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/dashboard_link.go -------------------------------------------------------------------------------- /dashboard_link_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/dashboard_link_enum.go -------------------------------------------------------------------------------- /date.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/date.go -------------------------------------------------------------------------------- /date_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/date_test.go -------------------------------------------------------------------------------- /deck.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/deck.go -------------------------------------------------------------------------------- /dev/otel-collector.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/dev/otel-collector.yml -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/errors.go -------------------------------------------------------------------------------- /fundraising.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/fundraising.go -------------------------------------------------------------------------------- /fundraising_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/fundraising_enum.go -------------------------------------------------------------------------------- /fundraising_link.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/fundraising_link.go -------------------------------------------------------------------------------- /generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/generate.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/go.sum -------------------------------------------------------------------------------- /image.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/image.go -------------------------------------------------------------------------------- /image_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/image_test.go -------------------------------------------------------------------------------- /integration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/integration.go -------------------------------------------------------------------------------- /integration_checkpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/integration_checkpoint.go -------------------------------------------------------------------------------- /integration_checkpoint_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/integration_checkpoint_enum.go -------------------------------------------------------------------------------- /integration_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/integration_enum.go -------------------------------------------------------------------------------- /internal/datastore/postgres/api_key.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/api_key.go -------------------------------------------------------------------------------- /internal/datastore/postgres/api_key_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/api_key_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/contact.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/contact.go -------------------------------------------------------------------------------- /internal/datastore/postgres/contact_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/contact_list.go -------------------------------------------------------------------------------- /internal/datastore/postgres/contact_list_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/contact_list_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/contact_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/contact_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/dashboard.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/dashboard.go -------------------------------------------------------------------------------- /internal/datastore/postgres/dashboard_link.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/dashboard_link.go -------------------------------------------------------------------------------- /internal/datastore/postgres/dashboard_link_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/dashboard_link_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/dashboard_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/dashboard_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/deck.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/deck.go -------------------------------------------------------------------------------- /internal/datastore/postgres/deck_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/deck_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/email.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/email.go -------------------------------------------------------------------------------- /internal/datastore/postgres/email_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/email_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/fundraising.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/fundraising.go -------------------------------------------------------------------------------- /internal/datastore/postgres/fundraising_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/fundraising_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/integration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/integration.go -------------------------------------------------------------------------------- /internal/datastore/postgres/integration_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/integration_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240904141511_add_refernce_to_workspace.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE workspaces DROP COLUMN reference; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240904141511_add_refernce_to_workspace.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE workspaces ADD COLUMN reference VARCHAR(200) UNIQUE NOT NULL; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240912200439_create_contacts_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE contacts ; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240927172202_add_is_pinned_to_updates_table.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE updates DROP COLUMN is_pinned; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240927172202_add_is_pinned_to_updates_table.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE updates ADD COLUMN is_pinned boolean NOT NULL DEFAULT false; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240927231630_add_title_column_to_table.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE updates DROP COLUMN title; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20240927231630_add_title_column_to_table.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE updates ADD COLUMN title VARCHAR(210) NOT NULL; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241014113650_create_contact_list.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE contact_lists; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241015193545_add_schedule_id_drop_email_from_recipients.down.sql: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241101164422_add_list_emails.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS contact_list_emails; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241116110626_alter_enum_for_schedule.down.sql: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241116110626_alter_enum_for_schedule.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TYPE update_schedule_status ADD VALUE 'processing'; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241117164235_analytics_track_update.down.sql: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241120201739_track_recipient_status.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE update_recipients DROP COLUMN status; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20241121182815_add_recipient_log.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE update_recipient_logs; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250118154222_add_is_archived_decks.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE decks DROP COLUMN is_archived; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250118154222_add_is_archived_decks.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE decks ADD COLUMN is_archived BOOLEAN DEFAULT false; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250123150600_add_is_pinned_decks.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE decks DROP COLUMN is_pinned; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250123150600_add_is_pinned_decks.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE decks ADD COLUMN is_pinned boolean NOT NULL DEFAULT false; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250123221403_store_deck_url.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE decks DROP COLUMN object_key; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250123221403_store_deck_url.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE decks ADD COLUMN object_key TEXT NOT NULL; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250127103311_add_is_default_to_plans_table.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE plans DROP COLUMN is_default; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250128140800_add_logourl_to_workspaces.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE workspaces DROP COLUMN logo_url; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250128140800_add_logourl_to_workspaces.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE workspaces ADD COLUMN logo_url TEXT DEFAULT '' NOT NULL; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250128153903_create_preferences_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE preferences; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250129164036_add_logourl_to_integrations.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE integrations DROP COLUMN logo_url; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250129164036_add_logourl_to_integrations.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE integrations ADD COLUMN logo_url TEXT UNIQUE NOT NULL; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250131190316_add_is_sub_active_workspaces.down.sql: -------------------------------------------------------------------------------- 1 | ALTER workspaces DROP COLUMN is_subscription_active; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250202132535_create_integration_data_points.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE integration_data_points; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250202140712_add_is_enabled_to_workspace_integrations.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE workspace_integrations DROP COLUMN is_active; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250209161655_add_metadata_to_charts_table.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE integration_charts DROP COLUMN metadata; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250209194517_add_sync_checkpointing_for_integrations.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE integration_sync_checkpoints; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250215120421_create_dashboard_chart_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE dashboard_charts; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250220111140_add_title_to_dashboards.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE dashboards DROP COLUMN title; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250220111140_add_title_to_dashboards.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE dashboards ADD COLUMN title VARCHAR(255) NOT NULL; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250220113938_add_workspace_id_to_dashboard.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE dashboards DROP COLUMN workspace_id; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250221182318_create_dashboard_ordering.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE dashboard_chart_positions; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250301123051_create_system_templates.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE system_templates; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250314231745_create_dashboard_link_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE dashboard_links; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250319194521_create_api_keys.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE api_keys; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250321215711_add_system_to_integration_type.down.sql: -------------------------------------------------------------------------------- 1 | -- no down on purpose 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20250327170353_add_is_banned.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE workspaces DROP COLUMN is_banned; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/migrations/20251025161615_email_verifications.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE email_verifications; 2 | -------------------------------------------------------------------------------- /internal/datastore/postgres/plan.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/plan.go -------------------------------------------------------------------------------- /internal/datastore/postgres/plan_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/plan_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/postgres.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/postgres.go -------------------------------------------------------------------------------- /internal/datastore/postgres/postgres_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/postgres_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/preferences.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/preferences.go -------------------------------------------------------------------------------- /internal/datastore/postgres/preferences_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/preferences_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/share.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/share.go -------------------------------------------------------------------------------- /internal/datastore/postgres/share_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/share_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/template.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/template.go -------------------------------------------------------------------------------- /internal/datastore/postgres/template_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/template_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/contacts.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/contacts.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/dashboards.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/dashboards.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/plans.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/plans.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/roles.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/roles.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/updates.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/updates.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/users.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/users.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/testdata/fixtures/workspaces.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/testdata/fixtures/workspaces.yml -------------------------------------------------------------------------------- /internal/datastore/postgres/update.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/update.go -------------------------------------------------------------------------------- /internal/datastore/postgres/update_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/update_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/user.go -------------------------------------------------------------------------------- /internal/datastore/postgres/user_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/user_test.go -------------------------------------------------------------------------------- /internal/datastore/postgres/workspace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/workspace.go -------------------------------------------------------------------------------- /internal/datastore/postgres/workspace_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/datastore/postgres/workspace_test.go -------------------------------------------------------------------------------- /internal/integrations/brex/brex.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/integrations/brex/brex.go -------------------------------------------------------------------------------- /internal/integrations/brex/brex_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/integrations/brex/brex_test.go -------------------------------------------------------------------------------- /internal/integrations/flutterwave/flw.go: -------------------------------------------------------------------------------- 1 | package flutterwave 2 | -------------------------------------------------------------------------------- /internal/integrations/manager.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/integrations/manager.go -------------------------------------------------------------------------------- /internal/integrations/mercury/mercury.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/integrations/mercury/mercury.go -------------------------------------------------------------------------------- /internal/integrations/mercury/mercury_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/integrations/mercury/mercury_test.go -------------------------------------------------------------------------------- /internal/integrations/paystack/paystack.go: -------------------------------------------------------------------------------- 1 | package paystack 2 | -------------------------------------------------------------------------------- /internal/pkg/billing/billing.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/billing/billing.go -------------------------------------------------------------------------------- /internal/pkg/billing/stripe/stripe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/billing/stripe/stripe.go -------------------------------------------------------------------------------- /internal/pkg/billing/stripe/stripe_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/billing/stripe/stripe_test.go -------------------------------------------------------------------------------- /internal/pkg/cache/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/cache/cache.go -------------------------------------------------------------------------------- /internal/pkg/cache/rediscache/cache_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/cache/rediscache/cache_test.go -------------------------------------------------------------------------------- /internal/pkg/cache/rediscache/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/cache/rediscache/redis.go -------------------------------------------------------------------------------- /internal/pkg/chart/mock_storage_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/chart/mock_storage_test.go -------------------------------------------------------------------------------- /internal/pkg/chart/renderer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/chart/renderer.go -------------------------------------------------------------------------------- /internal/pkg/chart/renderer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/chart/renderer_test.go -------------------------------------------------------------------------------- /internal/pkg/email/email.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/email.go -------------------------------------------------------------------------------- /internal/pkg/email/email_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/email_test.go -------------------------------------------------------------------------------- /internal/pkg/email/resend/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/resend/client.go -------------------------------------------------------------------------------- /internal/pkg/email/smtp/smtp.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/smtp/smtp.go -------------------------------------------------------------------------------- /internal/pkg/email/smtp/smtp_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/smtp/smtp_test.go -------------------------------------------------------------------------------- /internal/pkg/email/templates/auth/email_verify.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/templates/auth/email_verify.html -------------------------------------------------------------------------------- /internal/pkg/email/templates/billing/expired.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/templates/billing/expired.html -------------------------------------------------------------------------------- /internal/pkg/email/templates/billing/trial.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/templates/billing/trial.html -------------------------------------------------------------------------------- /internal/pkg/email/templates/sharing/dashboard_share.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/templates/sharing/dashboard_share.html -------------------------------------------------------------------------------- /internal/pkg/email/templates/updates/view.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/email/templates/updates/view.html -------------------------------------------------------------------------------- /internal/pkg/geolocation/location.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/geolocation/location.go -------------------------------------------------------------------------------- /internal/pkg/geolocation/maxmind/maxmind.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/geolocation/maxmind/maxmind.go -------------------------------------------------------------------------------- /internal/pkg/geolocation/maxmind/maxmind_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/geolocation/maxmind/maxmind_test.go -------------------------------------------------------------------------------- /internal/pkg/geolocation/maxmind/testdata/city.mmdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/geolocation/maxmind/testdata/city.mmdb -------------------------------------------------------------------------------- /internal/pkg/geolocation/maxmind/testdata/country.mmdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/geolocation/maxmind/testdata/country.mmdb -------------------------------------------------------------------------------- /internal/pkg/jwttoken/jwt.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/jwttoken/jwt.go -------------------------------------------------------------------------------- /internal/pkg/jwttoken/jwt_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/jwttoken/jwt_enum.go -------------------------------------------------------------------------------- /internal/pkg/jwttoken/jwt_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/jwttoken/jwt_test.go -------------------------------------------------------------------------------- /internal/pkg/jwttoken/mocks/token.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/jwttoken/mocks/token.go -------------------------------------------------------------------------------- /internal/pkg/queue/queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/queue/queue.go -------------------------------------------------------------------------------- /internal/pkg/queue/queue_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/queue/queue_enum.go -------------------------------------------------------------------------------- /internal/pkg/queue/watermill/watermill.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/queue/watermill/watermill.go -------------------------------------------------------------------------------- /internal/pkg/queue/watermill/watermill_email.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/queue/watermill/watermill_email.go -------------------------------------------------------------------------------- /internal/pkg/socialauth/google.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/socialauth/google.go -------------------------------------------------------------------------------- /internal/pkg/socialauth/mocks/social.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/socialauth/mocks/social.go -------------------------------------------------------------------------------- /internal/pkg/socialauth/social.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/socialauth/social.go -------------------------------------------------------------------------------- /internal/pkg/util/generic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/util/generic.go -------------------------------------------------------------------------------- /internal/pkg/util/strings.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/util/strings.go -------------------------------------------------------------------------------- /internal/pkg/util/strings_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/pkg/util/strings_test.go -------------------------------------------------------------------------------- /internal/secret/aes/aes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/aes/aes.go -------------------------------------------------------------------------------- /internal/secret/aes/aes_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/aes/aes_test.go -------------------------------------------------------------------------------- /internal/secret/infisical/infisical.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/infisical/infisical.go -------------------------------------------------------------------------------- /internal/secret/infisical/infisical_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/infisical/infisical_test.go -------------------------------------------------------------------------------- /internal/secret/secret.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/secret.go -------------------------------------------------------------------------------- /internal/secret/secret_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/secret_enum.go -------------------------------------------------------------------------------- /internal/secret/secretsmanager/aws_secretmanager.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/secretsmanager/aws_secretmanager.go -------------------------------------------------------------------------------- /internal/secret/secretsmanager/aws_secretmanager_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/secretsmanager/aws_secretmanager_test.go -------------------------------------------------------------------------------- /internal/secret/vault/vault.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/vault/vault.go -------------------------------------------------------------------------------- /internal/secret/vault/vault_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/internal/secret/vault/vault_test.go -------------------------------------------------------------------------------- /migrate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/migrate.go -------------------------------------------------------------------------------- /mocks/api_key.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/api_key.go -------------------------------------------------------------------------------- /mocks/auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/auth.go -------------------------------------------------------------------------------- /mocks/billing.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/billing.go -------------------------------------------------------------------------------- /mocks/cache.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/cache.go -------------------------------------------------------------------------------- /mocks/contact.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/contact.go -------------------------------------------------------------------------------- /mocks/contact_list.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/contact_list.go -------------------------------------------------------------------------------- /mocks/dashboard.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/dashboard.go -------------------------------------------------------------------------------- /mocks/dashboard_link.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/dashboard_link.go -------------------------------------------------------------------------------- /mocks/deck.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/deck.go -------------------------------------------------------------------------------- /mocks/fundraising.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/fundraising.go -------------------------------------------------------------------------------- /mocks/integration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/integration.go -------------------------------------------------------------------------------- /mocks/location.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/location.go -------------------------------------------------------------------------------- /mocks/plan.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/plan.go -------------------------------------------------------------------------------- /mocks/preferences.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/preferences.go -------------------------------------------------------------------------------- /mocks/queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/queue.go -------------------------------------------------------------------------------- /mocks/reference.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/reference.go -------------------------------------------------------------------------------- /mocks/secret.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/secret.go -------------------------------------------------------------------------------- /mocks/share.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/share.go -------------------------------------------------------------------------------- /mocks/template.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/template.go -------------------------------------------------------------------------------- /mocks/update.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/update.go -------------------------------------------------------------------------------- /mocks/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/user.go -------------------------------------------------------------------------------- /mocks/uuid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/uuid.go -------------------------------------------------------------------------------- /mocks/vault.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/vault.go -------------------------------------------------------------------------------- /mocks/workspace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/mocks/workspace.go -------------------------------------------------------------------------------- /paginator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/paginator.go -------------------------------------------------------------------------------- /password.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/password.go -------------------------------------------------------------------------------- /plan.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/plan.go -------------------------------------------------------------------------------- /plan_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/plan_test.go -------------------------------------------------------------------------------- /preferences.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/preferences.go -------------------------------------------------------------------------------- /reference.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/reference.go -------------------------------------------------------------------------------- /reference_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/reference_enum.go -------------------------------------------------------------------------------- /server/api_key.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/api_key.go -------------------------------------------------------------------------------- /server/api_key_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/api_key_test.go -------------------------------------------------------------------------------- /server/auth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/auth.go -------------------------------------------------------------------------------- /server/auth_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/auth_enum.go -------------------------------------------------------------------------------- /server/auth_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/auth_test.go -------------------------------------------------------------------------------- /server/contact.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/contact.go -------------------------------------------------------------------------------- /server/contact_import.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/contact_import.go -------------------------------------------------------------------------------- /server/contact_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/contact_test.go -------------------------------------------------------------------------------- /server/dashboard.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/dashboard.go -------------------------------------------------------------------------------- /server/dashboard_link.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/dashboard_link.go -------------------------------------------------------------------------------- /server/dashboard_link_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/dashboard_link_test.go -------------------------------------------------------------------------------- /server/dashboard_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/dashboard_test.go -------------------------------------------------------------------------------- /server/deck.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/deck.go -------------------------------------------------------------------------------- /server/deck_analytics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/deck_analytics.go -------------------------------------------------------------------------------- /server/deck_public_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/deck_public_test.go -------------------------------------------------------------------------------- /server/deck_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/deck_test.go -------------------------------------------------------------------------------- /server/fundraising.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/fundraising.go -------------------------------------------------------------------------------- /server/fundraising_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/fundraising_test.go -------------------------------------------------------------------------------- /server/handler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/handler.go -------------------------------------------------------------------------------- /server/handler_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/handler_enum.go -------------------------------------------------------------------------------- /server/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/http.go -------------------------------------------------------------------------------- /server/http_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/http_test.go -------------------------------------------------------------------------------- /server/middleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/middleware.go -------------------------------------------------------------------------------- /server/middleware_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/middleware_test.go -------------------------------------------------------------------------------- /server/otel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/otel.go -------------------------------------------------------------------------------- /server/preferences.go: -------------------------------------------------------------------------------- 1 | package server 2 | -------------------------------------------------------------------------------- /server/response.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/response.go -------------------------------------------------------------------------------- /server/stripe.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/stripe.go -------------------------------------------------------------------------------- /server/stripe_request.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/stripe_request.go -------------------------------------------------------------------------------- /server/stripe_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/stripe_test.go -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/api_key_creation_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create api key"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/empty_title.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/testdata/TestAPIKeyHandler_Create/empty_title.golden -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/encryption_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not encrypt value"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/max_limit_reached.golden: -------------------------------------------------------------------------------- 1 | {"message":"you can only have a maximum of 15 active api keys"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/successful_creation.golden: -------------------------------------------------------------------------------- 1 | {"message":"api key created","value":"oops"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/title_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"title must be more than 20 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Create/title_too_short.golden: -------------------------------------------------------------------------------- 1 | {"message":"title must be more than 3 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_List/list_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list api keys"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Revoke/api_key_already_revoked.golden: -------------------------------------------------------------------------------- 1 | {"message":"api key already revoked"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Revoke/api_key_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"api key not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Revoke/empty_reference.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Revoke/invalid_strategy.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid revocation strategy"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Revoke/revocation_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create api key"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAPIKeyHandler_Revoke/successful_revocation.golden: -------------------------------------------------------------------------------- 1 | {"message":"api key revoked"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/could_not_generate_token.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while generating jwt token"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/empty_email.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide your email address"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/empty_full_name.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide your full name"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/empty_password.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide your password"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/invalid_email.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid email address"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/user_already_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"Account already exists. Please use a new email"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_EmailSignup/weak_password.golden: -------------------------------------------------------------------------------- 1 | {"message":"your password is too week"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_FetchCurrentUser/could_not_list_workspaces.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list all your current workspaces"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_Login/could_not_create_user_in_datastore.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while creating user"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_Login/could_not_fetch_user_details.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch user details from oauth2 provider"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_Login/no_code_to_exchange_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid oauth2 code"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestAuthHandler_Login/token_exchange_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not verify your sign in with Google"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_AddUserToContactList/added_contact_to_list.golden: -------------------------------------------------------------------------------- 1 | {"message":"list was successfully updated with contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_AddUserToContactList/contact_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_AddUserToContactList/could_not_create_contact_list_mappings.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not add contact list mapping"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_AddUserToContactList/error_fetching_contact.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_AddUserToContactList/list_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact list not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_All/could_not_list_contacts.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching contacts"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_BatchCreate/duplicate_contact.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact with email already exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_BatchCreate/empty_contacts_array.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide at least one contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_BatchCreate/success_with_email_as_first_name.golden: -------------------------------------------------------------------------------- 1 | {"message":"your contacts were uploaded successfully"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_BatchCreate/success_with_multiple_contacts.golden: -------------------------------------------------------------------------------- 1 | {"message":"your contacts were uploaded successfully"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_BatchCreate/success_with_single_contact.golden: -------------------------------------------------------------------------------- 1 | {"message":"your contacts were uploaded successfully"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_BatchCreate/unknown_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while creating contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Create/duplicate_contact.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact with email already exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Create/success.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/testdata/TestContactHandler_Create/success.golden -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Create/unknown_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while creating contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_CreateContactList/name_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"your list name cannot be more than 50 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_CreateContactList/no_name_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the name of your list"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_CreateContactList/unknown_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while creating list"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContact/contact_error_while_fetching.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContact/contact_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContact/deleting_contact_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not delete list"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContact/deleting_contact_succeeds.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact was successfully deleted"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContactList/contact_list_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact list not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContactList/success.golden: -------------------------------------------------------------------------------- 1 | {"message":"list was successfully deleted"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_DeleteContactList/unknown_error_during_delete.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not delete list"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/company_name_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"company's name must be less than 100"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/company_name_too_short.golden: -------------------------------------------------------------------------------- 1 | {"message":"company's name must be greater than 5 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/could_not_fetch_contact_because_contact_does_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/could_not_fetch_contact_due_to_db_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/first_name_too_short.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact's first name must be greater than 5"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/last_name_too_short.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact's last name must be greater than 5"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/notes_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"company's notes must be less than 2000"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/notes_too_short.golden: -------------------------------------------------------------------------------- 1 | {"message":"company's notes must be greater than 5 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Edit/updating_contact_fails_at_db_level.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while updating contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_EditContactList/contact_list_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact list not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_EditContactList/no_name_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the name of your list"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_EditContactList/unknown_error_during_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update list"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_FetchContactLists/empty_lists.golden: -------------------------------------------------------------------------------- 1 | {"message":"list was successfully retrieved"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_GetSingleContact/get_contact_fails_because_it_does_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_GetSingleContact/get_contact_fails_because_of_db_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch contact"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_GetSingleContact/getting_shared_items_failed.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch contact details"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_List/unknown_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list contacts"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Search/search_with_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not search contacts"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestContactHandler_Search/search_with_no_query_parameter.golden: -------------------------------------------------------------------------------- 1 | {"message":"search parameter is required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_AddChart/chart_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_AddChart/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_AddChart/error_fetching_chart.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching chart"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_AddChart/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_AddChart/no_chart_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid chart reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_AddChart/successfully_added_chart_to_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart added to dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_Create/description_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"description cannot be more than 500 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_Create/error_creating_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_Create/no_description_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a description"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_Create/title_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"title cannot be more than 100 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchChartingData/chart_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchChartingData/error_fetching_chart.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching chart"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchChartingData/error_fetching_data_points.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch charting data"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchDashboard/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchDashboard/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchDashboard/error_fetching_dashboard_charts.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list dashboard charts"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_FetchDashboard/error_fetching_dashboard_positions.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list dashboard positions"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_GenerateLink/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_GenerateLink/error_creating_dashboard_link.golden: -------------------------------------------------------------------------------- 1 | {"message":"could nto create dashboard link"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_GenerateLink/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_GenerateLink/invalid_email_address.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid email address"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_List/error_listing_dashboards.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list dashboards"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_ListAccessControls/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_ListAccessControls/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_ListAllCharts/empty_charts_list.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboards fetched"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_ListAllCharts/error_listing_charts.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list charts"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicChartingDataFetch/chart_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicChartingDataFetch/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicChartingDataFetch/error_fetching_chart.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching chart"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicChartingDataFetch/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicChartingDataFetch/error_fetching_data_points.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch charting data"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicDashboardDetails/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicDashboardDetails/error_fetching_charts.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list dashboard charts"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicDashboardDetails/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_PublicDashboardDetails/error_fetching_positions.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list dashboard positions"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RemoveChart/chart_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RemoveChart/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RemoveChart/error_fetching_chart.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching chart"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RemoveChart/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RemoveChart/no_chart_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid chart reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RemoveChart/successfully_removed_chart_from_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart removed from dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RevokeAccessControl/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RevokeAccessControl/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RevokeAccessControl/error_revoking_access.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not revoke access"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_RevokeAccessControl/successfully_revoked_access.golden: -------------------------------------------------------------------------------- 1 | {"message":"access revoked"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_UpdateDashboardPositions/dashboard_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dashboard not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_UpdateDashboardPositions/error_fetching_dashboard.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching dashboard"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_UpdateDashboardPositions/error_updating_positions.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update dashboard positions"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDashboardHandler_UpdateDashboardPositions/successfully_updated_positions.golden: -------------------------------------------------------------------------------- 1 | {"message":"datapoints fetched"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Create/could_not_create_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Create/file_size_in_cache_is_0.golden: -------------------------------------------------------------------------------- 1 | {"message":"internal error while getting size of file"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Create/no_url_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the deck url"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Delete/could_not_delete_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"error occurred while deleting deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Delete/could_not_fetch_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Delete/could_not_fetch_deck_because_deck_does_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Delete/deleted_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"deleted your deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Fetch/could_not_fetch_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Fetch/could_not_fetch_deck_because_deck_does_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_Fetch/fetched_deck.golden: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/testdata/TestDeckHandler_Fetch/fetched_deck.golden -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchDeckSessions/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchDeckSessions/error_fetching_analytics.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch deck analytics"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchDeckSessions/error_fetching_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchDeckSessions/invalid_days_parameter.golden: -------------------------------------------------------------------------------- 1 | {"message":"days parameter must be 7, 14, or 30"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchDeckSessions/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchEngagements/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchEngagements/error_fetching_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchEngagements/error_fetching_engagements.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch deck engagements"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_FetchEngagements/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_List/could_not_list_decks.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list decks"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/error_creating_session.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create deck session"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/error_fetching_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/error_getting_geolocation.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not find path to deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/error_getting_object_path.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not find path to deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/no_device_info_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"provide device information"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/no_os_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"provide operating system of viewer"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_PublicDeckDetails/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_ToggleArchive/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_ToggleArchive/error_fetching_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_ToggleArchive/error_toggling_archive_status.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not toggle archival status"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_ToggleArchive/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/error_fetching_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/error_finding_session.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck session not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/error_updating_session.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create deck session"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/invalid_email.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide a valid email"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdateDeckViewerSession/successfully_updated_session.golden: -------------------------------------------------------------------------------- 1 | {"message":"fetched deck details"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdatePreferences/could_not_fetch_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdatePreferences/could_not_update_preferences.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update preferences"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdatePreferences/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdatePreferences/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UpdatePreferences/password_enabled_but_no_password_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide your password"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDeckHandler_UploadImage/could_not_store_file_details_in_cache.golden: -------------------------------------------------------------------------------- 1 | {"message":"internal error"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDecksHandler_Pin/deck_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"deck does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDecksHandler_Pin/error_fetching_deck.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching deck"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDecksHandler_Pin/error_toggling_pinned_status.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not toggle pinned status"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestDecksHandler_Pin/no_reference_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"reference required"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/add_contact_to_board_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not add contact to board"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/closed_pipeline_cannot_be_written_to.golden: -------------------------------------------------------------------------------- 1 | {"message":"this pipeline is closed already"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/contact_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/default_column_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not get default column"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/invalid_request_-_empty_contact_reference.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the contact reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/invalid_request_-_empty_pipeline_reference.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the pipeline reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/invalid_request_-_rating_too_high.golden: -------------------------------------------------------------------------------- 1 | {"message":"rating must be between 0 and 5"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/invalid_request_-_rating_too_low.golden: -------------------------------------------------------------------------------- 1 | {"message":"rating must be between 0 and 5"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/pipeline_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising pipeline not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_AddContact/successful_add_contact_to_board.golden: -------------------------------------------------------------------------------- 1 | {"message":"contact added to board successfully"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_Board/board_fetch_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch fundraising board"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_Board/get_pipeline_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch fundraising pipeline"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_Board/missing_reference_parameter.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the pipeline reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_Board/pipeline_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising pipeline not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_CloseBoard/close_board_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not close fundraising board"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_CloseBoard/get_pipeline_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch fundraising pipeline"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_CloseBoard/missing_reference_parameter.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the pipeline reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_CloseBoard/pipeline_already_closed.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising pipeline is already closed"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_CloseBoard/pipeline_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising pipeline not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_CloseBoard/successful_close.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising board closed successfully"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_List/repository_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list fundraising pipelines"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/column_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"column not found in pipeline"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/contact_not_found_on_board.golden: -------------------------------------------------------------------------------- 1 | {"message":"column not found in pipeline"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/empty_pipeline_reference.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the pipeline reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/move_contact_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update contact column"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/pipeline_is_closed.golden: -------------------------------------------------------------------------------- 1 | {"message":"this pipeline is closed already"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/pipeline_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising pipeline not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_MoveContactAcrossBoard/successful_move.golden: -------------------------------------------------------------------------------- 1 | {"message":"column updated"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/invalid_request_-_description_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"description must not exceed 200 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/invalid_request_-_expected_close_date_in_past.golden: -------------------------------------------------------------------------------- 1 | {"message":"expected close date must be in the future"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/invalid_request_-_expected_close_date_today.golden: -------------------------------------------------------------------------------- 1 | {"message":"expected close date must be in the future"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/invalid_request_-_invalid_stage.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising stage is unsupported at the moment"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/invalid_request_-_start_date_in_past.golden: -------------------------------------------------------------------------------- 1 | {"message":"start date must be today or in the future"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/invalid_request_-_title_too_short.golden: -------------------------------------------------------------------------------- 1 | {"message":"title must be at least 5 characters long"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/repository_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create fundraising pipeline"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/valid_request_-_seed_stage.golden: -------------------------------------------------------------------------------- 1 | {"message":"pipeline created"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_NewPipeline/valid_request_-_series_A_stage.golden: -------------------------------------------------------------------------------- 1 | {"message":"pipeline created"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/cannot_update_pipeline_that_is_closed.golden: -------------------------------------------------------------------------------- 1 | {"message":"this pipeline is closed already"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/could_not_fetch_column.golden: -------------------------------------------------------------------------------- 1 | {"message":"error occurred while fetching column"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/invalid_request_-_empty_contact_ID.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the contact id"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/invalid_request_-_empty_pipeline_reference.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the pipeline reference"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/invalid_request_-_rating_too_high.golden: -------------------------------------------------------------------------------- 1 | {"message":"rating must be between 0 and 5"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/invalid_request_-_rating_too_low.golden: -------------------------------------------------------------------------------- 1 | {"message":"rating must be between 0 and 5"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/pipeline_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"fundraising pipeline not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestFundraisingHandler_UpdateContactDeal/updated_contact_repo_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update contact deal details"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestRequireWorkspaceValidSubscription/sub_active.golden: -------------------------------------------------------------------------------- 1 | "{}" 2 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/customer.created_-_success.golden: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/customer.created_-_workspace_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not find workspace"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/invalid_webhook_signature.golden: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/invoice.paid_-_plan_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch plan"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/invoice.paid_-_success.golden: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/invoice.paid_-_workspace_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not find workspace"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestStripeHandler_HandleWebhook/missing_webhook_signature.golden: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/testdata/TestUpdateHandler_FetchUpdate/could_not_fetch_update_from_db.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdateHandler_FetchUpdate/update_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdateHandler_FetchUpdateAnalytics/could_not_fetch_recipient_stats.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch analytics"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdateHandler_FetchUpdateAnalytics/could_not_fetch_update_from_db.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdateHandler_FetchUpdateAnalytics/could_not_fetch_update_stats.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch analytics"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdateHandler_FetchUpdateAnalytics/update_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Create/culd_not_create_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create a new update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Create/title_not_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide update title"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Create/title_not_up_to_5_chars.golden: -------------------------------------------------------------------------------- 1 | {"message":"title must be more than 5 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Delete/could_not_fetch_update_from_db.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Delete/deleting_content_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create updates"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Delete/deleting_content_succeeds.golden: -------------------------------------------------------------------------------- 1 | {"message":"update has been deleted"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Delete/update_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Duplicate/could_not_fetch_update_from_db.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Duplicate/duplicating_content_failed.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create updates"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Duplicate/update_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_HandleReaction/recipient_stat_does_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not find recipient"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_HandleReaction/update_stat_failed.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not find update stat"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_HandleReaction/update_stat_reaction.golden: -------------------------------------------------------------------------------- 1 | {"message":"added reaction"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_HandleReaction/update_stat_updating_failed.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update reaction"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_List/culd_not_list_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list updates"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_ListPins/culd_not_list_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list pinned updates"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Pin/could_not_fetch_update_from_db.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Pin/toggling_failed.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not toggle pinned status"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Pin/update_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_PreviewUpdate/error_creating_preview.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not send update to recipients"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_PreviewUpdate/error_fetching_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_PreviewUpdate/invalid_email.golden: -------------------------------------------------------------------------------- 1 | {"message":"email is invalid"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_PreviewUpdate/update_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_SendUpdate/error_during_update_sending.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not send update to recipients"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_SendUpdate/error_fetching_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_SendUpdate/invalid_email.golden: -------------------------------------------------------------------------------- 1 | {"message":"mail: missing '@' or angle-addr"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_SendUpdate/successful_update_sending.golden: -------------------------------------------------------------------------------- 1 | {"message":"Your update is now scheduled and will be sent out"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_SendUpdate/update_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_SendUpdate/update_sending_reached_max_recipients.golden: -------------------------------------------------------------------------------- 1 | {"message":"no more units left"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_Templates/error_listing_templates.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list system templates"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/could_not_fetch_update_from_db.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching update"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/empty_content.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide the content"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/empty_title.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide update title"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/title_not_up_to_5_chars.golden: -------------------------------------------------------------------------------- 1 | {"message":"title must be more than 5 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/update_already_sent.golden: -------------------------------------------------------------------------------- 1 | {"message":"Update has been sent alread. you cannot edit it"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/update_not_exists.golden: -------------------------------------------------------------------------------- 1 | {"message":"update does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/updating_content_failed.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update content"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestUpdatesHandler_UpdateContent/updating_content_succeeds.golden: -------------------------------------------------------------------------------- 1 | {"message":"updates stored"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/add_data_point_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create data points"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/chart_fetch_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"an error occurred while fetching chart"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/chart_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"chart not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/integration_fetch_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/integration_not_enabled.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not enabled"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/integration_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_AddDataPoint/successful_data_point_addition.golden: -------------------------------------------------------------------------------- 1 | {"message":"added datapoints"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Create/could_not_create_workspace.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create workspace"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Create/could_not_fetch_plan.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch default plan details"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Create/invalid_name_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"workspace name must be a minimum of 5 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Create/no_name_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide workspace name"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/create_chart_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create chart"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/integration_fetch_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/integration_not_enabled.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not enabled"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/integration_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/invalid_chart_type.golden: -------------------------------------------------------------------------------- 1 | {"message":"unsupported chart type"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/invalid_title_-_empty.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide chart title"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/invalid_title_-_too_long.golden: -------------------------------------------------------------------------------- 1 | {"message":"title can not be more than 100 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_CreateChart/successful_chart_creation.golden: -------------------------------------------------------------------------------- 1 | {"message":"created chart for integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/cannot_disable_system_integration.golden: -------------------------------------------------------------------------------- 1 | {"message":"you cannot disable a system level integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/disable_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/integration_already_disabled.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration is already disabled"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/integration_db_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/integration_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/root_integration_not_enabled.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not enabled yet and coming soon"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_DisableIntegration/successful_disable.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration successfully disabled"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/cannot_enable_system_integration.golden: -------------------------------------------------------------------------------- 1 | {"message":"you cannot enable a system level integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/chart_creation_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/integration_already_enabled.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration already enabled"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/integration_failure_from_database.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/integration_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/integration_ping_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"ping error"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/integration_provider_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"dmercury is not a valid IntegrationProvider"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/invalid_request_-_no_api_key.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide API key"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/root_integration_not_enabled_yet.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not enabled yet and coming soon"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/secrets_storage_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not encrypt secrets provider"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_EnableIntegration/successful_enable.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration successfully enabled"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_GetPreferences/could_not_fetch_workspace_preferences.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch preferences"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Overview/contact_repo_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch workspace overview"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Overview/deck_repo_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch workspace overview"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Overview/funding_repo_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch workspace overview"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Overview/share_repo_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch workspace overview"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Overview/update_repo_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch workspace overview"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/cannot_ping_system_integration.golden: -------------------------------------------------------------------------------- 1 | {"message":"you cannot enable a system level integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/integration_fetching_error_from_database.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/integration_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/integration_provider_valid_but_no_client.golden: -------------------------------------------------------------------------------- 1 | {"message":"client does not exists"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/invalid_request_-_no_api_key.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide API key"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/only_api_integration_can_be_pinged.golden: -------------------------------------------------------------------------------- 1 | {"message":"You cannot set the api key for this integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/ping_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"ping error"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/root_integration_not_enabled_yet.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not enabled yet and coming soon"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_PingIntegration/successful_ping.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration successfully pinged"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_SwitchWorkspace/could_not_update_user_repo.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update user's current workspace"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_SwitchWorkspace/no_access_to_workspace.golden: -------------------------------------------------------------------------------- 1 | {"message":"You can only join workspaces you are a member of"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Update/invalid_image_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"url does not contain an image"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Update/invalid_timezone_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"invalid or unsupported timezone"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Update/invalid_workspace_name_provided.golden: -------------------------------------------------------------------------------- 1 | {"message":"workspace name must be a minimum of 5 characters"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_Update/update_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update workspace"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/chart_creation_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/integration_db_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/integration_not_found.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not found"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/invalid_request_-_no_api_key.golden: -------------------------------------------------------------------------------- 1 | {"message":"please provide API key"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/non-api_key_integration_type.golden: -------------------------------------------------------------------------------- 1 | {"message":"You cannot update the api key for this integration"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/ping_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"ping error"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/root_integration_not_enabled_yet.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration not enabled yet and coming soon"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/secrets_storage_error.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not encrypt secrets provider"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdateAPIKey/successful_update.golden: -------------------------------------------------------------------------------- 1 | {"message":"integration api key updated"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdatePreferences/could_not_fetch_workspace_preferences.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not fetch preferences"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_UpdatePreferences/update_fails.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not update preferences"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_getBillingPortal/could_not_fetch_billing_portal_url.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not create billing portal link"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_getIntegrations/could_not_fetch_workspace_integrations.golden: -------------------------------------------------------------------------------- 1 | {"message":"could not list integrations"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_getIntegrations/empty_integrations_list.golden: -------------------------------------------------------------------------------- 1 | {"message":"workspace integrations retrieved"} 2 | -------------------------------------------------------------------------------- /server/testdata/TestWorkspaceHandler_getIntegrations/listed_integrations_successfully.golden: -------------------------------------------------------------------------------- 1 | {"message":"workspace integrations retrieved"} 2 | -------------------------------------------------------------------------------- /server/update.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update.go -------------------------------------------------------------------------------- /server/update_actions.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_actions.go -------------------------------------------------------------------------------- /server/update_actions_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_actions_test.go -------------------------------------------------------------------------------- /server/update_analytics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_analytics.go -------------------------------------------------------------------------------- /server/update_analytics_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_analytics_test.go -------------------------------------------------------------------------------- /server/update_image.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_image.go -------------------------------------------------------------------------------- /server/update_send.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_send.go -------------------------------------------------------------------------------- /server/update_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/update_test.go -------------------------------------------------------------------------------- /server/webhook.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/webhook.go -------------------------------------------------------------------------------- /server/workspace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace.go -------------------------------------------------------------------------------- /server/workspace_integration.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_integration.go -------------------------------------------------------------------------------- /server/workspace_integration_chart.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_integration_chart.go -------------------------------------------------------------------------------- /server/workspace_integration_chart_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_integration_chart_test.go -------------------------------------------------------------------------------- /server/workspace_integration_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_integration_test.go -------------------------------------------------------------------------------- /server/workspace_overview.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_overview.go -------------------------------------------------------------------------------- /server/workspace_overview_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_overview_test.go -------------------------------------------------------------------------------- /server/workspace_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/server/workspace_test.go -------------------------------------------------------------------------------- /share.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/share.go -------------------------------------------------------------------------------- /share_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/share_enum.go -------------------------------------------------------------------------------- /swagger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/swagger.go -------------------------------------------------------------------------------- /swagger/docs.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/swagger/docs.go -------------------------------------------------------------------------------- /swagger/swagger.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/swagger/swagger.json -------------------------------------------------------------------------------- /swagger/swagger.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/swagger/swagger.yaml -------------------------------------------------------------------------------- /template.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/template.go -------------------------------------------------------------------------------- /template_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/template_enum.go -------------------------------------------------------------------------------- /tools/v3gen/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/tools/v3gen/main.go -------------------------------------------------------------------------------- /update.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/update.go -------------------------------------------------------------------------------- /update_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/update_enum.go -------------------------------------------------------------------------------- /user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/user.go -------------------------------------------------------------------------------- /user_enum.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/user_enum.go -------------------------------------------------------------------------------- /user_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/user_test.go -------------------------------------------------------------------------------- /uuid.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/uuid.go -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/vercel.json -------------------------------------------------------------------------------- /web/ui/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/.env.example -------------------------------------------------------------------------------- /web/ui/.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/.eslintignore -------------------------------------------------------------------------------- /web/ui/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/.gitignore -------------------------------------------------------------------------------- /web/ui/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/README.md -------------------------------------------------------------------------------- /web/ui/biome.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/biome.json -------------------------------------------------------------------------------- /web/ui/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/bun.lockb -------------------------------------------------------------------------------- /web/ui/components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/components.json -------------------------------------------------------------------------------- /web/ui/environment.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/environment.d.ts -------------------------------------------------------------------------------- /web/ui/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/eslint.config.mjs -------------------------------------------------------------------------------- /web/ui/next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/next.config.mjs -------------------------------------------------------------------------------- /web/ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/package.json -------------------------------------------------------------------------------- /web/ui/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/postcss.config.js -------------------------------------------------------------------------------- /web/ui/public/DatabaseLogo.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/public/DatabaseLogo.tsx -------------------------------------------------------------------------------- /web/ui/public/fundraising-crm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/public/fundraising-crm.png -------------------------------------------------------------------------------- /web/ui/public/overview-malak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/public/overview-malak.png -------------------------------------------------------------------------------- /web/ui/public/update-malak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/public/update-malak.png -------------------------------------------------------------------------------- /web/ui/sentry.client.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/sentry.client.config.ts -------------------------------------------------------------------------------- /web/ui/sentry.edge.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/sentry.edge.config.ts -------------------------------------------------------------------------------- /web/ui/sentry.server.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/sentry.server.config.ts -------------------------------------------------------------------------------- /web/ui/src/app/(main)/banned/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/banned/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/captable/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/captable/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/contacts/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/contacts/[slug]/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/contacts/lists/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/contacts/lists/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/contacts/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/contacts/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/dashboards/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/dashboards/[slug]/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/dashboards/[slug]/styles.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/dashboards/[slug]/styles.module.css -------------------------------------------------------------------------------- /web/ui/src/app/(main)/dashboards/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/dashboards/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/decks/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/decks/[slug]/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/decks/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/decks/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/fundraising/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/fundraising/[slug]/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/fundraising/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/fundraising/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/integrations/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/integrations/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/layout.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/metrics/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/metrics/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/overview/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/overview/layout.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/overview/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/overview/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/settings/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/settings/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/updates/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/updates/[slug]/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/updates/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/updates/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/(main)/updates/templates/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/(main)/updates/templates/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/favicon.ico -------------------------------------------------------------------------------- /web/ui/src/app/global-error.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/global-error.tsx -------------------------------------------------------------------------------- /web/ui/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/globals.css -------------------------------------------------------------------------------- /web/ui/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/layout.tsx -------------------------------------------------------------------------------- /web/ui/src/app/login/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/login/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/not-found.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/not-found.tsx -------------------------------------------------------------------------------- /web/ui/src/app/opengraph-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/opengraph-image.png -------------------------------------------------------------------------------- /web/ui/src/app/shared/dashboards/[slug]/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/shared/dashboards/[slug]/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/shared/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/shared/layout.tsx -------------------------------------------------------------------------------- /web/ui/src/app/signup/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/signup/page.tsx -------------------------------------------------------------------------------- /web/ui/src/app/siteConfig.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/app/siteConfig.ts -------------------------------------------------------------------------------- /web/ui/src/client/Api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/client/Api.ts -------------------------------------------------------------------------------- /web/ui/src/components/ApiExamples.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ApiExamples.tsx -------------------------------------------------------------------------------- /web/ui/src/components/CodeExamples.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/CodeExamples.tsx -------------------------------------------------------------------------------- /web/ui/src/components/error-boundary.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/error-boundary.tsx -------------------------------------------------------------------------------- /web/ui/src/components/investor-pipeline/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/investor-pipeline/types.ts -------------------------------------------------------------------------------- /web/ui/src/components/investor-pipeline/types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/investor-pipeline/types/index.ts -------------------------------------------------------------------------------- /web/ui/src/components/metrics/AddDataPointDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/metrics/AddDataPointDialog.tsx -------------------------------------------------------------------------------- /web/ui/src/components/metrics/ChartCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/metrics/ChartCard.tsx -------------------------------------------------------------------------------- /web/ui/src/components/metrics/ChartDataView.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/metrics/ChartDataView.tsx -------------------------------------------------------------------------------- /web/ui/src/components/metrics/ChartTypeIcon.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/metrics/ChartTypeIcon.tsx -------------------------------------------------------------------------------- /web/ui/src/components/metrics/CreateChartDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/metrics/CreateChartDialog.tsx -------------------------------------------------------------------------------- /web/ui/src/components/metrics/IntegrationCard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/metrics/IntegrationCard.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/InvestorDetailsDrawer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/InvestorDetailsDrawer.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/KanbanBoard.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/KanbanBoard.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/KanbanBoardError.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/KanbanBoardError.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/Signup.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/Signup.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/api-keys.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/api-keys.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/billing.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/billing.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/captable.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/captable.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/contact-details.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/contact-details.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/contact-lists.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/contact-lists.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/contacts.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/contacts.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/dashboard-details.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/dashboard-details.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/dashboards.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/dashboards.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/deck-details.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/deck-details.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/decks.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/decks.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/fundraising.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/fundraising.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/general-settings.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/general-settings.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/integrations.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/integrations.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/login.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/login.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/metrics.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/metrics.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/not-found.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/not-found.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/overview.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/overview.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/settings.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/settings.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/soon.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/soon.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/styles.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/styles.module.css -------------------------------------------------------------------------------- /web/ui/src/components/pages/update-details.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/update-details.tsx -------------------------------------------------------------------------------- /web/ui/src/components/pages/updates.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/pages/updates.tsx -------------------------------------------------------------------------------- /web/ui/src/components/providers/posthog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/providers/posthog.tsx -------------------------------------------------------------------------------- /web/ui/src/components/providers/providers.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/providers/providers.tsx -------------------------------------------------------------------------------- /web/ui/src/components/providers/theme.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/providers/theme.tsx -------------------------------------------------------------------------------- /web/ui/src/components/providers/user.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/providers/user.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/accordion.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/accordion.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/alert-dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/alert-dialog.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/alert.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/alert.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/app-sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/app-sidebar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/aspect-ratio.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/aspect-ratio.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/avatar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/badge.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/breadcrumb.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/breadcrumb.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/button.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/calendar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/calendar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/card.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/carousel.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/carousel.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/chart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/chart.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/checkbox.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/checkbox.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/collapsible.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/collapsible.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/command.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/command.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/csv-upload-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/csv-upload-modal.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/list/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/list/list.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/list/table.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/list/table.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/modal.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/new-list-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/new-list-modal.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/single/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/single/form.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/contacts/single/view.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/contacts/single/view.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/context-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/context-menu.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/currency-input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/currency-input.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/custom/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/custom/README.md -------------------------------------------------------------------------------- /web/ui/src/components/ui/custom/avatar/avatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/custom/avatar/avatar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/custom/copy.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/custom/copy.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/custom/loader/skeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/custom/loader/skeleton.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/custom/select/select.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/custom/select/select.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/custom/update/badge.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/custom/update/badge.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dashboard/access-log.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dashboard/access-log.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dashboard/access-management.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dashboard/access-management.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dashboard/share-dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dashboard/share-dialog.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dashboards/create-modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dashboards/create-modal.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dashboards/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dashboards/list.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/decks/details/analytics.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/decks/details/analytics.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/decks/details/delete.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/decks/details/delete.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/decks/list/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/decks/list/list.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/decks/modal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/decks/modal.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dialog.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/drawer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/drawer.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/dropdown-menu.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/field.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/field.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/form.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/form.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/hover-card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/hover-card.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/icons/ArrowAnimated.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/icons/ArrowAnimated.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/icons/TremorPlaceholder.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/icons/TremorPlaceholder.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/input-otp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/input-otp.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/input.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/integrations/card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/integrations/card.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/integrations/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/integrations/list.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/label.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/menubar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/menubar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/multi-select.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/multi-select.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/nav-main.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/nav-main.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/nav-user.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/nav-user.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/navigation-menu.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/navigation-menu.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/navigation/ModalAddWorkspace.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/navigation/ModalAddWorkspace.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/navigation/UserProfile.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/navigation/UserProfile.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/navigation/navlist.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/navigation/navlist.ts -------------------------------------------------------------------------------- /web/ui/src/components/ui/navigation/sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/navigation/sidebar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/pagination.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/pagination.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/popover.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/popover.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/progress.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/progress.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/radio-group.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/radio-group.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/resizable.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/resizable.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/scroll-area.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/scroll-area.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/select.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/select.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/separator.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/separator.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/sheet.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/sheet.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/sidebar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/sidebar.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/skeleton.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/slider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/slider.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/sonner.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/sonner.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/switch.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/switch.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/table.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/table.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/tabs.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/tabs.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/team-switcher.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/team-switcher.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/textarea.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/textarea.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/toast.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/toast.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/toaster.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/toaster.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/toggle-group.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/toggle-group.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/toggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/toggle.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/tooltip.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/tooltip.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/analytics/analytics.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/analytics/analytics.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/analytics/view.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/analytics/view.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/button/props.ts: -------------------------------------------------------------------------------- 1 | export type ButtonProps = { 2 | reference: string; 3 | }; 4 | -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/button/send-test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/button/send-test.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/button/send.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/button/send.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/editor/blocknote.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/editor/blocknote.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/editor/blocks/alert.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/editor/blocks/alert.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/editor/blocks/chart.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/editor/blocks/chart.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/editor/blocks/styles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/editor/blocks/styles.css -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/editor/default-value.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/editor/default-value.ts -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/editor/image-upload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/editor/image-upload.ts -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/list/list.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/list/list.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/list/pinned.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/list/pinned.tsx -------------------------------------------------------------------------------- /web/ui/src/components/ui/updates/list/single.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/components/ui/updates/list/single.tsx -------------------------------------------------------------------------------- /web/ui/src/hooks/use-api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/hooks/use-api.ts -------------------------------------------------------------------------------- /web/ui/src/hooks/use-mobile.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/hooks/use-mobile.tsx -------------------------------------------------------------------------------- /web/ui/src/hooks/use-toast.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/hooks/use-toast.ts -------------------------------------------------------------------------------- /web/ui/src/instrumentation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/instrumentation.ts -------------------------------------------------------------------------------- /web/ui/src/lib/analytics-constansts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/analytics-constansts.ts -------------------------------------------------------------------------------- /web/ui/src/lib/chart-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/chart-utils.ts -------------------------------------------------------------------------------- /web/ui/src/lib/chartUtils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/chartUtils.ts -------------------------------------------------------------------------------- /web/ui/src/lib/client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/client.ts -------------------------------------------------------------------------------- /web/ui/src/lib/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/config.ts -------------------------------------------------------------------------------- /web/ui/src/lib/custom.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/custom.ts -------------------------------------------------------------------------------- /web/ui/src/lib/events.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/events.ts -------------------------------------------------------------------------------- /web/ui/src/lib/query-constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/query-constants.ts -------------------------------------------------------------------------------- /web/ui/src/lib/timezone.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/timezone.ts -------------------------------------------------------------------------------- /web/ui/src/lib/useOnWindowResize.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/useOnWindowResize.tsx -------------------------------------------------------------------------------- /web/ui/src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/lib/utils.ts -------------------------------------------------------------------------------- /web/ui/src/store/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/store/auth.ts -------------------------------------------------------------------------------- /web/ui/src/store/workspace.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/store/workspace.ts -------------------------------------------------------------------------------- /web/ui/src/types/react-copy-to-clipboard.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/src/types/react-copy-to-clipboard.d.ts -------------------------------------------------------------------------------- /web/ui/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/tailwind.config.ts -------------------------------------------------------------------------------- /web/ui/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/web/ui/tsconfig.json -------------------------------------------------------------------------------- /workspace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ayinke-llc/malak/HEAD/workspace.go --------------------------------------------------------------------------------