├── .ignore ├── other ├── integrations │ └── .gitignore ├── sqlparser │ ├── compile.sh │ └── README.md ├── tunnel │ ├── server │ │ ├── .gitignore │ │ ├── makefile │ │ └── schema.sql │ └── README.md ├── websocket_tunnel │ └── server │ │ ├── makefile │ │ └── schema.sql └── prql │ └── types.go ├── website ├── tsconfig.json ├── .vscode │ ├── settings.json │ ├── extensions.json │ └── launch.json ├── public │ ├── favicon.png │ ├── robots.txt │ ├── icons │ │ ├── 5ire.png │ │ ├── pypi.png │ │ ├── brave.png │ │ ├── duckdb.png │ │ ├── hubspot.png │ │ ├── pocket.png │ │ ├── airtable.png │ │ ├── readwise.jpg │ │ ├── tablePlus.png │ │ ├── apple-reminders.png │ │ ├── mysql-workbench.png │ │ ├── user.svg │ │ ├── clickhouse.svg │ │ ├── tidb.svg │ │ ├── logs.svg │ │ ├── ycombinator.svg │ │ ├── git.svg │ │ ├── github.svg │ │ └── google_tasks.svg │ ├── images │ │ ├── logo.png │ │ ├── llm-header.png │ │ ├── logo-shadow.png │ │ ├── docs │ │ │ ├── GgCl8quP.png │ │ │ ├── Id89086t.png │ │ │ ├── J028Akph.png │ │ │ ├── O08kLX6m.png │ │ │ ├── P6MjoIjz.png │ │ │ ├── Ws1UhIKV.png │ │ │ ├── Z2R9qeV3.png │ │ │ ├── cVtNtBbd.png │ │ │ ├── ePlXiEg3.png │ │ │ ├── mfjW79d8.png │ │ │ ├── oE0a8dtb.png │ │ │ ├── phTdzIiJ.png │ │ │ ├── rLpTGAGK.png │ │ │ ├── tR5IawXS.png │ │ │ ├── vg6dOA3V.png │ │ │ ├── Tableau_Logo.png │ │ │ ├── llm │ │ │ │ ├── 5ire-add.png │ │ │ │ ├── 5ire-path.png │ │ │ │ ├── 5ire-final.png │ │ │ │ ├── 5ire-tools.png │ │ │ │ ├── chatgpt-ready.png │ │ │ │ ├── claude-navbar.png │ │ │ │ ├── claude-result.png │ │ │ │ ├── librechat-auth.png │ │ │ │ ├── claude-settings.png │ │ │ │ ├── typingmind-enable.png │ │ │ │ ├── typingmind-install.png │ │ │ │ ├── typingmind-settings.png │ │ │ │ ├── librechat-http-result.png │ │ │ │ ├── librechat-agent-creation.png │ │ │ │ ├── librechat-tool-selection.png │ │ │ │ ├── librechat-agent-right-panel.png │ │ │ │ └── librechat-agent-selection.png │ │ │ ├── Hyper_labH4rXg@2x.png │ │ │ ├── Anyquery-diagram-mysql.png │ │ │ ├── Anyquery-diagram-shell.png │ │ │ ├── Anyquery-diagram-namespace.png │ │ │ └── httpsanyquery.devintegrations_23KmyyI3@2x.png │ │ ├── release-header.png │ │ ├── integrations_logo.png │ │ ├── anyquery_examples.sql.png │ │ ├── mysql-compatibility.png │ │ ├── bg-community-repository.png │ │ ├── how-to-guides-og-image.png │ │ ├── windows-logo.svg │ │ └── apple-logo.svg │ └── fonts │ │ ├── inter-v13-latin-500.woff2 │ │ ├── inter-v13-latin-600.woff2 │ │ ├── inter-v13-latin-700.woff2 │ │ └── inter-v13-latin-regular.woff2 ├── src │ ├── images │ │ └── Integrations_logo.png │ ├── content │ │ ├── chats │ │ │ ├── 5ire.yaml │ │ │ ├── librechat.yaml │ │ │ ├── typingmind.yaml │ │ │ ├── chatgpt.yaml │ │ │ └── claude-desktop.yaml │ │ ├── databases │ │ │ ├── TiDB.yaml │ │ │ ├── mysql.yaml │ │ │ ├── duckdb.yaml │ │ │ ├── sqlite.yaml │ │ │ ├── yugabyte.yaml │ │ │ ├── mariaDB.yaml │ │ │ ├── scyllaDB.yaml │ │ │ ├── cassandra.yaml │ │ │ ├── clickhouse.yaml │ │ │ ├── postgresql.yaml │ │ │ ├── cockroachdb.yaml │ │ │ ├── singlestore.yaml │ │ │ ├── aws-aurora-mysql.yaml │ │ │ └── aws-aurora-postgresql.yaml │ │ ├── recipes │ │ │ ├── index.md │ │ │ └── sql-query-html-table.md │ │ └── docs │ │ │ ├── connection-guide │ │ │ ├── superset.md │ │ │ └── power-bi.md │ │ │ └── docs │ │ │ ├── reference │ │ │ └── Commands │ │ │ │ ├── anyquery_connection_remove.md │ │ │ │ ├── anyquery_tool_dev.md │ │ │ │ ├── anyquery_tool_hashdir.md │ │ │ │ ├── anyquery_connection_add.md │ │ │ │ ├── anyquery_tool_generate-doc.md │ │ │ │ ├── anyquery_alias_delete.md │ │ │ │ ├── anyquery_connection_list.md │ │ │ │ ├── anyquery_registry_remove.md │ │ │ │ ├── anyquery_registry_add.md │ │ │ │ ├── anyquery_tool.md │ │ │ │ ├── anyquery_alias_add.md │ │ │ │ └── anyquery_alias_list.md │ │ │ └── database │ │ │ └── scylladb.md │ ├── env.d.ts │ └── functions │ │ └── slugify.ts ├── .markdownlint.jsonc └── .gitignore ├── plugins ├── notion │ ├── .gitignore │ ├── LICENSE │ ├── images │ │ ├── share.png │ │ ├── token.png │ │ ├── success.png │ │ ├── creator-profile.png │ │ └── form-integration.png │ ├── makefile │ └── database_delete.go ├── sharedObject │ ├── asg017 │ │ ├── .gitignore │ │ ├── sqlite-url │ │ │ └── manifest.toml │ │ ├── sqlite-vss │ │ │ └── manifest.toml │ │ └── sqlite-lines │ │ │ └── manifest.toml │ └── nalgeon │ │ └── sqlean │ │ ├── bun.lockb │ │ ├── package.json │ │ └── tsconfig.json ├── spotify │ ├── LICENSE │ ├── images │ │ ├── token.png │ │ ├── connect.png │ │ ├── registration.png │ │ └── spotify-agree.png │ ├── .gitignore │ ├── makefile │ └── .goreleaser.yaml ├── pocket │ ├── images │ │ ├── copyKey.png │ │ ├── fillForm.png │ │ ├── success.png │ │ ├── authorize.png │ │ └── registration.png │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── raindrop │ ├── images │ │ ├── newApp.png │ │ └── newTestToken.png │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml ├── typeform │ ├── images │ │ └── scopes.png │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── google_forms │ ├── images │ │ ├── image.png │ │ ├── token.png │ │ ├── create.png │ │ ├── result.png │ │ ├── enableAPI.png │ │ ├── form_oAuth.png │ │ ├── identifier.png │ │ ├── consentFilled.png │ │ ├── consentScreen.png │ │ ├── createCredentials.png │ │ └── form_integration.png │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── github │ ├── images │ │ └── token-tutorial.png │ ├── .gitignore │ ├── Makefile │ ├── .goreleaser.yaml │ └── main.go ├── google_sheets │ ├── images │ │ └── enableAPI.png │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── notes │ ├── scripts │ │ └── countNotes.js │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── reminders │ ├── script │ │ └── delete.applescript │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── brave │ ├── scripts │ │ ├── newTab.applescript │ │ ├── deleteTab.js │ │ ├── setURL.js │ │ └── listTabs.js │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── chrome │ ├── scripts │ │ ├── newTab.applescript │ │ ├── deleteTab.js │ │ ├── setURL.js │ │ └── listTabs.js │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── edge │ ├── scripts │ │ ├── newTab.applescript │ │ ├── deleteTab.js │ │ ├── setURL.js │ │ └── listTabs.js │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── store-manager │ ├── .gitignore │ ├── makefile │ └── go.mod ├── rss │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── safari │ ├── scripts │ │ ├── newTab.applescript │ │ ├── activateTab.applescript │ │ ├── setURL.js │ │ └── listTabs.js │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── asana │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── ip-api │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── todoist │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── calendar │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── file │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── google_tasks │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── carddav │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── salesforce_custom │ ├── main.go │ ├── .gitignore │ ├── Makefile │ ├── salesforce_custom.go │ └── .goreleaser.yaml ├── imap │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── random │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── coda │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml ├── git │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── pypi │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml ├── airtable │ ├── .gitignore │ ├── Makefile │ ├── .goreleaser.yaml │ └── main.go ├── click_up │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── discord │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── docker │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── google_contacts │ ├── main.go │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── homebrew │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml ├── hubspot │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── nylas │ ├── .gitignore │ └── .goreleaser.yaml ├── readwise │ ├── .gitignore │ ├── Makefile │ ├── .goreleaser.yaml │ └── main.go ├── shopify │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── system │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml ├── trello │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml ├── vercel │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── hacker-news │ ├── .gitignore │ ├── Makefile │ ├── main.go │ └── .goreleaser.yaml └── salesforce │ ├── .gitignore │ ├── Makefile │ └── .goreleaser.yaml ├── queries ├── community-repo.png ├── other │ └── hello-world.sql ├── github │ ├── my-followers-github.sql │ ├── my_most_starred_github_repository.sql │ ├── issues-assigned.sql │ ├── stargazers-github-repo.sql │ ├── pull-request-assigned.sql │ ├── github-stars-per-day.sql │ ├── biggest-starred-repo-per-user-github.sql │ ├── list_all_the_branches_of_a_github_repository.sql │ ├── most_starred_gist_of_a_github_user.sql │ ├── biggest-commit-author-github.sql │ ├── list_all_the_contributors_of_a_github_repository.sql │ ├── who_is_the_biggest_committer_on_a_github_repository.sql │ └── list_my_github_starred_repositories_for_a_particular_language.sql ├── notes │ ├── which_note_was_created_last.sql │ ├── which_note_was_created_first.sql │ ├── how_many_notes_are_contained_in_a_folder.sql │ └── list_notes_that_contain_a_particular_word.sql ├── system │ ├── how_many_cores_does_the_system_have.sql │ ├── how_much_memory_is_used_by_the_system.sql │ ├── list_the_mounted_filesystems_of_the_system.sql │ ├── what-s_the_current_cpu_usage_of_the_system.sql │ ├── how_much_swap_is_used_by_the_system.sql │ ├── how_many_processes_are_running_on_the_system.sql │ ├── what_is_the_remaining_disk_space_per_filesystem.sql │ ├── list_the_child_processes_of_a_process.sql │ ├── what-s_the_pid_of_a_process.sql │ ├── list_the_open_files_of_a_process.sql │ ├── what_are_the_most_memory_demanding_processes_on_the_system.sql │ ├── how_many_instances_of_a_process_are_running_on_the_system.sql │ ├── which_process_has_opened_a_particular_file.sql │ ├── what_are_the_most_cpu_demanding_processes_on_the_system.sql │ └── which_process_binds_to_a_particular_port.sql ├── edge │ ├── edge_what_is_the_url_of_the_active_tab.sql │ ├── edge_how_many_tabs_are_open_in_the_browser.sql │ ├── edge_what_is_the_title_of_the_active_tab.sql │ ├── edge_close_tabs_of_a_specific_domain.sql │ ├── edge_close_tabs_of_a_domain_different_than_the_specified_one.sql │ └── edge_close_tabs_that_contain_a_specific_keyword_in_the_title.sql ├── chrome │ ├── chrome_how_many_tabs_are_open_in_the_browser.sql │ ├── chrome_what_is_the_url_of_the_active_tab.sql │ ├── chrome_what_is_the_title_of_the_active_tab.sql │ ├── chrome_close_tabs_of_a_specific_domain.sql │ ├── chrome_close_tabs_of_a_domain_different_than_the_specified_one.sql │ └── chrome_close_tabs_that_contain_a_specific_keyword_in_the_title.sql ├── imap │ └── unread-emails.sql ├── brave │ ├── brave_how_many_tabs_are_open_in_the_browser.sql │ ├── brave_what_is_the_url_of_the_active_tab.sql │ ├── brave_what_is_the_title_of_the_active_tab.sql │ ├── brave_close_tabs_of_a_specific_domain.sql │ ├── brave_close_tabs_that_contain_a_specific_keyword_in_the_title.sql │ └── brave_close_tabs_of_a_domain_different_than_the_specified_one.sql ├── docker │ ├── how_many_containers_are_running.sql │ ├── what_is_the_newest_container.sql │ ├── what_is_the_oldest_container.sql │ ├── list_the_top_n_biggest_images.sql │ └── list_all_images_that_don-t_have_a_container.sql ├── discord │ ├── list_all_the_users_in_a_server.sql │ ├── list_all_the_roles_in_a_server.sql │ ├── list_all_invites_in_a_server.sql │ ├── how_many_people_were_banned_in_a_server.sql │ ├── list_all_the_channels_in_a_server.sql │ ├── how_many_messages_were_sent_in_a_channel.sql │ ├── who_is_the_first_user_to_join_a_server.sql │ ├── who_is_the_last_user_to_join_a_server.sql │ ├── what-s_the_last_message_sent_in_a_channel.sql │ ├── what-s_the_first_message_sent_in_a_channel.sql │ ├── which_invite_has_been_used_the_most_in_a_server.sql │ ├── who_sent_the_most_messages_in_a_channel.sql │ ├── how_many_messages_contain_a_particular_word.sql │ └── how_many_messages_were_sent_by_a_particular_user_in_a_channel.sql ├── click_up │ ├── list_all_tasks_in_a_specific_list.sql │ ├── list_all_tasks_that_are_due_today.sql │ ├── list_all_tasks_that_are_overdue.sql │ ├── how_many_tasks_exist_per_status_in_a_specific_list.sql │ ├── which_tasks_have_a_specific_tag.sql │ ├── list_all_subtasks_of_a_specific_task.sql │ ├── list_all_tasks_assigned_to_a_specific_user_by_userid.sql │ ├── list_all_lists_in_a_specific_space.sql │ └── list_all_documents_in_a_specific_folder.sql ├── reminders │ ├── set_to_complete_all_reminders_in_a_list.sql │ └── set_to_complete_all_reminders_that_contain_a_particular_word.sql ├── file │ ├── find_the_files_that_match_a_specific_pattern.sql │ ├── how_often_are_files_modified_in_a_directory_per_month_in_gb.sql │ ├── which_files_extension_are_the_most_common_in_a_directory.sql │ └── find_the_n_biggest_files_in_a_directory.sql └── git │ ├── how_many_commits_were_made_in_the_last_week.sql │ ├── which_author_has_the_most_lines_of_code_added_in_the_repository.sql │ └── which_files_are_the_most_frequently_modified_in_the_repository.sql ├── orbstack_go_win.sh ├── test └── README.md ├── controller └── config │ ├── sqlc.yml │ └── model │ └── db.go ├── runTest.sh ├── _examples ├── datasette │ └── metadata.json └── drizzle │ ├── drizzle.config.js │ ├── package.json │ └── print.ts ├── makefile ├── .vscode └── settings.json ├── namespace ├── helper.go └── collations.go └── SECURITY.md /.ignore: -------------------------------------------------------------------------------- 1 | other/sqlparser -------------------------------------------------------------------------------- /other/integrations/.gitignore: -------------------------------------------------------------------------------- 1 | nango/ -------------------------------------------------------------------------------- /website/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/base" 3 | } 4 | -------------------------------------------------------------------------------- /plugins/notion/.gitignore: -------------------------------------------------------------------------------- 1 | devManifest.json 2 | *.out 3 | *.log 4 | 5 | dist/ 6 | -------------------------------------------------------------------------------- /plugins/notion/LICENSE: -------------------------------------------------------------------------------- 1 | # LICENSE 2 | 3 | Copyright © 2024 Julien CAGNIART 4 | 5 | -------------------------------------------------------------------------------- /plugins/sharedObject/asg017/.gitignore: -------------------------------------------------------------------------------- 1 | README.md 2 | *.dylib 3 | *.so 4 | *.dll 5 | -------------------------------------------------------------------------------- /plugins/spotify/LICENSE: -------------------------------------------------------------------------------- 1 | # LICENSE 2 | 3 | Copyright © 2024 Julien CAGNIART 4 | 5 | -------------------------------------------------------------------------------- /website/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.defaultFormatter": "astro-build.astro-vscode" 3 | } 4 | -------------------------------------------------------------------------------- /queries/community-repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/queries/community-repo.png -------------------------------------------------------------------------------- /website/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/favicon.png -------------------------------------------------------------------------------- /website/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | 4 | Sitemap: https://anyquery.dev/sitemap-index.xml -------------------------------------------------------------------------------- /website/public/icons/5ire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/5ire.png -------------------------------------------------------------------------------- /website/public/icons/pypi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/pypi.png -------------------------------------------------------------------------------- /plugins/notion/images/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/notion/images/share.png -------------------------------------------------------------------------------- /plugins/notion/images/token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/notion/images/token.png -------------------------------------------------------------------------------- /plugins/spotify/images/token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/spotify/images/token.png -------------------------------------------------------------------------------- /website/public/icons/brave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/brave.png -------------------------------------------------------------------------------- /website/public/icons/duckdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/duckdb.png -------------------------------------------------------------------------------- /website/public/icons/hubspot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/hubspot.png -------------------------------------------------------------------------------- /website/public/icons/pocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/pocket.png -------------------------------------------------------------------------------- /website/public/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/logo.png -------------------------------------------------------------------------------- /plugins/notion/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/notion/images/success.png -------------------------------------------------------------------------------- /plugins/pocket/images/copyKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/pocket/images/copyKey.png -------------------------------------------------------------------------------- /plugins/pocket/images/fillForm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/pocket/images/fillForm.png -------------------------------------------------------------------------------- /plugins/pocket/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/pocket/images/success.png -------------------------------------------------------------------------------- /plugins/raindrop/images/newApp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/raindrop/images/newApp.png -------------------------------------------------------------------------------- /plugins/spotify/images/connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/spotify/images/connect.png -------------------------------------------------------------------------------- /plugins/typeform/images/scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/typeform/images/scopes.png -------------------------------------------------------------------------------- /website/public/icons/airtable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/airtable.png -------------------------------------------------------------------------------- /website/public/icons/readwise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/readwise.jpg -------------------------------------------------------------------------------- /website/public/icons/tablePlus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/tablePlus.png -------------------------------------------------------------------------------- /plugins/google_forms/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/image.png -------------------------------------------------------------------------------- /plugins/google_forms/images/token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/token.png -------------------------------------------------------------------------------- /plugins/pocket/images/authorize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/pocket/images/authorize.png -------------------------------------------------------------------------------- /website/public/images/llm-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/llm-header.png -------------------------------------------------------------------------------- /website/public/images/logo-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/logo-shadow.png -------------------------------------------------------------------------------- /plugins/google_forms/images/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/create.png -------------------------------------------------------------------------------- /plugins/google_forms/images/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/result.png -------------------------------------------------------------------------------- /plugins/pocket/images/registration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/pocket/images/registration.png -------------------------------------------------------------------------------- /plugins/spotify/images/registration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/spotify/images/registration.png -------------------------------------------------------------------------------- /website/public/images/docs/GgCl8quP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/GgCl8quP.png -------------------------------------------------------------------------------- /website/public/images/docs/Id89086t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Id89086t.png -------------------------------------------------------------------------------- /website/public/images/docs/J028Akph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/J028Akph.png -------------------------------------------------------------------------------- /website/public/images/docs/O08kLX6m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/O08kLX6m.png -------------------------------------------------------------------------------- /website/public/images/docs/P6MjoIjz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/P6MjoIjz.png -------------------------------------------------------------------------------- /website/public/images/docs/Ws1UhIKV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Ws1UhIKV.png -------------------------------------------------------------------------------- /website/public/images/docs/Z2R9qeV3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Z2R9qeV3.png -------------------------------------------------------------------------------- /website/public/images/docs/cVtNtBbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/cVtNtBbd.png -------------------------------------------------------------------------------- /website/public/images/docs/ePlXiEg3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/ePlXiEg3.png -------------------------------------------------------------------------------- /website/public/images/docs/mfjW79d8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/mfjW79d8.png -------------------------------------------------------------------------------- /website/public/images/docs/oE0a8dtb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/oE0a8dtb.png -------------------------------------------------------------------------------- /website/public/images/docs/phTdzIiJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/phTdzIiJ.png -------------------------------------------------------------------------------- /website/public/images/docs/rLpTGAGK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/rLpTGAGK.png -------------------------------------------------------------------------------- /website/public/images/docs/tR5IawXS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/tR5IawXS.png -------------------------------------------------------------------------------- /website/public/images/docs/vg6dOA3V.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/vg6dOA3V.png -------------------------------------------------------------------------------- /plugins/github/images/token-tutorial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/github/images/token-tutorial.png -------------------------------------------------------------------------------- /plugins/google_forms/images/enableAPI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/enableAPI.png -------------------------------------------------------------------------------- /plugins/google_forms/images/form_oAuth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/form_oAuth.png -------------------------------------------------------------------------------- /plugins/google_forms/images/identifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/identifier.png -------------------------------------------------------------------------------- /plugins/google_sheets/images/enableAPI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_sheets/images/enableAPI.png -------------------------------------------------------------------------------- /plugins/notion/images/creator-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/notion/images/creator-profile.png -------------------------------------------------------------------------------- /plugins/notion/images/form-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/notion/images/form-integration.png -------------------------------------------------------------------------------- /plugins/raindrop/images/newTestToken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/raindrop/images/newTestToken.png -------------------------------------------------------------------------------- /plugins/spotify/images/spotify-agree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/spotify/images/spotify-agree.png -------------------------------------------------------------------------------- /website/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /website/public/icons/apple-reminders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/apple-reminders.png -------------------------------------------------------------------------------- /website/public/icons/mysql-workbench.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/icons/mysql-workbench.png -------------------------------------------------------------------------------- /website/public/images/release-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/release-header.png -------------------------------------------------------------------------------- /website/src/images/Integrations_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/src/images/Integrations_logo.png -------------------------------------------------------------------------------- /website/public/images/docs/Tableau_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Tableau_Logo.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/5ire-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/5ire-add.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/5ire-path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/5ire-path.png -------------------------------------------------------------------------------- /website/public/images/integrations_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/integrations_logo.png -------------------------------------------------------------------------------- /plugins/google_forms/images/consentFilled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/consentFilled.png -------------------------------------------------------------------------------- /plugins/google_forms/images/consentScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/consentScreen.png -------------------------------------------------------------------------------- /plugins/notes/scripts/countNotes.js: -------------------------------------------------------------------------------- 1 | const notes = Application("Notes"); 2 | const notesArr = notes.notes(); 3 | console.log(notesArr.length); 4 | -------------------------------------------------------------------------------- /plugins/reminders/script/delete.applescript: -------------------------------------------------------------------------------- 1 | set idR to "{{.ID}}" 2 | 3 | tell application "Reminders" 4 | delete reminder id idR 5 | end tell -------------------------------------------------------------------------------- /plugins/sharedObject/nalgeon/sqlean/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/sharedObject/nalgeon/sqlean/bun.lockb -------------------------------------------------------------------------------- /website/public/fonts/inter-v13-latin-500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/fonts/inter-v13-latin-500.woff2 -------------------------------------------------------------------------------- /website/public/fonts/inter-v13-latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/fonts/inter-v13-latin-600.woff2 -------------------------------------------------------------------------------- /website/public/fonts/inter-v13-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/fonts/inter-v13-latin-700.woff2 -------------------------------------------------------------------------------- /website/public/images/anyquery_examples.sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/anyquery_examples.sql.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/5ire-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/5ire-final.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/5ire-tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/5ire-tools.png -------------------------------------------------------------------------------- /website/public/images/mysql-compatibility.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/mysql-compatibility.png -------------------------------------------------------------------------------- /plugins/google_forms/images/createCredentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/createCredentials.png -------------------------------------------------------------------------------- /plugins/google_forms/images/form_integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/plugins/google_forms/images/form_integration.png -------------------------------------------------------------------------------- /website/.markdownlint.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | // Disable no-inline-html rule 3 | "MD033": false, 4 | // Disable max line length rule 5 | "MD013": false 6 | } 7 | -------------------------------------------------------------------------------- /website/public/images/bg-community-repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/bg-community-repository.png -------------------------------------------------------------------------------- /website/public/images/docs/Hyper_labH4rXg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Hyper_labH4rXg@2x.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/chatgpt-ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/chatgpt-ready.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/claude-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/claude-navbar.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/claude-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/claude-result.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/librechat-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/librechat-auth.png -------------------------------------------------------------------------------- /website/public/images/how-to-guides-og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/how-to-guides-og-image.png -------------------------------------------------------------------------------- /website/src/content/chats/5ire.yaml: -------------------------------------------------------------------------------- 1 | name: 5ire 2 | url: /connection-guide/llm/5ire/ 3 | icon: /icons/5ire.png 4 | description: An open-source MCP client. -------------------------------------------------------------------------------- /website/public/fonts/inter-v13-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/fonts/inter-v13-latin-regular.woff2 -------------------------------------------------------------------------------- /website/public/images/docs/llm/claude-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/claude-settings.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/typingmind-enable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/typingmind-enable.png -------------------------------------------------------------------------------- /website/src/content/databases/TiDB.yaml: -------------------------------------------------------------------------------- 1 | name: TiDB 2 | url: /docs/database/tidb 3 | icon: /icons/tidb.svg 4 | description: Query data from a TiDB database. -------------------------------------------------------------------------------- /orbstack_go_win.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env sh 2 | 3 | # Pass all the arguments of this script to the orb go executable 4 | exec orb run -m ubuntu -u julien go "$@" 5 | -------------------------------------------------------------------------------- /plugins/brave/scripts/newTab.applescript: -------------------------------------------------------------------------------- 1 | tell application "Brave" 2 | make new tab with properties {URL:"%s"} at end of tabs of first window 3 | 4 | end tell -------------------------------------------------------------------------------- /website/public/images/docs/Anyquery-diagram-mysql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Anyquery-diagram-mysql.png -------------------------------------------------------------------------------- /website/public/images/docs/Anyquery-diagram-shell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Anyquery-diagram-shell.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/typingmind-install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/typingmind-install.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/typingmind-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/typingmind-settings.png -------------------------------------------------------------------------------- /website/src/content/databases/mysql.yaml: -------------------------------------------------------------------------------- 1 | name: MySQL 2 | url: /docs/database/mysql 3 | icon: /icons/mysql.svg 4 | description: Query data from a MySQL database. -------------------------------------------------------------------------------- /plugins/chrome/scripts/newTab.applescript: -------------------------------------------------------------------------------- 1 | tell application "Google Chrome" 2 | make new tab with properties {URL:"%s"} at end of tabs of first window 3 | 4 | end tell -------------------------------------------------------------------------------- /plugins/edge/scripts/newTab.applescript: -------------------------------------------------------------------------------- 1 | tell application "Microsoft Edge" 2 | make new tab with properties {URL:"%s"} at end of tabs of first window 3 | 4 | end tell -------------------------------------------------------------------------------- /website/public/images/docs/Anyquery-diagram-namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/Anyquery-diagram-namespace.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/librechat-http-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/librechat-http-result.png -------------------------------------------------------------------------------- /website/src/content/databases/duckdb.yaml: -------------------------------------------------------------------------------- 1 | name: DuckDB 2 | url: /docs/database/duckdb 3 | icon: /icons/duckdb.png 4 | description: Query data from a DuckDB database. -------------------------------------------------------------------------------- /website/src/content/databases/sqlite.yaml: -------------------------------------------------------------------------------- 1 | name: SQLite 2 | url: /docs/database/sqlite 3 | icon: /icons/sqlite.svg 4 | description: Query data from a SQLite database. -------------------------------------------------------------------------------- /website/src/content/databases/yugabyte.yaml: -------------------------------------------------------------------------------- 1 | name: YugabyteDB 2 | url: /docs/database/yugabyte 3 | icon: /icons/yugabyte.svg 4 | description: Query data from YugabyteDB. -------------------------------------------------------------------------------- /other/sqlparser/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script compiles the Yacc to sql.go 4 | set -e 5 | cd "$(dirname "$0")" 6 | go run goyacc/goyacc.go -fo sql.go sql.y -------------------------------------------------------------------------------- /website/public/images/docs/llm/librechat-agent-creation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/librechat-agent-creation.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/librechat-tool-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/librechat-tool-selection.png -------------------------------------------------------------------------------- /website/src/content/databases/mariaDB.yaml: -------------------------------------------------------------------------------- 1 | name: MariaDB 2 | url: /docs/database/mariadb 3 | icon: /icons/mariadb.svg 4 | description: Query data from a MariaDB database. -------------------------------------------------------------------------------- /website/src/content/databases/scyllaDB.yaml: -------------------------------------------------------------------------------- 1 | name: ScyllaDB 2 | url: /docs/database/scylladb 3 | icon: /icons/scylladb.svg 4 | description: Query data from ScyllaDB tables. -------------------------------------------------------------------------------- /website/public/images/docs/llm/librechat-agent-right-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/librechat-agent-right-panel.png -------------------------------------------------------------------------------- /website/public/images/docs/llm/librechat-agent-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/llm/librechat-agent-selection.png -------------------------------------------------------------------------------- /website/src/content/chats/librechat.yaml: -------------------------------------------------------------------------------- 1 | name: LibreChat 2 | url: /connection-guide/llm/librechat/ 3 | icon: /icons/librechat.svg 4 | description: An open-source chat interface. -------------------------------------------------------------------------------- /website/src/content/databases/cassandra.yaml: -------------------------------------------------------------------------------- 1 | name: Cassandra 2 | url: /docs/database/cassandra 3 | icon: /icons/cassandra.svg 4 | description: Query data from Cassandra tables. -------------------------------------------------------------------------------- /plugins/store-manager/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | -------------------------------------------------------------------------------- /website/src/content/databases/clickhouse.yaml: -------------------------------------------------------------------------------- 1 | name: ClickHouse 2 | url: /docs/database/clickhouse 3 | icon: /icons/clickhouse.svg 4 | description: Query data from ClickHouse databases. -------------------------------------------------------------------------------- /test/README.md: -------------------------------------------------------------------------------- 1 | # Test plugins 2 | 3 | This directory contains a set of plugins that are used to test the functionality of `anyquery`. Feel free to create one to enhance the project. 4 | -------------------------------------------------------------------------------- /website/src/content/databases/postgresql.yaml: -------------------------------------------------------------------------------- 1 | name: PostgreSQL 2 | url: /docs/database/postgresql 3 | icon: /icons/postgresql.svg 4 | description: Query data from a PostgreSQL database. -------------------------------------------------------------------------------- /website/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | interface Window { 5 | Alpine: import("alpinejs").Alpine; 6 | } 7 | -------------------------------------------------------------------------------- /website/src/content/chats/typingmind.yaml: -------------------------------------------------------------------------------- 1 | name: TypingMind 2 | url: /connection-guide/llm/typingmind/ 3 | icon: https://www.typingmind.com/logo.png 4 | description: A web-based chat interface. -------------------------------------------------------------------------------- /website/src/content/databases/cockroachdb.yaml: -------------------------------------------------------------------------------- 1 | name: CockroachDB 2 | url: /docs/database/cockroachdb 3 | icon: /icons/cockroachdb.svg 4 | description: Query data from a CoackroachDB database. -------------------------------------------------------------------------------- /website/src/content/databases/singlestore.yaml: -------------------------------------------------------------------------------- 1 | name: SingleStore 2 | url: /docs/database/singlestore 3 | icon: /icons/singlestore.svg 4 | description: Query data from a SingleStore database. -------------------------------------------------------------------------------- /other/tunnel/server/.gitignore: -------------------------------------------------------------------------------- 1 | # Go template downloaded with gut 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | *.test 8 | *.out 9 | go.work 10 | .gut 11 | 12 | Caddyfile 13 | -------------------------------------------------------------------------------- /plugins/store-manager/makefile: -------------------------------------------------------------------------------- 1 | Files := main.go structs.go 2 | 3 | all: $(Files) 4 | go build -o store-manager.out $(Files) 5 | 6 | clean: 7 | rm -f store-manager.out 8 | 9 | .PHONY: all clean -------------------------------------------------------------------------------- /website/public/images/docs/httpsanyquery.devintegrations_23KmyyI3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/julien040/anyquery/HEAD/website/public/images/docs/httpsanyquery.devintegrations_23KmyyI3@2x.png -------------------------------------------------------------------------------- /plugins/rss/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(rssCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/safari/scripts/newTab.applescript: -------------------------------------------------------------------------------- 1 | tell application "Safari" 2 | if not (exists document 1) then reopen 3 | make new tab with properties {URL:"%s"} at end of tabs of window %d 4 | 5 | end tell -------------------------------------------------------------------------------- /website/src/content/databases/aws-aurora-mysql.yaml: -------------------------------------------------------------------------------- 1 | name: AWS Aurora (MySQL) 2 | url: /docs/database/aws-aurora-mysql 3 | icon: /icons/aws-aurora.svg 4 | description: Connect using the MySQL connector -------------------------------------------------------------------------------- /plugins/asana/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tasksCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/brave/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tabsCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/ip-api/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(ip_apiCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/notes/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(notesCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/pocket/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(itemsCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/safari/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tabsCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/todoist/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tasksCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /queries/other/hello-world.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Hello World" 3 | description = "Always return hello world for testing purposes" 4 | 5 | author = "julien040" 6 | */ 7 | SELECT 8 | 'hello world' as message; -------------------------------------------------------------------------------- /controller/config/sqlc.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | sql: 3 | - engine: "sqlite" 4 | queries: "query.sql" 5 | schema: "schema.sql" 6 | gen: 7 | go: 8 | package: "model" 9 | out: "model" -------------------------------------------------------------------------------- /plugins/calendar/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(icalendarCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/reminders/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(reminderCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/typeform/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(responsesCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/google_forms/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(responsesCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/google_sheets/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tableCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /website/src/content/chats/chatgpt.yaml: -------------------------------------------------------------------------------- 1 | name: ChatGPT 2 | url: /connection-guide/llm/chatgpt/ 3 | icon: https://upload.wikimedia.org/wikipedia/commons/0/04/ChatGPT_logo.svg 4 | description: The most famous AI chatbot. -------------------------------------------------------------------------------- /plugins/file/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(listCreator, searchCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /website/src/content/databases/aws-aurora-postgresql.yaml: -------------------------------------------------------------------------------- 1 | name: AWS Aurora (PostgreSQL) 2 | url: /docs/database/aws-aurora-postgresql 3 | icon: /icons/aws-aurora.svg 4 | description: Connect using the PostgreSQL connector -------------------------------------------------------------------------------- /plugins/google_tasks/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(listsCreator, tasksCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /website/src/content/recipes/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Recipes 3 | description: Learn how to use Anyquery with these recipes 4 | --- 5 | 6 | Feel free to click on any recipes in the sidebar to learn more about how to use Anyquery. -------------------------------------------------------------------------------- /plugins/carddav/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(contactsCreator, addressBooksCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/salesforce_custom/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(salesforce_customCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /website/src/content/chats/claude-desktop.yaml: -------------------------------------------------------------------------------- 1 | name: Claude Desktop 2 | url: /connection-guide/llm/claude/ 3 | icon: https://raw.githubusercontent.com/gilbarbara/logos/main/logos/claude-icon.svg 4 | description: The LLM from Anthropic. -------------------------------------------------------------------------------- /website/src/functions/slugify.ts: -------------------------------------------------------------------------------- 1 | function slugify(url: string): string { 2 | return url 3 | .toLowerCase() 4 | .replace(/ /g, "_") 5 | .replace(/[^a-z0-9-_]/g, ""); 6 | } 7 | 8 | export { slugify }; 9 | -------------------------------------------------------------------------------- /plugins/edge/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tabsCreator, historyCreator, downloadsCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/chrome/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(tabsCreator, historyCreator, downloadsCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/imap/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(foldersCreator, itemsCreator, itemsBodyCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/random/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(peopleCreator, passwordCreator, internetCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/coda/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/edge/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/file/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/git/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/imap/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/pypi/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/rss/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/spotify/.gitignore: -------------------------------------------------------------------------------- 1 | # Go template downloaded with gut 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | *.test 8 | *.out 9 | go.work 10 | .gut 11 | 12 | # Dev files 13 | *.log 14 | devManifest.* 15 | .init 16 | 17 | dist/ 18 | -------------------------------------------------------------------------------- /website/public/icons/user.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /website/public/images/windows-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/airtable/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/asana/.gitignore: -------------------------------------------------------------------------------- 1 | # Go template downloaded with gut 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | *.test 8 | *.out 9 | go.work 10 | .gut 11 | 12 | # Dev files 13 | *.log 14 | .init 15 | 16 | dist/ 17 | 18 | devManifest.json 19 | -------------------------------------------------------------------------------- /plugins/brave/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/carddav/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/chrome/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/click_up/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/discord/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/docker/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/github/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/google_contacts/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(google_contactsCreator, google_contactsFlatCreator) 9 | plugin.Serve() 10 | } 11 | -------------------------------------------------------------------------------- /plugins/homebrew/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/hubspot/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/ip-api/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/notes/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/nylas/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/pocket/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/raindrop/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/random/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/readwise/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/reminders/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/safari/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/shopify/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/system/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/todoist/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/trello/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/typeform/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/vercel/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/calendar/.gitignore: -------------------------------------------------------------------------------- 1 | # Go template downloaded with gut 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | *.test 8 | *.out 9 | go.work 10 | .gut 11 | 12 | # Dev files 13 | *.log 14 | devManifest.* 15 | .init 16 | 17 | dist/ 18 | *.ics 19 | -------------------------------------------------------------------------------- /plugins/google_forms/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/google_sheets/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/google_tasks/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/hacker-news/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/safari/scripts/activateTab.applescript: -------------------------------------------------------------------------------- 1 | tell application "Safari" 2 | if not (exists current tab of front window) then make new document -- if no window 3 | tell window %d 4 | set current tab to tab %d 5 | end tell 6 | end tell -------------------------------------------------------------------------------- /plugins/salesforce/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/coda/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o coda.out $(files) 6 | 7 | prod: $(files) 8 | go build -o coda.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f coda.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/git/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o git.out $(files) 6 | 7 | prod: $(files) 8 | go build -o git.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/google_contacts/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/rss/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o rss.out $(files) 6 | 7 | prod: $(files) 8 | go build -o rss.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/salesforce_custom/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Go template downloaded with gut 3 | *.exe 4 | *.exe~ 5 | *.dll 6 | *.so 7 | *.dylib 8 | *.test 9 | *.out 10 | go.work 11 | .gut 12 | 13 | # Dev files 14 | *.log 15 | devManifest.* 16 | .init 17 | 18 | dist/ 19 | -------------------------------------------------------------------------------- /plugins/spotify/makefile: -------------------------------------------------------------------------------- 1 | files := $(wildcard *.go) 2 | 3 | all: $(files) 4 | go build -o spotify.out $(files) 5 | 6 | prod: $(files) 7 | go build -o spotify.out -ldflags "-s -w" $(files) 8 | 9 | clean: 10 | rm -f notion.out 11 | 12 | .PHONY: all clean -------------------------------------------------------------------------------- /plugins/brave/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o brave.out $(files) 6 | 7 | prod: $(files) 8 | go build -o brave.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f brave.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/edge/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o edge.out $(files) 6 | 7 | prod: $(files) 8 | go build -o edge.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/file/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o file.out $(files) 6 | 7 | prod: $(files) 8 | go build -o file.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/imap/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o imap.out $(files) 6 | 7 | prod: $(files) 8 | go build -o imap.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/notes/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o notes.out $(files) 6 | 7 | prod: $(files) 8 | go build -o notes.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/pypi/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o pypi.out $(files) 6 | 7 | prod: $(files) 8 | go build -o pypi.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/chrome/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o chrome.out $(files) 6 | 7 | prod: $(files) 8 | go build -o chrome.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/docker/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o docker.out $(files) 6 | 7 | prod: $(files) 8 | go build -o docker.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f docker.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/github/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o github.out $(files) 6 | 7 | prod: $(files) 8 | go build -o github.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/ip-api/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o ip_api.out $(files) 6 | 7 | prod: $(files) 8 | go build -o ip_api.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/pocket/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o pocket.out $(files) 6 | 7 | prod: $(files) 8 | go build -o pocket.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/random/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o random.out $(files) 6 | 7 | prod: $(files) 8 | go build -o random.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/safari/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o safari.out $(files) 6 | 7 | prod: $(files) 8 | go build -o safari.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/system/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o system.out $(files) 6 | 7 | prod: $(files) 8 | go build -o system.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f system.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/trello/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o trello.out $(files) 6 | 7 | prod: $(files) 8 | go build -o trello.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f trello.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/vercel/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o vercel.out $(files) 6 | 7 | prod: $(files) 8 | go build -o vercel.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f vercel.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/airtable/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o airtable.out $(files) 6 | 7 | prod: $(files) 8 | go build -o airtable.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/calendar/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o icalendar.out $(files) 6 | 7 | prod: $(files) 8 | go build -o icalendar.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/click_up/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o click_up.out $(files) 6 | 7 | prod: $(files) 8 | go build -o click_up.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f click_up.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/discord/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o discord.out $(files) 6 | 7 | prod: $(files) 8 | go build -o discord.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f discord.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/homebrew/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o homebrew.out $(files) 6 | 7 | prod: $(files) 8 | go build -o homebrew.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/hubspot/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o hubspot.out $(files) 6 | 7 | prod: $(files) 8 | go build -o hubspot.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f hubspot.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/raindrop/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o raindrop.out $(files) 6 | 7 | prod: $(files) 8 | go build -o raindrop.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/reminders/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o reminder.out $(files) 6 | 7 | prod: $(files) 8 | go build -o reminder.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/shopify/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o shopify.out $(files) 6 | 7 | prod: $(files) 8 | go build -o shopify.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f shopify.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/todoist/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o todoist.out $(files) 6 | 7 | prod: $(files) 8 | go build -o todoist.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f todoist.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/typeform/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o typeform.out $(files) 6 | 7 | prod: $(files) 8 | go build -o typeform.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f typeform.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /runTest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Set the current working directory to the directory of the script 4 | cd "$(dirname "$0")" || exit 5 | 6 | go test -tags "vtable" -v -coverprofile=coverage.out ./module ./namespace ./rpc ./controller/config/registry ./controller 7 | 8 | go clean 9 | -------------------------------------------------------------------------------- /plugins/hacker-news/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o hacker_news.out $(files) 6 | 7 | prod: $(files) 8 | go build -o hacker_news.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f notion.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/salesforce/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o salesforce.out $(files) 6 | 7 | prod: $(files) 8 | go build -o salesforce.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f salesforce.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /website/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /plugins/google_forms/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o google_forms.out $(files) 6 | 7 | prod: $(files) 8 | go build -o google_forms.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f google_forms.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/google_sheets/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o google_sheets.out $(files) 6 | 7 | prod: $(files) 8 | go build -o google_sheets.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f google_sheets.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/google_tasks/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o google_tasks.out $(files) 6 | 7 | prod: $(files) 8 | go build -o google_tasks.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f google_tasks.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/pypi/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/go-resty/resty/v2" 5 | "github.com/julien040/anyquery/rpc" 6 | ) 7 | 8 | var client = resty.New() 9 | 10 | func main() { 11 | plugin := rpc.NewPlugin(pypiVersionCreator, packageCreator) 12 | plugin.Serve() 13 | } 14 | -------------------------------------------------------------------------------- /plugins/brave/scripts/deleteTab.js: -------------------------------------------------------------------------------- 1 | const chromium = Application("Brave"); 2 | 3 | const windows = chromium.windows(); 4 | 5 | for (const window of windows) { 6 | const tabs = window.tabs(); 7 | for (const tab of tabs) { 8 | if (tab.id() === "%s") { 9 | tab.close(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/brave/scripts/setURL.js: -------------------------------------------------------------------------------- 1 | const chromium = Application("Brave"); 2 | 3 | const windows = chromium.windows(); 4 | 5 | for (const window of windows) { 6 | const tabs = window.tabs(); 7 | for (const tab of tabs) { 8 | if (tab.id() === "%s") { 9 | tab.url = "%s"; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/google_contacts/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o google_contacts.out $(files) 6 | 7 | prod: $(files) 8 | go build -o google_contacts.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f google_contacts.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /plugins/safari/scripts/setURL.js: -------------------------------------------------------------------------------- 1 | const safari = Application("Safari"); 2 | 3 | const windows = safari.windows(); 4 | 5 | for (const window of windows) { 6 | if (window.index() === %d) { 7 | const tabs = window.tabs.whose({ index: %d }); 8 | tabs[0].url = "%s"; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /_examples/datasette/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "My datasette - anyquery integration", 3 | "description": "This is a datasette instance connected to anyquery", 4 | 5 | "extra_css_urls": [ 6 | "https://cdn.jsdelivr.net/gh/julien040/charcoal-datasette-theme@1.0.0/theme.min.css" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /_examples/drizzle/drizzle.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "drizzle-kit"; 2 | export default defineConfig({ 3 | schema: "./schema.ts", 4 | out: "./drizzle", 5 | dialect: "mysql", 6 | dbCredentials: { 7 | url: "mysql://root:password@localhost:8070/main", 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /plugins/homebrew/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/go-resty/resty/v2" 5 | "github.com/julien040/anyquery/rpc" 6 | ) 7 | 8 | var client = resty.New() 9 | 10 | func main() { 11 | plugin := rpc.NewPlugin(homebrewFormulaCreator, homebrewCasksCreator) 12 | plugin.Serve() 13 | } 14 | -------------------------------------------------------------------------------- /plugins/chrome/scripts/deleteTab.js: -------------------------------------------------------------------------------- 1 | const chromium = Application("Google Chrome"); 2 | 3 | const windows = chromium.windows(); 4 | 5 | for (const window of windows) { 6 | const tabs = window.tabs(); 7 | for (const tab of tabs) { 8 | if (tab.id() === "%s") { 9 | tab.close(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/chrome/scripts/setURL.js: -------------------------------------------------------------------------------- 1 | const chromium = Application("Google Chrome"); 2 | 3 | const windows = chromium.windows(); 4 | 5 | for (const window of windows) { 6 | const tabs = window.tabs(); 7 | for (const tab of tabs) { 8 | if (tab.id() === "%s") { 9 | tab.url = "%s"; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/edge/scripts/deleteTab.js: -------------------------------------------------------------------------------- 1 | const chromium = Application("Microsoft Edge"); 2 | 3 | const windows = chromium.windows(); 4 | 5 | for (const window of windows) { 6 | const tabs = window.tabs(); 7 | for (const tab of tabs) { 8 | if (tab.id() === "%s") { 9 | tab.close(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/edge/scripts/setURL.js: -------------------------------------------------------------------------------- 1 | const chromium = Application("Microsoft Edge"); 2 | 3 | const windows = chromium.windows(); 4 | 5 | for (const window of windows) { 6 | const tabs = window.tabs(); 7 | for (const tab of tabs) { 8 | if (tab.id() === "%s") { 9 | tab.url = "%s"; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/salesforce_custom/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o salesforce_custom.out $(files) 6 | 7 | prod: $(files) 8 | go build -o salesforce_custom.out -ldflags "-s -w" $(files) 9 | 10 | clean: 11 | rm -f salesforce_custom.out 12 | 13 | .PHONY: all clean 14 | -------------------------------------------------------------------------------- /queries/github/my-followers-github.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Who follows me on GitHub?" 3 | description = "Get the list of users who follow you on GitHub" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "followers"] 10 | 11 | */ 12 | SELECT 13 | * 14 | FROM 15 | github_my_followers; -------------------------------------------------------------------------------- /website/public/icons/clickhouse.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/sharedObject/nalgeon/sqlean/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sqlean", 3 | "module": "index.ts", 4 | "type": "module", 5 | "devDependencies": { 6 | "@types/bun": "^1.1.6" 7 | }, 8 | "peerDependencies": { 9 | "typescript": "^5.0.0" 10 | }, 11 | "dependencies": { 12 | "@iarna/toml": "^2.2.5" 13 | } 14 | } -------------------------------------------------------------------------------- /other/tunnel/server/makefile: -------------------------------------------------------------------------------- 1 | FILES=$(*.go) 2 | 3 | build: $(FILES) 4 | go build -o server.out $(FILES) 5 | 6 | build-linux: $(FILES) 7 | GOOS=linux GOARCH=amd64 go build -o server.linux.out $(FILES) 8 | 9 | run: build 10 | ./server.out 11 | 12 | clean: 13 | rm -f server.out server.linux.out 14 | 15 | .PHONY: build build-linux run clean -------------------------------------------------------------------------------- /plugins/asana/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o asana.out $(files) 6 | 7 | prod: $(files) 8 | go build -o asana.out -ldflags "-s -w" $(files) 9 | 10 | release: prod 11 | goreleaser build -f .goreleaser.yaml --clean --snapshot 12 | 13 | clean: 14 | rm -f asana.out 15 | 16 | .PHONY: all clean 17 | -------------------------------------------------------------------------------- /other/websocket_tunnel/server/makefile: -------------------------------------------------------------------------------- 1 | FILES=$(*.go) 2 | 3 | build: $(FILES) 4 | go build -o server.out $(FILES) 5 | 6 | build-linux: $(FILES) 7 | GOOS=linux GOARCH=amd64 go build -o server.linux.out $(FILES) 8 | 9 | run: build 10 | ./server.out 11 | 12 | clean: 13 | rm -f server.out server.linux.out 14 | 15 | .PHONY: build build-linux run clean -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | FILES:= main.go 2 | 3 | ifdef CC 4 | CC := $(CC) 5 | else 6 | CC := "gcc -O2" 7 | endif 8 | 9 | TAGS := vtable fts5 sqlite_json sqlite_math_functions 10 | 11 | BUILD_FLAGS := "-ldflags=-s -w" 12 | 13 | all: $(FILES) 14 | go build -o main.out -tags "$(TAGS)" $(BUILD_FLAGS) $(FILES) 15 | 16 | clean: 17 | rm -f main.out 18 | 19 | .PHONY: all clean -------------------------------------------------------------------------------- /plugins/readwise/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o readwise.out $(files) 6 | 7 | prod: $(files) 8 | go build -o readwise.out -ldflags "-s -w" $(files) 9 | 10 | release: prod 11 | goreleaser build -f .goreleaser.yaml --clean --snapshot 12 | 13 | clean: 14 | rm -f readwise.out 15 | 16 | .PHONY: all clean 17 | -------------------------------------------------------------------------------- /queries/notes/which_note_was_created_last.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which note was created last?" 3 | description = "Find the most recently created note" 4 | plugins = ["notes"] 5 | author = "julien040" 6 | tags = ["notes", "creation_date", "recent"] 7 | */ 8 | 9 | SELECT 10 | * 11 | FROM 12 | notes_items 13 | ORDER BY 14 | creation_date DESC 15 | LIMIT 1; -------------------------------------------------------------------------------- /other/tunnel/server/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE 2 | IF NOT EXISTS `tunnels` ( 3 | id TEXT PRIMARY KEY, 4 | hashedToken TEXT, 5 | expiresAt TEXT, 6 | createdAt TEXT, 7 | metadata TEXT DEFAULT '{}' 8 | ) STRICT; 9 | 10 | PRAGMA journal_mode = WAL; 11 | 12 | PRAGMA foreign_keys = ON; 13 | 14 | PRAGMA synchronous = NORMAL; -------------------------------------------------------------------------------- /queries/system/how_many_cores_does_the_system_have.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many cores does the system have?" 3 | description = "Get the number of CPU cores in the system" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["cpu", "system", "cores"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT cpu_cores FROM system_cpu_infos LIMIT 1; -------------------------------------------------------------------------------- /queries/system/how_much_memory_is_used_by_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How much memory is used by the system?" 3 | description = "Get the amount of memory currently used by the system" 4 | plugins = ["system"] 5 | author = "julien040" 6 | tags = ["system", "memory", "usage"] 7 | arguments = [] 8 | */ 9 | 10 | SELECT 11 | used 12 | FROM 13 | system_memory_stats; -------------------------------------------------------------------------------- /queries/edge/edge_what_is_the_url_of_the_active_tab.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the URL of the active tab?" 3 | description = "Get the URL of the currently active tab" 4 | 5 | plugins = ["edge"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["edge", "tabs"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | url 16 | FROM 17 | edge_tabs 18 | WHERE 19 | active = 1; -------------------------------------------------------------------------------- /website/public/icons/tidb.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /queries/system/list_the_mounted_filesystems_of_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List the mounted filesystems of the system" 3 | description = "Retrieve all the mounted filesystems along with their details" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "filesystems", "partitions", "storage"] 10 | 11 | */ 12 | 13 | SELECT * FROM system_partitions; -------------------------------------------------------------------------------- /other/prql/types.go: -------------------------------------------------------------------------------- 1 | package prql 2 | 3 | type SourceLocationError struct { 4 | StartLine int 5 | StartColumn int 6 | EndLine int 7 | EndColumn int 8 | } 9 | 10 | type CompileMessage struct { 11 | ErrorCode rune 12 | // Annoted code containing the error and the hints 13 | Display string 14 | // The location of the error 15 | LocationError SourceLocationError 16 | } 17 | -------------------------------------------------------------------------------- /website/.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | # generated types 4 | .astro/ 5 | 6 | # dependencies 7 | node_modules/ 8 | 9 | # logs 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | 23 | # jetbrains setting folder 24 | .idea/ 25 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "go.buildTags": "vtable fts5 sqlite_json sqlite_math_functions", 3 | "yaml.schemas": { 4 | "https://spec.openapis.org/oas/3.1/schema/2022-10-07": "file:///Users/julien/Code/anyquery/other/llm/openapi-actions.yaml" 5 | }, 6 | "go.lintFlags": [ 7 | "-tags", 8 | "vtable fts5 sqlite_json sqlite_math_functions" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /plugins/notion/makefile: -------------------------------------------------------------------------------- 1 | files := $(wildcard *.go) 2 | 3 | all: $(files) 4 | go build -o notion.out $(files) 5 | 6 | prod: $(files) 7 | go build -o notion.out -ldflags "-s -w" $(files) 8 | 9 | release: $(files) 10 | goreleaser release --clean --snapshot 11 | ../store-manager/store-manager.out -p notion -c manifest.toml 12 | 13 | clean: 14 | rm -f notion.out 15 | 16 | .PHONY: all clean -------------------------------------------------------------------------------- /queries/chrome/chrome_how_many_tabs_are_open_in_the_browser.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many tabs are open in the browser?" 3 | description = "Get the total number of open tabs in the Chromium-based browser" 4 | 5 | plugins = ["chrome"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["chrome", "tabs", "browser"] 10 | */ 11 | 12 | SELECT 13 | COUNT(*) AS open_tabs 14 | FROM 15 | chrome_tabs; -------------------------------------------------------------------------------- /queries/imap/unread-emails.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What are my unread emails?" 3 | description = "List all the emails that are unread" 4 | 5 | plugins = ["imap"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["imap", "emails", "unread"] 10 | */ 11 | SELECT 12 | subject, 13 | received_at, 14 | _from as senders 15 | FROM 16 | imap_emails 17 | WHERE 18 | flags NOT LIKE '%"Seen"%'; -------------------------------------------------------------------------------- /website/src/content/docs/connection-guide/superset.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Apache Superset 3 | description: Connect Apache Superset to Anyquery 4 | --- 5 | 6 | ![Apache Superset](/images/docs/superset.svg) 7 | 8 | Superset is not yet supported by Anyquery. If you would like to see support for PowerBI, please [open an issue](https://github/com/julien040/anyquery/issues/new) on the Anyquery GitHub repository. 9 | -------------------------------------------------------------------------------- /other/websocket_tunnel/server/schema.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE 2 | IF NOT EXISTS `tunnels` ( 3 | id TEXT PRIMARY KEY, 4 | hashedToken TEXT, 5 | expiresAt TEXT, 6 | createdAt TEXT, 7 | serverHost TEXT, 8 | metadata TEXT DEFAULT '{}' 9 | ) STRICT; 10 | 11 | PRAGMA journal_mode = WAL; 12 | 13 | PRAGMA foreign_keys = ON; 14 | 15 | PRAGMA synchronous = NORMAL; -------------------------------------------------------------------------------- /queries/brave/brave_how_many_tabs_are_open_in_the_browser.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many tabs are open in the browser?" 3 | description = "Count the total number of open tabs in the browser" 4 | 5 | plugins = ["brave"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["brave", "tabs", "count", "open"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | COUNT(*) AS open_tabs 16 | FROM 17 | brave_tabs; -------------------------------------------------------------------------------- /queries/chrome/chrome_what_is_the_url_of_the_active_tab.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the URL of the active tab?" 3 | description = "Get the URL of the currently active tab in the Chromium based browser" 4 | 5 | plugins = ["chrome"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["chrome", "tabs", "active tab"] 10 | */ 11 | 12 | SELECT 13 | url 14 | FROM 15 | chrome_tabs 16 | WHERE 17 | active = 1; -------------------------------------------------------------------------------- /queries/docker/how_many_containers_are_running.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many containers are running?" 3 | description = "Retrieve the count of currently running containers." 4 | plugins = ["docker"] 5 | author = "julien040" 6 | tags = ["docker", "containers", "status"] 7 | */ 8 | 9 | SELECT 10 | COUNT(*) as running_containers 11 | FROM 12 | docker_containers 13 | WHERE 14 | LOWER(state) = 'running'; -------------------------------------------------------------------------------- /queries/system/what-s_the_current_cpu_usage_of_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What's the current CPU usage of the system?" 3 | description = "Get the current CPU usage statistics of the system, including user, system, and idle times." 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["cpu", "usage", "statistics"] 10 | */ 11 | 12 | SELECT 13 | * 14 | FROM 15 | system_cpu_stats; -------------------------------------------------------------------------------- /website/src/content/docs/connection-guide/power-bi.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Power BI 3 | description: Connect Power BI to Anyquery 4 | --- 5 | 6 | Power BI 7 | 8 | PowerBI is not yet supported by Anyquery. If you would like to see support for PowerBI, please [open an issue](https://github/com/julien040/anyquery/issues/new) on the Anyquery GitHub repository. 9 | -------------------------------------------------------------------------------- /queries/brave/brave_what_is_the_url_of_the_active_tab.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the URL of the active tab?" 3 | description = "Get the URL of the currently active tab in the Brave browser" 4 | 5 | plugins = ["brave"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["brave", "tabs", "url"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | url 16 | FROM 17 | brave_tabs 18 | WHERE 19 | active = 1; -------------------------------------------------------------------------------- /queries/edge/edge_how_many_tabs_are_open_in_the_browser.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many tabs are open in the browser?" 3 | description = "Get the total number of open tabs in the Chromium-based browser" 4 | 5 | plugins = ["edge"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["edge", "tabs", "statistics"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | COUNT(*) AS open_tabs 16 | FROM 17 | edge_tabs; -------------------------------------------------------------------------------- /plugins/raindrop/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/go-resty/resty/v2" 5 | "github.com/hashicorp/go-retryablehttp" 6 | "github.com/julien040/anyquery/rpc" 7 | ) 8 | 9 | var retry = retryablehttp.NewClient() 10 | var client = resty.NewWithClient(retry.StandardClient()) 11 | 12 | func main() { 13 | retry.RetryMax = 12 14 | plugin := rpc.NewPlugin(raindropCreator) 15 | plugin.Serve() 16 | } 17 | -------------------------------------------------------------------------------- /queries/system/how_much_swap_is_used_by_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How much swap is used by the system?" 3 | description = "Retrieve the total amount of swap space used by the system." 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "swap", "usage", "memory"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | sum(used) AS total_swap_used 16 | FROM 17 | system_swaps; -------------------------------------------------------------------------------- /queries/docker/what_is_the_newest_container.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the newest container?" 3 | description = "Find the most recently created container." 4 | 5 | plugins = ["docker"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["docker", "containers", "newest"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | * 16 | FROM 17 | docker_containers 18 | ORDER BY 19 | created_at DESC 20 | LIMIT 21 | 1; -------------------------------------------------------------------------------- /plugins/hacker-news/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/go-resty/resty/v2" 5 | "github.com/julien040/anyquery/rpc" 6 | ) 7 | 8 | var client = resty.New() 9 | 10 | func main() { 11 | plugin := rpc.NewPlugin(searchCreator, postCreator, postDescendantCreator, user_postsCreator, 12 | frontCreator, newCreator, bestCreator, askCreator, showCreator, jobsCreator, user_dataCreator) 13 | plugin.Serve() 14 | } 15 | -------------------------------------------------------------------------------- /queries/brave/brave_what_is_the_title_of_the_active_tab.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the title of the active tab?" 3 | description = "Retrieve the title of the currently active tab in the Brave browser" 4 | 5 | plugins = ["brave"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["brave", "tabs", "active"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | title 16 | FROM 17 | brave_tabs 18 | WHERE 19 | active = 1; -------------------------------------------------------------------------------- /queries/chrome/chrome_what_is_the_title_of_the_active_tab.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the title of the active tab?" 3 | description = "Get the title of the currently active tab in a Chromium-based browser" 4 | 5 | plugins = ["chrome"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["chrome", "tabs", "active"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | title 16 | FROM 17 | chrome_tabs 18 | WHERE 19 | active = 1; -------------------------------------------------------------------------------- /plugins/trello/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/go-resty/resty/v2" 5 | "github.com/hashicorp/go-retryablehttp" 6 | "github.com/julien040/anyquery/rpc" 7 | ) 8 | 9 | var retry = retryablehttp.NewClient() 10 | var client = resty.NewWithClient(retry.HTTPClient) 11 | 12 | func main() { 13 | retry.RetryMax = 5 14 | plugin := rpc.NewPlugin(boardsCreator, cardsCreator, listsCreator) 15 | plugin.Serve() 16 | } 17 | -------------------------------------------------------------------------------- /queries/edge/edge_what_is_the_title_of_the_active_tab.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the title of the active tab?" 3 | description = "Retrieve the title of the currently active tab in a Chromium-based browser" 4 | 5 | plugins = ["edge"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["edge", "browser", "tabs"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | title 16 | FROM 17 | edge_tabs 18 | WHERE 19 | active = 1 20 | LIMIT 1; -------------------------------------------------------------------------------- /queries/system/how_many_processes_are_running_on_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many processes are running on the system?" 3 | description = "Get the total number of processes currently running on the system." 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "process", "count"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | count(*) as total_processes 16 | FROM 17 | system_processes; -------------------------------------------------------------------------------- /website/public/images/apple-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/carddav/Makefile: -------------------------------------------------------------------------------- 1 | 2 | files := $(wildcard *.go) 3 | 4 | all: $(files) 5 | go build -o carddav.out $(files) 6 | 7 | prod: $(files) 8 | go build -o carddav.out -ldflags "-s -w" $(files) 9 | 10 | release: prod 11 | goreleaser build -f .goreleaser.yaml --clean --snapshot 12 | 13 | test: 14 | go test -v ./... 15 | 16 | integration-test: 17 | ./test.sh 18 | 19 | clean: 20 | rm -f carddav.out 21 | 22 | .PHONY: all clean test integration-test 23 | -------------------------------------------------------------------------------- /plugins/coda/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "time" 5 | 6 | "github.com/go-resty/resty/v2" 7 | "github.com/hashicorp/go-retryablehttp" 8 | "github.com/julien040/anyquery/rpc" 9 | ) 10 | 11 | var retry = retryablehttp.NewClient() 12 | var client = resty.NewWithClient(retry.StandardClient()) 13 | 14 | func main() { 15 | retry.RetryMax = 5 16 | retry.RetryWaitMin = time.Second 17 | plugin := rpc.NewPlugin(tableCreator) 18 | plugin.Serve() 19 | } 20 | -------------------------------------------------------------------------------- /plugins/brave/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - darwin 14 | 15 | goarch: 16 | - amd64 17 | - arm64 18 | 19 | archives: 20 | - format: binary 21 | 22 | changelog: 23 | sort: asc 24 | filters: 25 | exclude: 26 | - "^docs:" 27 | - "^test:" 28 | -------------------------------------------------------------------------------- /plugins/chrome/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - darwin 14 | 15 | goarch: 16 | - amd64 17 | - arm64 18 | 19 | archives: 20 | - format: binary 21 | 22 | changelog: 23 | sort: asc 24 | filters: 25 | exclude: 26 | - "^docs:" 27 | - "^test:" 28 | -------------------------------------------------------------------------------- /plugins/edge/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - darwin 14 | 15 | goarch: 16 | - amd64 17 | - arm64 18 | 19 | archives: 20 | - format: binary 21 | 22 | changelog: 23 | sort: asc 24 | filters: 25 | exclude: 26 | - "^docs:" 27 | - "^test:" 28 | -------------------------------------------------------------------------------- /plugins/notes/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - darwin 14 | 15 | goarch: 16 | - amd64 17 | - arm64 18 | 19 | archives: 20 | - format: binary 21 | 22 | changelog: 23 | sort: asc 24 | filters: 25 | exclude: 26 | - "^docs:" 27 | - "^test:" 28 | -------------------------------------------------------------------------------- /plugins/safari/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - darwin 14 | 15 | goarch: 16 | - amd64 17 | - arm64 18 | 19 | archives: 20 | - format: binary 21 | 22 | changelog: 23 | sort: asc 24 | filters: 25 | exclude: 26 | - "^docs:" 27 | - "^test:" 28 | -------------------------------------------------------------------------------- /_examples/drizzle/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "anyquery-drizzle-example", 3 | "version": "1.0.0", 4 | "description": "An example of how to use drizzle with Anyquery", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "drizzle-kit": "^0.23.0", 13 | "drizzle-orm": "^0.32.1", 14 | "mysql2": "^3.11.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /other/tunnel/README.md: -------------------------------------------------------------------------------- 1 | # Tunnel server 2 | 3 | To provide HTTP tunneling service, Anyquery uses [FRP](https://github.com/fatedier/frp) as the tunnel server. There is a sidecar container managing the FRP server. It also handles the authentication and authorization of the tunnel clients. 4 | 5 | ## `server` folder 6 | 7 | Contains the FRP sidecar service and the configuration file. 8 | 9 | ## `client` folder 10 | 11 | Contains the FRP code to connect to the tunnel server. 12 | -------------------------------------------------------------------------------- /plugins/reminders/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - darwin 14 | 15 | goarch: 16 | - amd64 17 | - arm64 18 | 19 | archives: 20 | - format: binary 21 | 22 | changelog: 23 | sort: asc 24 | filters: 25 | exclude: 26 | - "^docs:" 27 | - "^test:" 28 | -------------------------------------------------------------------------------- /queries/docker/what_is_the_oldest_container.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the oldest container?" 3 | description = "Find the oldest Docker container based on the created date." 4 | plugins = ["docker"] 5 | author = "julien040" 6 | tags = ["docker", "containers", "oldest"] 7 | 8 | arguments = [] 9 | */ 10 | 11 | SELECT 12 | id, 13 | names, 14 | image, 15 | created_at 16 | FROM 17 | docker_containers 18 | ORDER BY 19 | datetime(created_at) ASC 20 | LIMIT 21 | 1; -------------------------------------------------------------------------------- /plugins/store-manager/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/julien040/anyquery/plugins/store-manager 2 | 3 | go 1.22.5 4 | 5 | require ( 6 | github.com/bitfield/script v0.22.1 7 | github.com/pelletier/go-toml v1.9.5 8 | github.com/spf13/pflag v1.0.5 9 | golang.org/x/term v0.22.0 10 | ) 11 | 12 | require ( 13 | github.com/itchyny/gojq v0.12.13 // indirect 14 | github.com/itchyny/timefmt-go v0.1.5 // indirect 15 | golang.org/x/sys v0.22.0 // indirect 16 | mvdan.cc/sh/v3 v3.7.0 // indirect 17 | ) 18 | -------------------------------------------------------------------------------- /queries/discord/list_all_the_users_in_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all the users in a server" 3 | description = "Get all members of a Discord server" 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "members", "server"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title = "Server ID", type="string", description="The ID of the Discord server", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT * FROM discord_members WHERE guild_id = @guild_id; -------------------------------------------------------------------------------- /queries/system/what_is_the_remaining_disk_space_per_filesystem.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What is the remaining disk space per filesystem?" 3 | description = "Get the remaining disk space for each filesystem on the system" 4 | plugins = ["system"] 5 | author = "julien040" 6 | tags = ["system", "disk", "filesystem", "usage"] 7 | */ 8 | 9 | SELECT 10 | p.device, 11 | s.free AS remaining_disk_space 12 | FROM 13 | system_partitions p 14 | JOIN system_partition_stats s ON p.mountpoint = s.mountpoint; -------------------------------------------------------------------------------- /plugins/spotify/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | before: 4 | hooks: 5 | # You may remove this if you don't use go modules. 6 | - go mod tidy 7 | 8 | builds: 9 | - env: 10 | - CGO_ENABLED=0 11 | goos: 12 | - linux 13 | - windows 14 | - darwin 15 | 16 | goarch: 17 | - amd64 18 | - arm64 19 | 20 | archives: 21 | - format: binary 22 | 23 | changelog: 24 | sort: asc 25 | filters: 26 | exclude: 27 | - "^docs:" 28 | - "^test:" 29 | -------------------------------------------------------------------------------- /plugins/file/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/git/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/github/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/imap/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/ip-api/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/pocket/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/pypi/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/random/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/rss/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/airtable/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/calendar/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/hacker-news/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/homebrew/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/raindrop/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/typeform/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /other/sqlparser/README.md: -------------------------------------------------------------------------------- 1 | # SQLparser 2 | 3 | The SQLparser extract from vitess.io project. It adds the following features: 4 | 5 | - Tables functions support (e.g. `select * from table1(arg1, arg2)`) 6 | 7 | ## Compilation 8 | 9 | Go to the sqlparser directory and run the following command: 10 | 11 | ```bash 12 | go run goyacc/goyacc.go -fo sql.go sql.y 13 | ``` 14 | 15 | ## Additional notes 16 | 17 | - Tests are failing for this package because they are adapted to the vitess.io project. You can ignore them. 18 | -------------------------------------------------------------------------------- /plugins/google_forms/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /plugins/google_sheets/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | 17 | goarch: 18 | - amd64 19 | - arm64 20 | 21 | archives: 22 | - format: binary 23 | 24 | changelog: 25 | sort: asc 26 | filters: 27 | exclude: 28 | - "^docs:" 29 | - "^test:" 30 | -------------------------------------------------------------------------------- /queries/github/my_most_starred_github_repository.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "My most starred GitHub repository" 3 | description = "Find the repository with the highest number of stars for the authenticated user." 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "stars", "repositories", "statistics"] 10 | 11 | arguments = []*/ 12 | 13 | SELECT 14 | full_name, 15 | stargazers_count 16 | FROM 17 | github_my_repositories 18 | ORDER BY 19 | stargazers_count DESC 20 | LIMIT 21 | 1; -------------------------------------------------------------------------------- /queries/discord/list_all_the_roles_in_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all the roles in a server." 3 | description = "Retrieve all roles from a specific Discord server." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "roles", "server"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title = "Guild ID", type="string", description="The ID of the guild (server) to fetch roles from", regex="^[0-9]+$"} 13 | ]*/ 14 | 15 | SELECT * 16 | FROM discord_roles 17 | WHERE guild_id = @guild_id; -------------------------------------------------------------------------------- /queries/notes/which_note_was_created_first.sql: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | title = "Which note was created first?" 4 | description = "Get the note that was created first." 5 | 6 | plugins = ["notes"] 7 | 8 | author = "julien040" 9 | 10 | tags = ["notes", "creation_date", "first_note"] 11 | 12 | arguments = [] 13 | */ 14 | 15 | SELECT 16 | id, 17 | name, 18 | creation_date, 19 | modification_date, 20 | html_body, 21 | folder, 22 | account 23 | FROM 24 | notes_items 25 | ORDER BY 26 | creation_date ASC 27 | LIMIT 1; -------------------------------------------------------------------------------- /queries/brave/brave_close_tabs_of_a_specific_domain.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Close tabs of a specific domain" 3 | description = "Close all tabs that belong to a specific domain" 4 | 5 | plugins = ["brave"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["brave", "tabs", "close"] 10 | 11 | arguments = [ 12 | {title = "domain", display_title = "Domain", type = "string", description = "The domain of the tabs to close", regex = "^[a-zA-Z0-9.-]+$"} 13 | ] 14 | */ 15 | 16 | DELETE FROM brave_tabs 17 | WHERE LOWER(url) LIKE CONCAT('%', LOWER(@domain), '%'); -------------------------------------------------------------------------------- /queries/chrome/chrome_close_tabs_of_a_specific_domain.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Chrome Close tabs of a specific domain" 3 | description = "Close all tabs that belong to a specific domain" 4 | 5 | plugins = ["chrome"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["chrome", "tabs", "management"] 10 | 11 | arguments = [ 12 | {title="domain", display_title = "Domain", type="string", description="The domain of the tabs to close", regex="^[a-zA-Z0-9.-]+$"} 13 | ] 14 | */ 15 | 16 | DELETE FROM chrome_tabs 17 | WHERE url LIKE CONCAT('%', @domain, '%'); -------------------------------------------------------------------------------- /queries/click_up/list_all_tasks_in_a_specific_list.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all tasks in a specific list" 3 | description = "Retrieve all tasks from a specified ClickUp list" 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "tasks", "list"] 10 | 11 | arguments = [ 12 | {title="list_id", display_title = "List ID", type="string", description="The ID of the list to fetch tasks from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | * 18 | FROM 19 | clickup_tasks 20 | WHERE 21 | list_id = @list_id; -------------------------------------------------------------------------------- /queries/discord/list_all_invites_in_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all invites in a server" 3 | description = "Retrieve all invite links of a server" 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "invites", "server"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title="Server ID", type="string", description="The ID of the server to fetch invites from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | * 18 | FROM 19 | discord_invites('guild_id') 20 | WHERE 21 | guild_id = @guild_id; -------------------------------------------------------------------------------- /queries/edge/edge_close_tabs_of_a_specific_domain.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Edge Close tabs of a specific domain" 3 | description = "Close all tabs from a specific domain in a Chromium-based browser." 4 | 5 | plugins = ["edge"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["edge", "browser", "tabs", "close"] 10 | 11 | arguments = [ 12 | {title="domain", display_title = "Domain", type="string", description="The domain whose tabs should be closed", regex="^[a-zA-Z0-9.-]+$"} 13 | ] 14 | */ 15 | 16 | DELETE FROM edge_tabs 17 | WHERE url LIKE CONCAT('%', @domain, '%'); -------------------------------------------------------------------------------- /plugins/github/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin(myRepoCreator, repoListByUserCreator, commitsCreator, issuesCreator, pullRequestsCreator, 9 | releaseCreator, branchesCreator, contributorsCreator, tagsCreator, followersCreator, myFollowerCreator, 10 | followingCreator, my_followingCreator, starsCreator, my_starsCreator, gistsCreator, my_gistsCreator, comments_from_issueCreator, 11 | my_issuesCreator, stargazers_repoCreator) 12 | plugin.Serve() 13 | } 14 | -------------------------------------------------------------------------------- /queries/system/list_the_child_processes_of_a_process.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List the child processes of a process" 3 | description = "Get a list of all child processes of a given process ID" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "processes", "child processes"] 10 | 11 | arguments = [ 12 | {title="parent_pid", display_title = "Parent Process ID", type="int", description="The process ID of the parent process", regex="^\\d+$"} 13 | ] 14 | */ 15 | 16 | SELECT * 17 | FROM system_processes 18 | WHERE parent_pid = @parent_pid; -------------------------------------------------------------------------------- /plugins/nylas/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: nylas 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /plugins/system/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/julien040/anyquery/rpc" 5 | ) 6 | 7 | func main() { 8 | plugin := rpc.NewPlugin( 9 | processesCreator, 10 | process_statusCreator, 11 | process_memoryCreator, 12 | process_filesCreator, 13 | process_networksCreator, 14 | process_statsCreator, 15 | cpu_infosCreator, 16 | cpu_statsCreator, 17 | swapsCreator, 18 | memory_statsCreator, 19 | partitionsCreator, 20 | partition_usageCreator, 21 | network_interfacesCreator, 22 | network_statsCreator, 23 | ) 24 | plugin.Serve() 25 | } 26 | -------------------------------------------------------------------------------- /queries/discord/how_many_people_were_banned_in_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many people were banned in a server?" 3 | description = "Count the number of users who have been banned from a specific Discord server." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "bans", "server"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title = "Server ID", type="string", description="The ID of the Discord server", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT COUNT(*) as banned_users 17 | FROM discord_bans 18 | WHERE id = @guild_id; -------------------------------------------------------------------------------- /queries/github/issues-assigned.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which open issues are assigned to me?" 3 | description = "Discover the issues assigned to you" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "issues", "assigned"] 10 | 11 | */ 12 | SELECT 13 | '#' || "number" as id, 14 | by, 15 | created_at, 16 | title, 17 | repository, 18 | 'https://github.com/' || repository || '/issues/' || "number" as url 19 | FROM 20 | github_my_issues ('assigned') 21 | WHERE 22 | state <> 'closed' 23 | AND is_pull_request = false; -------------------------------------------------------------------------------- /plugins/docker/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: docker 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /plugins/shopify/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: shopify 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /plugins/todoist/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: todoist 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /plugins/trello/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: trello 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /plugins/vercel/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: vercel 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /plugins/salesforce_custom/salesforce_custom.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/julien040/anyquery/plugins/salesforce/api" 7 | "github.com/julien040/anyquery/rpc" 8 | ) 9 | 10 | func salesforce_customCreator(args rpc.TableCreatorArgs) (rpc.Table, *rpc.DatabaseSchema, error) { 11 | // Get the sObject name from the arguments 12 | sObject := args.UserConfig.GetString("sObject") 13 | if sObject == "" { 14 | return nil, nil, fmt.Errorf("sObject must be set in the table configuration") 15 | } 16 | 17 | return api.TableFactory(sObject)(args) 18 | 19 | } 20 | -------------------------------------------------------------------------------- /queries/github/stargazers-github-repo.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Who are the stargazers of a GitHub repository?" 3 | description = "List the users who starred a GitHub repository" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "stars"] 10 | 11 | arguments = [ 12 | {title="repository", display_title = "Repository name (owner/repo format)", type="string", description="The repository to fetch stars from (owner/repo)", regex="^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | SELECT 16 | * 17 | FROM 18 | github_stargazers_from_repository (@repository); -------------------------------------------------------------------------------- /namespace/helper.go: -------------------------------------------------------------------------------- 1 | package namespace 2 | 3 | import "strings" 4 | 5 | // GetTableName returns the table name for a given plugin, table and profile 6 | // 7 | // The table name is constructed by concatenating the plugin, table and profile 8 | func GetTableName(plugin string, table string, profile string) string { 9 | builder := strings.Builder{} 10 | if profile != "default" { 11 | builder.WriteString(profile) 12 | builder.WriteString("_") 13 | } 14 | builder.WriteString(plugin) 15 | builder.WriteString("_") 16 | builder.WriteString(table) 17 | 18 | return builder.String() 19 | } 20 | -------------------------------------------------------------------------------- /plugins/google_tasks/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: google_tasks 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /queries/notes/how_many_notes_are_contained_in_a_folder.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many notes are contained in a folder?" 3 | description = "Get the count of notes in a specific folder" 4 | 5 | plugins = ["notes"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["notes", "folder", "count"] 10 | 11 | arguments = [ 12 | {title="folder_name", display_title = "Folder Name", type="string", description="The name of the folder to count notes in", regex=".*"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | COUNT(*) AS notes_count 18 | FROM 19 | notes_items 20 | WHERE 21 | LOWER(folder) = LOWER(@folder_name); -------------------------------------------------------------------------------- /queries/system/what-s_the_pid_of_a_process.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What's the PID of a process?" 3 | description = "Find the Process ID (PID) of a running process by its name" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["process", "pid", "system"] 10 | 11 | arguments = [ 12 | {title="process_name", display_title="Process Name", type="string", description="The name of the process to find the PID for", regex="^[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | pid 18 | FROM 19 | system_processes 20 | WHERE 21 | LOWER(name) = LOWER(@process_name); -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_connection_remove.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery connection remove 3 | description: Learn how to use the anyquery connection remove command in Anyquery. 4 | --- 5 | 6 | Remove a connection 7 | 8 | ```bash 9 | anyquery connection remove [flags] 10 | ``` 11 | 12 | ### Options 13 | 14 | ```bash 15 | -c, --config string Path to the configuration database 16 | -h, --help help for remove 17 | ``` 18 | 19 | ### SEE ALSO 20 | 21 | * [anyquery connection](../anyquery_connection) - Manage connections to other databases 22 | -------------------------------------------------------------------------------- /plugins/google_contacts/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: google_contacts 17 | id: anyquery 18 | ldflags: "-s -w" 19 | 20 | goarch: 21 | - amd64 22 | - arm64 23 | 24 | archives: 25 | - format: binary 26 | 27 | changelog: 28 | sort: asc 29 | filters: 30 | exclude: 31 | - "^docs:" 32 | - "^test:" 33 | -------------------------------------------------------------------------------- /queries/system/list_the_open_files_of_a_process.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List the open files of a process" 3 | description = "Retrieve the list of files opened by a specific process." 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "process", "files", "open files"] 10 | 11 | arguments = [ 12 | {title="pid", display_title = "Process ID", type="int", description="The process ID to fetch the open files for", regex="^\\d+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | path, 18 | file_descriptor 19 | FROM 20 | system_process_files 21 | WHERE 22 | pid = @pid; -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_tool_dev.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery tool dev 3 | description: Learn how to use the anyquery tool dev command in Anyquery. 4 | --- 5 | 6 | Development tools 7 | 8 | ### Options 9 | 10 | ```bash 11 | -h, --help help for dev 12 | ``` 13 | 14 | ### SEE ALSO 15 | 16 | * [anyquery tool](../anyquery_tool) - Tools to help you with using anyquery 17 | * [anyquery tool dev init](../anyquery_tool_dev_init) - Initialize a new plugin 18 | * [anyquery tool dev new-table](../anyquery_tool_dev_new-table) - Write the boilerplate for a new table 19 | -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_tool_hashdir.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery tool hashdir 3 | description: Learn how to use the anyquery tool hashdir command in Anyquery. 4 | --- 5 | 6 | Hash a directory 7 | 8 | ### Synopsis 9 | 10 | Hash a directory and return a value that can be used in a plugin manifest. 11 | 12 | ```bash 13 | anyquery tool hashdir [dir] [flags] 14 | ``` 15 | 16 | ### Options 17 | 18 | ```bash 19 | -h, --help help for hashdir 20 | ``` 21 | 22 | ### SEE ALSO 23 | 24 | * [anyquery tool](../anyquery_tool) - Tools to help you with using anyquery 25 | -------------------------------------------------------------------------------- /queries/brave/brave_close_tabs_that_contain_a_specific_keyword_in_the_title.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Close tabs that contain a specific keyword in the title" 3 | description = "Close all tabs in the Brave browser that have a specific keyword in their title" 4 | 5 | plugins = ["brave"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["brave", "tabs", "close"] 10 | 11 | arguments = [ 12 | {title="keyword", display_title = "Keyword", type="string", description="Keyword to find in the tab titles", regex=".*"} 13 | ]*/ 14 | 15 | DELETE FROM brave_tabs 16 | WHERE LOWER(title) LIKE LOWER(CONCAT('%', @keyword, '%')); -------------------------------------------------------------------------------- /queries/discord/list_all_the_channels_in_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all the channels in a server" 3 | description = "Get all channels of a specific Discord server, ordered by their positions." 4 | plugins = ["discord"] 5 | author = "julien040" 6 | tags = ["discord", "channels", "server"] 7 | arguments = [ 8 | {title="guild_id", display_title = "Guild ID", type="string", description="The ID of the server to fetch channels from", regex="^[0-9]+$"} 9 | ] 10 | */ 11 | 12 | SELECT 13 | * 14 | FROM 15 | discord_channels 16 | WHERE 17 | guild_id = @guild_id 18 | ORDER BY 19 | position; -------------------------------------------------------------------------------- /queries/edge/edge_close_tabs_of_a_domain_different_than_the_specified_one.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Close tabs of a domain different than the specified one" 3 | description = "Close all tabs that do not belong to the specified domain" 4 | 5 | plugins = ["edge"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["edge", "tabs", "close", "domain"] 10 | 11 | arguments = [ 12 | {title="domain", display_title = "Domain", type="string", description="The domain to keep tabs open for", regex="^[a-zA-Z0-9.-]+$"} 13 | ] 14 | */ 15 | 16 | DELETE FROM edge_tabs 17 | WHERE LOWER(url) NOT LIKE CONCAT('%', LOWER(@domain), '%'); -------------------------------------------------------------------------------- /queries/github/pull-request-assigned.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which open pull requests are assigned to me?" 3 | description = "Discover the pull requests assigned to you" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "pull requests", "assigned"] 10 | 11 | */ 12 | SELECT 13 | '#' || "number" as id, 14 | by, 15 | created_at, 16 | title, 17 | repository, 18 | 'https://github.com/' || repository || '/issues/' || "number" as url 19 | FROM 20 | github_my_issues ('assigned') 21 | WHERE 22 | state <> 'closed' 23 | AND is_pull_request = true; -------------------------------------------------------------------------------- /queries/docker/list_the_top_n_biggest_images.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List the top n biggest images" 3 | description = "Get the top n biggest Docker images sorted by their size" 4 | 5 | plugins = ["docker"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["docker", "images", "size"] 10 | 11 | arguments = [ 12 | {title="n", display_title = "Number of images", type="int", description="The number of top biggest images to display", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | id, 18 | repo_tags, 19 | size 20 | FROM 21 | docker_images 22 | ORDER BY 23 | size DESC 24 | LIMIT 25 | @n; -------------------------------------------------------------------------------- /queries/edge/edge_close_tabs_that_contain_a_specific_keyword_in_the_title.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Close tabs with a specific keyword in the title" 3 | description = "Close all tabs that contain a given keyword in their title" 4 | 5 | plugins = ["edge"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["edge", "tabs", "close"] 10 | 11 | arguments = [ 12 | {title="keyword", display_title = "Keyword", type="string", description="The keyword to search for in the tab titles", regex="^.*$"} 13 | ] 14 | */ 15 | 16 | DELETE FROM 17 | edge_tabs 18 | WHERE 19 | LOWER(title) LIKE LOWER(CONCAT('%', @keyword, '%')); -------------------------------------------------------------------------------- /queries/notes/list_notes_that_contain_a_particular_word.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List notes that contain a particular word" 3 | description = "Retrieve all notes that contain a specific word in their content" 4 | plugins = ["notes"] 5 | author = "julien040" 6 | tags = ["notes", "content search"] 7 | arguments = [ 8 | {title="word", display_title = "Word to search for", type="string", description="The word to search for in the notes", regex="^[a-zA-Z0-9]+$"} 9 | ] 10 | */ 11 | 12 | SELECT 13 | * 14 | FROM 15 | notes_items 16 | WHERE 17 | LOWER(html_body) LIKE CONCAT('%', LOWER(@word), '%'); 18 | -------------------------------------------------------------------------------- /queries/reminders/set_to_complete_all_reminders_in_a_list.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Set all reminders in a list to complete" 3 | description = "Mark all reminders in a specified list as completed" 4 | 5 | plugins = ["reminders"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["reminders", "update", "completion"] 10 | 11 | arguments = [ 12 | {title="list_name", display_title = "List Name", type="string", description="The name of the list where reminders will be marked as completed", regex="^[a-zA-Z0-9_ ]+$"} 13 | ]*/ 14 | 15 | UPDATE reminders_items 16 | SET completed = 1 17 | WHERE LOWER(list) = LOWER(@list_name); -------------------------------------------------------------------------------- /queries/brave/brave_close_tabs_of_a_domain_different_than_the_specified_one.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Close tabs of a domain different than the specified one" 3 | description = "Close all tabs that do not belong to the specified domain" 4 | 5 | plugins = ["brave"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["brave", "tabs", "management"] 10 | 11 | arguments = [ 12 | {title="domain", display_title = "Domain", type="string", description="The domain to keep tabs open for", regex="^[a-zA-Z0-9.-]+$"} 13 | ] 14 | */ 15 | 16 | DELETE FROM brave_tabs 17 | WHERE 18 | LOWER(url) NOT LIKE CONCAT('%', LOWER(@domain), '%'); -------------------------------------------------------------------------------- /queries/docker/list_all_images_that_don-t_have_a_container.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all images that don't have a container" 3 | description = "Get all Docker images that are not used by any containers" 4 | 5 | plugins = ["docker"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["docker", "images", "containers", "unused"] 10 | 11 | arguments = [] 12 | */ 13 | 14 | SELECT 15 | id, 16 | created_at, 17 | labels, 18 | parent_id, 19 | repo_tags, 20 | repo_digests, 21 | container_count, 22 | shared_size, 23 | size 24 | FROM 25 | docker_images 26 | WHERE 27 | container_count = 0; -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_connection_add.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery connection add 3 | description: Learn how to use the anyquery connection add command in Anyquery. 4 | --- 5 | 6 | Add a connection 7 | 8 | ```bash 9 | anyquery connection add [filter] [flags] 10 | ``` 11 | 12 | ### Options 13 | 14 | ```bash 15 | -c, --config string Path to the configuration database 16 | -h, --help help for add 17 | ``` 18 | 19 | ### SEE ALSO 20 | 21 | * [anyquery connection](../anyquery_connection) - Manage connections to other databases 22 | -------------------------------------------------------------------------------- /queries/chrome/chrome_close_tabs_of_a_domain_different_than_the_specified_one.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Chrome Close tabs of a domain different than the specified one" 3 | description = "Close all tabs from a domain that is different from the specified one" 4 | 5 | plugins = ["chrome"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["chrome", "tabs", "close"] 10 | 11 | arguments = [ 12 | {title="domain", display_title = "Domain", type="string", description="The domain to keep tabs open for", regex="^[a-zA-Z0-9.-]+$"} 13 | ]*/ 14 | 15 | DELETE FROM chrome_tabs 16 | WHERE LOWER(url) NOT LIKE CONCAT('%', LOWER(@domain), '%'); -------------------------------------------------------------------------------- /queries/click_up/list_all_tasks_that_are_due_today.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all tasks that are due today" 3 | description = "Retrieve all tasks from a specific list that have a due date set to today." 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "tasks", "due date"] 10 | 11 | arguments = [ 12 | {title="list_id", display_title="List ID", type="string", description="The ID of the list to fetch tasks from", regex="^[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | * 18 | FROM 19 | clickup_tasks 20 | WHERE 21 | list_id = @list_id 22 | AND date(due_at) = date('now'); -------------------------------------------------------------------------------- /queries/click_up/list_all_tasks_that_are_overdue.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all tasks that are overdue" 3 | description = "Retrieve all tasks that are overdue in a given list" 4 | plugins = ["clickup"] 5 | author = "julien040" 6 | tags = ["clickup", "tasks", "overdue"] 7 | arguments = [ 8 | {title="list_id", display_title = "List ID", type="string", description="The ID of the list to fetch tasks from", regex="^[0-9]+$"} 9 | ] 10 | */ 11 | 12 | SELECT 13 | * 14 | FROM 15 | clickup_tasks 16 | WHERE 17 | list_id = @list_id 18 | AND due_at < datetime('now') 19 | AND (status IS NULL OR LOWER(status) != 'closed'); -------------------------------------------------------------------------------- /queries/system/what_are_the_most_memory_demanding_processes_on_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What are the most memory demanding processes on the system?" 3 | description = "List the processes that consume the most memory on the system" 4 | plugins = ["system"] 5 | author = "julien040" 6 | tags = ["system", "memory", "processes", "statistics"] 7 | arguments = [] 8 | */ 9 | 10 | SELECT 11 | p.pid, 12 | p.name, 13 | m.resident_set_size, 14 | m.virtual_memory_size 15 | FROM 16 | system_processes p 17 | JOIN system_process_memory m ON p.pid = m.pid 18 | ORDER BY 19 | m.resident_set_size DESC 20 | LIMIT 21 | 10; -------------------------------------------------------------------------------- /queries/chrome/chrome_close_tabs_that_contain_a_specific_keyword_in_the_title.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Close tabs that contain a specific keyword in the title" 3 | description = "Close all tabs in a Chromium-based browser where the title contains a specified keyword" 4 | 5 | plugins = ["chrome"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["chrome", "tabs", "close"] 10 | 11 | arguments = [ 12 | {title="keyword", display_title = "Keyword", type="string", description="Keyword to search for in the tab titles", regex=".*"} 13 | ] 14 | */ 15 | 16 | DELETE FROM 17 | chrome_tabs 18 | WHERE 19 | LOWER(title) LIKE CONCAT('%', LOWER(@keyword), '%'); -------------------------------------------------------------------------------- /plugins/coda/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: coda 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /queries/discord/how_many_messages_were_sent_in_a_channel.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many messages were sent in a channel?" 3 | description = "Get the total number of messages sent in a specific Discord channel." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "messages", "statistics"] 10 | 11 | arguments = [ 12 | {title = "channel_id", display_title = "Channel ID", type = "string", description = "The ID of the channel to count messages from", regex = "^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | COUNT(*) as total_messages 18 | FROM 19 | discord_messages 20 | WHERE 21 | channel_id = @channel_id; -------------------------------------------------------------------------------- /plugins/asana/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: asana 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/carddav/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: carddav 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/discord/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: discord 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/hubspot/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: hubspot 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/system/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: system 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/click_up/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: click_up 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/readwise/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: readwise 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /plugins/readwise/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/go-resty/resty/v2" 5 | "github.com/hashicorp/go-retryablehttp" 6 | "github.com/julien040/anyquery/rpc" 7 | ) 8 | 9 | var retry = retryablehttp.NewClient() 10 | var client = resty.NewWithClient(retry.StandardClient()) 11 | 12 | func main() { 13 | retry.Backoff = retryablehttp.DefaultBackoff 14 | retry.RetryMax = 8 15 | plugin := rpc.NewPlugin(highlightsCreator, documentsCreator) 16 | plugin.Serve() 17 | } 18 | 19 | func stringInSlice(a string, list []string) bool { 20 | for _, b := range list { 21 | if b == a { 22 | return true 23 | } 24 | } 25 | return false 26 | } 27 | -------------------------------------------------------------------------------- /website/public/icons/logs.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /plugins/salesforce/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: salesforce 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /queries/discord/who_is_the_first_user_to_join_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Who is the first user to join a server?" 3 | description = "Find the first user to join a specified Discord server." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "members", "joined"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title="Guild ID", type="string", description="The ID of the server to check", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | username, 18 | user_id, 19 | joined_at 20 | FROM 21 | discord_members 22 | WHERE 23 | guild_id = @guild_id 24 | ORDER BY 25 | joined_at ASC 26 | LIMIT 1; -------------------------------------------------------------------------------- /queries/discord/who_is_the_last_user_to_join_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Who is the last user to join a server?" 3 | description = "Get the most recent user to join a Discord server" 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "members", "recent"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title="Guild ID", type="string", description="The ID of the Discord server", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | user_id, 18 | username, 19 | joined_at 20 | FROM 21 | discord_members 22 | WHERE 23 | guild_id = @guild_id 24 | ORDER BY 25 | datetime(joined_at) DESC 26 | LIMIT 1; -------------------------------------------------------------------------------- /queries/file/find_the_files_that_match_a_specific_pattern.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Find files matching a specific pattern" 3 | description = "Retrieve a list of files that match a specific pattern in their names" 4 | 5 | plugins = ["file"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["file", "search", "pattern"] 10 | 11 | arguments = [ 12 | {title="pattern", display_title = "File name pattern", type="string", description="The pattern to search for in file names", regex=".*"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | path, 18 | file_name, 19 | file_type, 20 | size, 21 | last_modified, 22 | is_directory 23 | FROM 24 | file_search(@pattern); -------------------------------------------------------------------------------- /queries/git/how_many_commits_were_made_in_the_last_week.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many commits were made in the last week?" 3 | description = "Count the number of commits made in the last week in a Git repository." 4 | 5 | plugins = ["git"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["git", "commits", "statistics"] 10 | 11 | arguments = [ 12 | {title="repository", display_title = "Repository Path", type="string", description="The path to the local or remote Git repository", regex=".*"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | COUNT(*) AS commit_count 18 | FROM 19 | git_commits(@repository) 20 | WHERE 21 | DATE(author_date) >= DATE('now', '-7 days'); -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | As Anyquery is in active development and not yet in a stable release, don't expect any LTS versions. 6 | The only supported version is the last one, and users are expected to update their software to the latest version. 7 | 8 | ## Reporting a Vulnerability 9 | 10 | To report a vulnerability, please send an email to [contact@anyquery.dev](mailto:contact@anyquery.dev). 11 | Never open an issue for it. 12 | 13 | Please don't expect any bounty as Anyquery has an annual budget of $10 (for the domain name). 14 | I would love to provide some but Anyquery is a small open-source project without any funding. 15 | -------------------------------------------------------------------------------- /plugins/salesforce_custom/.goreleaser.yaml: -------------------------------------------------------------------------------- 1 | 2 | version: 2 3 | 4 | before: 5 | hooks: 6 | # You may remove this if you don't use go modules. 7 | - go mod tidy 8 | 9 | builds: 10 | - env: 11 | - CGO_ENABLED=0 12 | goos: 13 | - linux 14 | - windows 15 | - darwin 16 | binary: salesforce_custom 17 | id: anyquery 18 | ldflags: "-s -w" 19 | flags: # To ensure reproducible builds 20 | - -trimpath 21 | 22 | goarch: 23 | - amd64 24 | - arm64 25 | 26 | archives: 27 | - format: binary 28 | 29 | changelog: 30 | sort: asc 31 | filters: 32 | exclude: 33 | - "^docs:" 34 | - "^test:" 35 | -------------------------------------------------------------------------------- /queries/system/how_many_instances_of_a_process_are_running_on_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many instances of a process are running on the system?" 3 | description = "Count the number of instances of a specific process running on the system" 4 | plugins = ["system"] 5 | author = "julien040" 6 | tags = ["system", "process", "count"] 7 | arguments = [ 8 | {title="process_name", display_title = "Process Name", type="string", description="The name of the process to count instances for", regex="^[a-zA-Z0-9_-]+$"} 9 | ] 10 | */ 11 | 12 | SELECT 13 | count(*) as instance_count 14 | FROM 15 | system_processes 16 | WHERE 17 | LOWER(name) = LOWER(@process_name); -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_tool_generate-doc.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery tool generate-doc 3 | description: Learn how to use the anyquery tool generate-doc command in Anyquery. 4 | --- 5 | 6 | Generate the markdown documentation of the CLI 7 | 8 | ```bash 9 | anyquery tool generate-doc [dir] [flags] 10 | ``` 11 | 12 | ### Examples 13 | 14 | ```bash 15 | # Generate the doc in the docs directory 16 | anyquery tool generate-doc docs 17 | ``` 18 | 19 | ### Options 20 | 21 | ```bash 22 | -h, --help help for generate-doc 23 | ``` 24 | 25 | ### SEE ALSO 26 | 27 | * [anyquery tool](../anyquery_tool) - Tools to help you with using anyquery 28 | -------------------------------------------------------------------------------- /plugins/notion/database_delete.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | 7 | "github.com/jomei/notionapi" 8 | ) 9 | 10 | func (t *table) Delete(primaryKeys []interface{}) error { 11 | for _, pk := range primaryKeys { 12 | primaryKey, ok := pk.(string) 13 | if !ok { 14 | return fmt.Errorf("invalid page id: %v", pk) 15 | } 16 | 17 | _, err := t.client.Page.Update(context.Background(), notionapi.PageID(primaryKey), ¬ionapi.PageUpdateRequest{ 18 | Archived: true, 19 | Properties: map[string]notionapi.Property{}, 20 | }) 21 | if err != nil { 22 | return err 23 | } 24 | } 25 | 26 | clearCache(t.cacheDB) 27 | return nil 28 | } 29 | -------------------------------------------------------------------------------- /queries/discord/what-s_the_last_message_sent_in_a_channel.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What's the last message sent in a channel?" 3 | description = "Retrieve the most recent message sent in a specific Discord channel." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "messages", "recent"] 10 | 11 | arguments = [ 12 | {title="channel_id", display_title="Channel ID", type="string", description="The ID of the channel to fetch the last message from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | * 18 | FROM 19 | discord_messages 20 | WHERE 21 | channel_id = @channel_id 22 | ORDER BY 23 | created_at DESC 24 | LIMIT 25 | 1; -------------------------------------------------------------------------------- /plugins/sharedObject/asg017/sqlite-url/manifest.toml: -------------------------------------------------------------------------------- 1 | 2 | name = "@asg017/sqlite-url" 3 | displayName = "sqlite-url" 4 | version = "0.1.1" 5 | description = "A SQLite extension for parsing, generating, and querying URLs and query strings" 6 | author = "asg017" 7 | license = "MIT" 8 | repository = "urls://github.com/asg017/sqlite-url" 9 | homepage = "urls://github.com/asg017/sqlite-url" 10 | type = "sharedObject" 11 | minimumAnyqueryVersion = "0.0.1" 12 | 13 | [[file]] 14 | platform = "linux/amd64" 15 | directory = "linux-amd64" 16 | executablePath = "url0.so" 17 | 18 | [[file]] 19 | platform = "darwin/amd64" 20 | directory = "darwin-amd64" 21 | executablePath = "url0.dylib" 22 | 23 | -------------------------------------------------------------------------------- /queries/click_up/how_many_tasks_exist_per_status_in_a_specific_list.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many tasks exist per status in a specific list?" 3 | description = "Count the number of tasks per status in a given list" 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "tasks", "status", "count"] 10 | 11 | arguments = [ 12 | {title="list_id", display_title = "List ID", type="string", description="The ID of the list to query for tasks", regex="^[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | status, 18 | COUNT(*) AS task_count 19 | FROM 20 | clickup_tasks 21 | WHERE 22 | list_id = @list_id 23 | GROUP BY 24 | status; -------------------------------------------------------------------------------- /plugins/safari/scripts/listTabs.js: -------------------------------------------------------------------------------- 1 | const app = Application.currentApplication(); 2 | app.includeStandardAdditions = true; 3 | const safari = Application("Safari"); 4 | 5 | const windows = safari.windows(); 6 | 7 | for (const window of windows) { 8 | const windowName = window.name(); 9 | const windowIndex = window.index(); 10 | const tabs = window.tabs(); 11 | if (!tabs) { 12 | continue; 13 | } 14 | for (const tab of tabs) { 15 | console.log( 16 | JSON.stringify({ 17 | title: tab.name(), 18 | url: tab.url(), 19 | windowName: windowName, 20 | windowIndex: windowIndex, 21 | index: tab.index(), 22 | visible: tab.visible(), 23 | }), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /queries/discord/what-s_the_first_message_sent_in_a_channel.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What's the first message sent in a channel?" 3 | description = "Retrieve the first message that was sent in a specified Discord channel." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "messages", "channel"] 10 | 11 | arguments = [ 12 | {title="channel_id", display_title = "Channel ID", type="string", description="The ID of the channel to fetch the first message from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | * 18 | FROM 19 | discord_messages 20 | WHERE 21 | channel_id = @channel_id 22 | ORDER BY 23 | datetime(created_at) ASC 24 | LIMIT 1; -------------------------------------------------------------------------------- /queries/system/which_process_has_opened_a_particular_file.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which process has opened a particular file?" 3 | description = "Find the process that has opened a specific file" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "process", "files"] 10 | 11 | arguments = [ 12 | {title="file_path", display_title="File Path", type="string", description="The full path of the file to search for", regex="^.*$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | p.pid, 18 | p.name, 19 | p.exe, 20 | p.cmdline 21 | FROM 22 | system_processes p 23 | JOIN system_process_files f ON p.pid = f.pid 24 | WHERE 25 | LOWER(f.path) = LOWER(@file_path); -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_alias_delete.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery alias delete 3 | description: Learn how to use the anyquery alias delete command in Anyquery. 4 | --- 5 | 6 | Delete an alias 7 | 8 | ```bash 9 | anyquery alias delete [alias] [flags] 10 | ``` 11 | 12 | ### Examples 13 | 14 | ```bash 15 | anyquery alias delete myalias 16 | ``` 17 | 18 | ### Options 19 | 20 | ```bash 21 | -h, --help help for delete 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ```bash 27 | -c, --config string Path to the configuration database 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [anyquery alias](../anyquery_alias) - Manage the aliases 33 | -------------------------------------------------------------------------------- /website/public/icons/ycombinator.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /namespace/collations.go: -------------------------------------------------------------------------------- 1 | package namespace 2 | 3 | import ( 4 | "github.com/Masterminds/semver/v3" 5 | "github.com/mattn/go-sqlite3" 6 | ) 7 | 8 | func registerCollations(conn *sqlite3.SQLiteConn) { 9 | var collations = []struct { 10 | name string 11 | cmp func(string, string) int 12 | }{ 13 | {"semver", semverCollation}, 14 | } 15 | 16 | for _, c := range collations { 17 | conn.RegisterCollation(c.name, c.cmp) 18 | } 19 | } 20 | 21 | func semverCollation(a, b string) int { 22 | semverA, err := semver.NewVersion(a) 23 | if err != nil { 24 | return -1 25 | } 26 | 27 | semverB, err := semver.NewVersion(b) 28 | if err != nil { 29 | return 1 30 | } 31 | 32 | return semverA.Compare(semverB) 33 | } 34 | -------------------------------------------------------------------------------- /queries/github/github-stars-per-day.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "GitHub Stars per day" 3 | description = "Discover the number of stars per day for a given repository ordered by date (recent first)" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "stars", "statistics"] 10 | 11 | arguments = [ 12 | {title="repository", display_title = "Repository name (owner/repo format)", type="string", description="The repository to fetch stars from (owner/repo)", regex="^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"} 13 | ] 14 | 15 | */ 16 | SELECT 17 | date (starred_at) AS day, 18 | count(*) as stars 19 | FROM 20 | github_stargazers_from_repository(@repository) 21 | GROUP BY 22 | DAY 23 | ORDER BY 24 | day DESC; -------------------------------------------------------------------------------- /queries/discord/which_invite_has_been_used_the_most_in_a_server.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which invite has been used the most in a server?" 3 | description = "Find the most used invite code in a Discord server." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "invites", "statistics"] 10 | 11 | arguments = [ 12 | {title="guild_id", display_title = "Server ID", type="string", description="The ID of the server to fetch invites from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | invide_code, 18 | MAX(uses) as uses_count 19 | FROM 20 | discord_invites 21 | WHERE 22 | guild_id = @guild_id 23 | GROUP BY 24 | invide_code 25 | ORDER BY 26 | uses_count DESC 27 | LIMIT 28 | 1; -------------------------------------------------------------------------------- /queries/github/biggest-starred-repo-per-user-github.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What are the 10 most-starred repositories of a user?" 3 | description = "Get the 10 repositories with the most stars of a user" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "stars", "repositories"] 10 | 11 | arguments = [ 12 | {title="user", display_title = "GitHub Username", type="string", description="The login username", regex="^[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | SELECT 16 | full_name as repository, 17 | stargazers_count as stars, 18 | forks_count as forks, 19 | html_url as url 20 | FROM 21 | github_repositories_from_user (@user) 22 | ORDER BY 23 | stargazers_count DESC 24 | LIMIT 25 | 10; -------------------------------------------------------------------------------- /queries/github/list_all_the_branches_of_a_github_repository.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all the branches of a GitHub repository" 3 | description = "Get a list of all branches for a specific GitHub repository" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "branches", "repository"] 10 | 11 | arguments = [ 12 | {title="repository", display_title = "Repository name (owner/repo format)", type="string", description="The repository to fetch branches from (owner/repo)", regex="^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | name, 18 | commit_sha, 19 | protected, 20 | url 21 | FROM 22 | github_branches_from_repository 23 | WHERE 24 | repository = @repository; -------------------------------------------------------------------------------- /queries/system/what_are_the_most_cpu_demanding_processes_on_the_system.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What are the most CPU demanding processes on the system?" 3 | description = "Get the processes that are using the most CPU on the system" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "cpu", "processes", "statistics"] 10 | 11 | arguments = [ 12 | {title="limit", display_title = "Limit", type="int", description="The number of processes to return", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | p.pid, 18 | p.name, 19 | s.cpu_percent 20 | FROM 21 | system_processes p 22 | JOIN system_process_stats s ON p.pid = s.pid 23 | ORDER BY 24 | s.cpu_percent DESC 25 | LIMIT 26 | @limit; -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_connection_list.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery connection list 3 | description: Learn how to use the anyquery connection list command in Anyquery. 4 | --- 5 | 6 | List the connections 7 | 8 | ```bash 9 | anyquery connection list [flags] 10 | ``` 11 | 12 | ### Options 13 | 14 | ```bash 15 | --csv Output format as CSV 16 | --format string Output format (pretty, json, csv, plain) 17 | -h, --help help for list 18 | --json Output format as JSON 19 | --plain Output format as plain text 20 | ``` 21 | 22 | ### SEE ALSO 23 | 24 | * [anyquery connection](../anyquery_connection) - Manage connections to other databases 25 | -------------------------------------------------------------------------------- /queries/click_up/which_tasks_have_a_specific_tag.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which tasks have a specific tag?" 3 | description = "Retrieve tasks that have a specific tag in a given list" 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "tasks", "tags", "filters"] 10 | 11 | arguments = [ 12 | {title="list_id", display_title = "List ID", type="string", description="The ID of the list to fetch tasks from", regex="^[0-9]+$"}, 13 | {title="tag", display_title = "Tag", type="string", description="The tag to filter tasks by", regex="^[a-zA-Z0-9_]+$"} 14 | ] 15 | */ 16 | 17 | SELECT 18 | * 19 | FROM 20 | clickup_tasks 21 | WHERE 22 | list_id = @list_id 23 | AND LOWER(tags) LIKE CONCAT('%', LOWER(@tag), '%'); -------------------------------------------------------------------------------- /queries/click_up/list_all_subtasks_of_a_specific_task.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all subtasks of a specific task" 3 | description = "Retrieve all subtasks of a given task ID." 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "subtasks", "tasks"] 10 | 11 | arguments = [ 12 | {title="task_id", display_title = "Task ID", type="string", description="The ID of the parent task to retrieve subtasks for.", regex="^[a-zA-Z0-9_-]+$"}, 13 | {title="list_id", display_title = "List ID", type="string", description="The ID of the list containing the task.", regex="^[a-zA-Z0-9_-]+$"} 14 | ] 15 | */ 16 | 17 | SELECT 18 | * 19 | FROM 20 | clickup_tasks 21 | WHERE 22 | parent = @task_id 23 | AND list_id = @list_id; -------------------------------------------------------------------------------- /queries/discord/who_sent_the_most_messages_in_a_channel.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Who sent the most messages in a channel?" 3 | description = "Find the user who sent the most messages in a specific Discord channel." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "messages", "statistics"] 10 | 11 | arguments = [ 12 | {title="channel_id", display_title = "Channel ID", type="string", description="The ID of the channel to fetch messages from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | username, 18 | COUNT(*) as message_count 19 | FROM 20 | discord_messages 21 | WHERE 22 | channel_id = @channel_id 23 | GROUP BY 24 | username 25 | ORDER BY 26 | message_count DESC 27 | LIMIT 28 | 1; -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_registry_remove.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery registry remove 3 | description: Learn how to use the anyquery registry remove command in Anyquery. 4 | --- 5 | 6 | Remove a registry 7 | 8 | ```bash 9 | anyquery registry remove [flags] 10 | ``` 11 | 12 | ### Examples 13 | 14 | ```bash 15 | anyquery registry remove internal_reg 16 | ``` 17 | 18 | ### Options 19 | 20 | ```bash 21 | -h, --help help for remove 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ```bash 27 | -c, --config string Path to the configuration database 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [anyquery registry](../anyquery_registry) - List the registries where plugins can be downloaded 33 | -------------------------------------------------------------------------------- /controller/config/model/db.go: -------------------------------------------------------------------------------- 1 | // Code generated by sqlc. DO NOT EDIT. 2 | // versions: 3 | // sqlc v1.26.0 4 | 5 | package model 6 | 7 | import ( 8 | "context" 9 | "database/sql" 10 | ) 11 | 12 | type DBTX interface { 13 | ExecContext(context.Context, string, ...interface{}) (sql.Result, error) 14 | PrepareContext(context.Context, string) (*sql.Stmt, error) 15 | QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) 16 | QueryRowContext(context.Context, string, ...interface{}) *sql.Row 17 | } 18 | 19 | func New(db DBTX) *Queries { 20 | return &Queries{db: db} 21 | } 22 | 23 | type Queries struct { 24 | db DBTX 25 | } 26 | 27 | func (q *Queries) WithTx(tx *sql.Tx) *Queries { 28 | return &Queries{ 29 | db: tx, 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /queries/reminders/set_to_complete_all_reminders_that_contain_a_particular_word.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Set reminders containing a word as complete" 3 | description = "Mark as complete all reminders that contain a specific word in their name or body" 4 | 5 | plugins = ["reminders"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["reminders", "update", "completion"] 10 | 11 | arguments = [ 12 | {title="word", display_title = "Word to search for", type="string", description="The word to search for in the name or body of the reminders", regex="^[a-zA-Z0-9_-]+$"} 13 | ]*/ 14 | 15 | UPDATE 16 | reminders_items 17 | SET 18 | completed = 1 19 | WHERE 20 | LOWER(name) LIKE '%' || LOWER(@word) || '%' 21 | OR LOWER(body) LIKE '%' || LOWER(@word) || '%'; -------------------------------------------------------------------------------- /queries/github/most_starred_gist_of_a_github_user.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Most starred gist of a GitHub user" 3 | description = "Find the gist with the most stars for a given GitHub user." 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "gists", "stars", "statistics"] 10 | 11 | arguments = [ 12 | {title="username", display_title = "GitHub Username", type="string", description="The GitHub username to fetch gists from", regex="^[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | id, 18 | gist_url, 19 | by, 20 | description, 21 | comments, 22 | created_at, 23 | updated_at 24 | FROM 25 | github_gists_from_user 26 | WHERE 27 | user = @username 28 | ORDER BY 29 | comments DESC 30 | LIMIT 31 | 1; -------------------------------------------------------------------------------- /plugins/airtable/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "sync" 5 | 6 | "github.com/julien040/anyquery/rpc" 7 | "go.uber.org/ratelimit" 8 | ) 9 | 10 | // We need tableCreator to be part of a bigger struct 11 | // so that we can have a global rate limiter for all connections 12 | // 13 | // This is due to Airtable's rate limiting policy of 5 requests per second 14 | // for each base (and not per token) 15 | type tablePlugin struct { 16 | mapMutex sync.Mutex 17 | rateLimiter map[string]ratelimit.Limiter 18 | } 19 | 20 | func main() { 21 | tablePluginInstance := &tablePlugin{ 22 | rateLimiter: make(map[string]ratelimit.Limiter), 23 | mapMutex: sync.Mutex{}, 24 | } 25 | plugin := rpc.NewPlugin(tablePluginInstance.tableCreator) 26 | plugin.Serve() 27 | } 28 | -------------------------------------------------------------------------------- /plugins/sharedObject/asg017/sqlite-vss/manifest.toml: -------------------------------------------------------------------------------- 1 | 2 | name = "@asg017/sqlite-vss" 3 | displayName = "sqlite-vss" 4 | version = "0.1.2" 5 | description = "Efficient vector search, based on Faiss" 6 | author = "asg017" 7 | license = "MIT" 8 | repository = "https://github.com/asg017/sqlite-vss" 9 | homepage = "https://github.com/asg017/sqlite-vss" 10 | type = "sharedObject" 11 | minimumAnyqueryVersion = "0.0.1" 12 | 13 | [[file]] 14 | platform = "linux/amd64" 15 | directory = "linux-amd64" 16 | executablePath = "vss0.so" 17 | 18 | [[file]] 19 | platform = "darwin/amd64" 20 | directory = "darwin-amd64" 21 | executablePath = "vss0.dylib" 22 | 23 | [[file]] 24 | platform = "darwin/arm64" 25 | directory = "darwin-arm64" 26 | executablePath = "vss0.dylib" 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /queries/git/which_author_has_the_most_lines_of_code_added_in_the_repository.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which author has the most lines of code added in the repository?" 3 | description = "Find the author who has added the most lines of code in the repository" 4 | 5 | plugins = ["git"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["git", "author", "statistics"] 10 | 11 | arguments = [ 12 | {title = "repository", display_title = "Repository path or URL", type = "string", description = "The path or URL of the repository to analyze", regex = "^.+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | author_name, 18 | SUM(addition) as total_additions 19 | FROM 20 | git_commits_diff(@repository) 21 | GROUP BY 22 | author_name 23 | ORDER BY 24 | total_additions DESC 25 | LIMIT 26 | 1; -------------------------------------------------------------------------------- /queries/system/which_process_binds_to_a_particular_port.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which process binds to a particular port?" 3 | description = "Find the process that is binding to a specific network port" 4 | 5 | plugins = ["system"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["system", "process", "network"] 10 | 11 | arguments = [ 12 | {title="port", display_title="Port number", type="int", description="The port number to check which process is binding to it", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | SELECT 16 | p.pid, 17 | p.name, 18 | p.cmdline, 19 | n.local_address, 20 | n.remote_address, 21 | n.status 22 | FROM 23 | system_processes p 24 | JOIN system_process_networks n ON p.pid = n.pid 25 | WHERE 26 | json_extract (n.local_address, '$.port') = @port -------------------------------------------------------------------------------- /website/public/icons/git.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /website/public/icons/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_registry_add.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery registry add 3 | description: Learn how to use the anyquery registry add command in Anyquery. 4 | --- 5 | 6 | Add a new registry 7 | 8 | ```bash 9 | anyquery registry add [name] [url] [flags] 10 | ``` 11 | 12 | ### Examples 13 | 14 | ```bash 15 | anyquery registry add internal_reg https://registry.anyquery.dev/v0/registry/ 16 | ``` 17 | 18 | ### Options 19 | 20 | ```bash 21 | -h, --help help for add 22 | ``` 23 | 24 | ### Options inherited from parent commands 25 | 26 | ```bash 27 | -c, --config string Path to the configuration database 28 | ``` 29 | 30 | ### SEE ALSO 31 | 32 | * [anyquery registry](../anyquery_registry) - List the registries where plugins can be downloaded 33 | -------------------------------------------------------------------------------- /queries/click_up/list_all_tasks_assigned_to_a_specific_user_by_userid.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all tasks assigned to a specific user" 3 | description = "Retrieve all tasks that are assigned to a specific user using their user ID." 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "tasks", "user"] 10 | 11 | arguments = [ 12 | {title="list_id", display_title = "List ID", type="string", description="The ID of the list to fetch tasks from", regex="^[0-9]+$"}, 13 | {title="user_id", display_title = "User ID", type="string", description="The ID of the user to filter tasks by", regex="^[0-9]+$"} 14 | ] 15 | */ 16 | 17 | SELECT 18 | * 19 | FROM 20 | clickup_tasks 21 | WHERE 22 | list_id = @list_id 23 | AND assignees LIKE CONCAT('%', @user_id, '%'); -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_tool.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery tool 3 | description: Learn how to use the anyquery tool command in Anyquery. 4 | --- 5 | 6 | Tools to help you with using anyquery 7 | 8 | ### Options 9 | 10 | ```bash 11 | -h, --help help for tool 12 | ``` 13 | 14 | ### SEE ALSO 15 | 16 | * [anyquery](../anyquery) - A tool to query any data source 17 | * [anyquery tool dev](../anyquery_tool_dev) - Development tools 18 | * [anyquery tool generate-doc](../anyquery_tool_generate-doc) - Generate the markdown documentation of the CLI 19 | * [anyquery tool hashdir](../anyquery_tool_hashdir) - Hash a directory 20 | * [anyquery tool mysql-password](../anyquery_tool_mysql-password) - Hash a password from stdin to be used in an authentification file 21 | -------------------------------------------------------------------------------- /plugins/sharedObject/nalgeon/sqlean/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | // Enable latest features 4 | "lib": ["ESNext", "DOM"], 5 | "target": "ESNext", 6 | "module": "ESNext", 7 | "moduleDetection": "force", 8 | "jsx": "react-jsx", 9 | "allowJs": true, 10 | 11 | // Bundler mode 12 | "moduleResolution": "bundler", 13 | "allowImportingTsExtensions": true, 14 | "verbatimModuleSyntax": true, 15 | "noEmit": true, 16 | 17 | // Best practices 18 | "strict": true, 19 | "skipLibCheck": true, 20 | "noFallthroughCasesInSwitch": true, 21 | 22 | // Some stricter flags (disabled by default) 23 | "noUnusedLocals": false, 24 | "noUnusedParameters": false, 25 | "noPropertyAccessFromIndexSignature": false 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /queries/click_up/list_all_lists_in_a_specific_space.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all lists in a specific space" 3 | description = "Retrieve all the lists within a given space in ClickUp." 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "lists", "space"] 10 | 11 | arguments = [ 12 | {title="space_id", display_title = "Space ID", type="string", description="The ID of the space to retrieve lists from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | WITH folder_lists AS ( 17 | SELECT folder_id, name AS folder_name 18 | FROM clickup_folders 19 | WHERE space_id = @space_id 20 | ) 21 | SELECT 22 | fl.folder_name, 23 | l.name AS list_name 24 | FROM 25 | folder_lists fl 26 | JOIN 27 | clickup_lists l 28 | ON 29 | fl.folder_id = l.folder_id; -------------------------------------------------------------------------------- /queries/discord/how_many_messages_contain_a_particular_word.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How many messages contain a particular word?" 3 | description = "Count the number of messages in a Discord channel that contain a specific word." 4 | 5 | plugins = ["discord"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["discord", "messages", "count"] 10 | 11 | arguments = [ 12 | {title="channel_id", display_title = "Channel ID", type="string", description="The ID of the channel to search messages in.", regex="^[0-9]+$"}, 13 | {title="word", display_title = "Word", type="string", description="The word to search for in messages.", regex="^\\S+$"} 14 | ] 15 | */ 16 | 17 | SELECT COUNT(*) 18 | FROM discord_messages 19 | WHERE channel_id = @channel_id 20 | AND LOWER(content) LIKE LOWER(CONCAT('%', @word, '%')); -------------------------------------------------------------------------------- /queries/github/biggest-commit-author-github.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "What are the 10 biggest commit authors on GitHub?" 3 | description = "Get the 10 users with the most commits on GitHub for a given repository" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "commits", "statistics"] 10 | 11 | arguments = [ 12 | {title="repository", display_title = "Repository name (owner/repo format)", type="string", description="The repository to fetch stars from (owner/repo)", regex="^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | SELECT 16 | author, 17 | author_email, 18 | count(*) as commits 19 | FROM 20 | github_commits_from_repository (@repository) 21 | GROUP BY 22 | author, 23 | author_email 24 | ORDER BY 25 | commits DESC 26 | LIMIT 27 | 10; -------------------------------------------------------------------------------- /queries/github/list_all_the_contributors_of_a_github_repository.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all the contributors of a GitHub repository." 3 | description = "Retrieve a list of all the contributors for a specified GitHub repository." 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "contributors", "repository"] 10 | 11 | arguments = [ 12 | {title="repository", display_title="Repository Name (owner/repo format)", type="string", description="The GitHub repository to fetch contributors from (owner/repo)", regex="^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | name, 18 | contributor_url, 19 | additions, 20 | deletions, 21 | commits 22 | FROM 23 | github_contributors_from_repository 24 | WHERE 25 | repository = @repository; -------------------------------------------------------------------------------- /_examples/drizzle/print.ts: -------------------------------------------------------------------------------- 1 | import { drizzle } from "drizzle-orm/mysql2"; 2 | import mysql from "mysql2/promise"; 3 | import * as schema from "./drizzle/schema.ts"; 4 | import { sql } from "drizzle-orm"; 5 | 6 | const connection = await mysql.createConnection({ 7 | host: "127.0.0.1", 8 | port: 8070, 9 | database: "main", 10 | }); 11 | 12 | const db = drizzle(connection, { schema: schema, mode: "default" }); 13 | 14 | const result = await db 15 | .select() 16 | .from(schema.git_commits) 17 | .where(sql`repository = 'https://github.com/drizzle-team/drizzle-orm.git'`); 18 | 19 | for (const row of result) { 20 | console.log( 21 | `On ${row.author_date}, ${row.author_name} committed ${row.message}` 22 | ); 23 | } 24 | 25 | console.log("Found", result.length, "commits"); 26 | -------------------------------------------------------------------------------- /queries/click_up/list_all_documents_in_a_specific_folder.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List all documents in a specific folder" 3 | description = "Get all documents within a specific folder by providing the folder ID" 4 | 5 | plugins = ["clickup"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["clickup", "documents", "folder"] 10 | 11 | arguments = [ 12 | {title="folder_id", display_title = "Folder ID", type="string", description="The ID of the folder to fetch documents from", regex="^[0-9]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | d.doc_id, 18 | d.created_at, 19 | d.updated_at, 20 | d.name, 21 | d.parent_id, 22 | d.creator_id, 23 | d.deleted 24 | FROM 25 | clickup_docs d, 26 | clickup_folders f 27 | WHERE 28 | f.folder_id = @folder_id 29 | AND 30 | d.parent_id = f.folder_id; -------------------------------------------------------------------------------- /queries/file/how_often_are_files_modified_in_a_directory_per_month_in_gb.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "How often are files modified in a directory? (per month in GB)" 3 | description = "Get the total file size in GB of files modified per month in a directory" 4 | 5 | plugins = ["file"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["file", "modification", "size", "monthly"] 10 | 11 | arguments = [ 12 | {title="directory_path", display_title = "Directory Path", type="string", description="The path to the directory to analyze", regex=".*"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | strftime('%Y-%m', last_modified) as month, 18 | ROUND(SUM(size) / (1024 * 1024 * 1024), 2) as total_size_gb 19 | FROM 20 | file_list 21 | WHERE 22 | directory = @directory_path 23 | GROUP BY 24 | month 25 | ORDER BY 26 | month; -------------------------------------------------------------------------------- /queries/git/which_files_are_the_most_frequently_modified_in_the_repository.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which files are the most frequently modified in the repository?" 3 | description = "Find the files that have been modified the most number of times in a given Git repository" 4 | 5 | plugins = ["git"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["git", "files", "modifications"] 10 | 11 | arguments = [ 12 | {title="repository_path", display_title = "Repository Path", type="string", description="The path to the Git repository", regex=".*"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | file_name, 18 | COUNT(*) as modifications 19 | FROM 20 | git_commits_diff 21 | WHERE 22 | repository_path = @repository_path 23 | GROUP BY 24 | file_name 25 | ORDER BY 26 | modifications DESC 27 | LIMIT 28 | 10; -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_alias_add.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery alias add 3 | description: Learn how to use the anyquery alias add command in Anyquery. 4 | --- 5 | 6 | Add an alias 7 | 8 | ### Synopsis 9 | 10 | Add an alias. 11 | The alias name must be unique and not already used by a table. 12 | 13 | ```bash 14 | anyquery alias add [alias] [table] [flags] 15 | ``` 16 | 17 | ### Examples 18 | 19 | ```bash 20 | anyquery alias add myalias mytable 21 | ``` 22 | 23 | ### Options 24 | 25 | ```bash 26 | -h, --help help for add 27 | ``` 28 | 29 | ### Options inherited from parent commands 30 | 31 | ```bash 32 | -c, --config string Path to the configuration database 33 | ``` 34 | 35 | ### SEE ALSO 36 | 37 | * [anyquery alias](../anyquery_alias) - Manage the aliases 38 | -------------------------------------------------------------------------------- /plugins/brave/scripts/listTabs.js: -------------------------------------------------------------------------------- 1 | const app = Application.currentApplication(); 2 | app.includeStandardAdditions = true; 3 | const chromium = Application("Brave"); 4 | 5 | const windows = chromium.windows(); 6 | 7 | for (const window of windows) { 8 | const windowName = window.name(); 9 | const windowID = window.id(); 10 | const tabs = window.tabs(); 11 | if (!tabs) { 12 | continue; 13 | } 14 | const activeTab = window.activeTab(); 15 | const activeTabId = activeTab.id(); 16 | 17 | for (const tab of tabs) { 18 | console.log( 19 | JSON.stringify({ 20 | title: tab.name(), 21 | url: tab.url(), 22 | windowName: windowName, 23 | windowID: windowID, 24 | id: tab.id(), 25 | loading: tab.loading(), 26 | active: tab.id() === activeTabId, 27 | }), 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /queries/github/who_is_the_biggest_committer_on_a_github_repository.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Who is the biggest committer on a GitHub repository?" 3 | description = "Get the user with the most commits on a GitHub repository" 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "commits", "statistics"] 10 | 11 | arguments = [ 12 | {title="repository", display_title = "Repository name (owner/repo format)", type="string", description="The repository to fetch commits from (owner/repo)", regex="^[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+$"} 13 | ]*/ 14 | 15 | SELECT 16 | author, 17 | author_email, 18 | count(*) as commits 19 | FROM 20 | github_commits_from_repository(@repository) 21 | GROUP BY 22 | author, 23 | author_email 24 | ORDER BY 25 | commits DESC 26 | LIMIT 27 | 1; -------------------------------------------------------------------------------- /plugins/edge/scripts/listTabs.js: -------------------------------------------------------------------------------- 1 | const app = Application.currentApplication(); 2 | app.includeStandardAdditions = true; 3 | const chromium = Application("Microsoft Edge"); 4 | 5 | const windows = chromium.windows(); 6 | 7 | for (const window of windows) { 8 | const windowName = window.name(); 9 | const windowID = window.id(); 10 | const tabs = window.tabs(); 11 | if (!tabs) { 12 | continue; 13 | } 14 | const activeTab = window.activeTab(); 15 | const activeTabId = activeTab.id(); 16 | 17 | for (const tab of tabs) { 18 | console.log( 19 | JSON.stringify({ 20 | title: tab.name(), 21 | url: tab.url(), 22 | windowName: windowName, 23 | windowID: windowID, 24 | id: tab.id(), 25 | loading: tab.loading(), 26 | active: tab.id() === activeTabId, 27 | }), 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /queries/github/list_my_github_starred_repositories_for_a_particular_language.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "List my GitHub starred repositories for a particular language" 3 | description = "Fetch the list of repositories starred by the authenticated user that are written in a specified programming language." 4 | 5 | plugins = ["github"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["github", "stars", "repositories"] 10 | 11 | arguments = [ 12 | {title="language", display_title="Programming Language", type="string", description="The programming language to filter repositories by", regex="^[a-zA-Z]+$"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | full_name, 18 | description, 19 | html_url, 20 | language, 21 | stargazers_count 22 | FROM 23 | github_my_stars 24 | WHERE 25 | LOWER(language) = LOWER(@language); -------------------------------------------------------------------------------- /website/src/content/docs/docs/database/scylladb.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ScyllaDB 3 | description: Learn how to connect ScyllaDB tables to Anyquery. 4 | 5 | --- 6 | 7 | ScyllaDB 8 | 9 | Anyquery is able to run queries from Cassandra-compatible databases, such as ScyllaDB. 10 | 11 | ## Connection 12 | 13 | To connect a ScyllaDB database to Anyquery, you need to provide the connection string. It has the following format: 14 | 15 | ```txt 16 | cassandra://user:password@host:port/database?option1=value1&option2=value2 17 | ``` 18 | 19 | Then, create a new connection using the following command: 20 | 21 | ```bash 22 | anyquery connection add 23 | ``` 24 | 25 | Refer to the [Cassandra guide](/docs/database/cassandra) for more information about the different parameters. 26 | -------------------------------------------------------------------------------- /plugins/chrome/scripts/listTabs.js: -------------------------------------------------------------------------------- 1 | const app = Application.currentApplication(); 2 | app.includeStandardAdditions = true; 3 | const chromium = Application("Google Chrome"); 4 | 5 | const windows = chromium.windows(); 6 | 7 | for (const window of windows) { 8 | const windowName = window.name(); 9 | const windowID = window.id(); 10 | const tabs = window.tabs(); 11 | if (!tabs) { 12 | continue; 13 | } 14 | const activeTab = window.activeTab(); 15 | const activeTabId = activeTab.id(); 16 | 17 | for (const tab of tabs) { 18 | console.log( 19 | JSON.stringify({ 20 | title: tab.name(), 21 | url: tab.url(), 22 | windowName: windowName, 23 | windowID: windowID, 24 | id: tab.id(), 25 | loading: tab.loading(), 26 | active: tab.id() === activeTabId, 27 | }), 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /plugins/sharedObject/asg017/sqlite-lines/manifest.toml: -------------------------------------------------------------------------------- 1 | 2 | name = "@asg017/sqlite-lines" 3 | displayName = "sqlite-lines" 4 | version = "0.2.2" 5 | description = "A SQLite extension for reading large files line-by-line (NDJSON, logs, txt, etc.)" 6 | author = "asg017" 7 | license = "MIT" 8 | repository = "https://github.com/asg017/sqlite-lines" 9 | homepage = "https://github.com/asg017/sqlite-lines" 10 | type = "sharedObject" 11 | minimumAnyqueryVersion = "0.0.1" 12 | 13 | [[file]] 14 | platform = "linux/amd64" 15 | directory = "linux-amd64" 16 | executablePath = "lines0.so" 17 | 18 | [[file]] 19 | platform = "darwin/amd64" 20 | directory = "darwin-amd64" 21 | executablePath = "lines0.dylib" 22 | 23 | [[file]] 24 | platform = "darwin/arm64" 25 | directory = "darwin-arm64" 26 | executablePath = "lines0.dylib" 27 | 28 | 29 | -------------------------------------------------------------------------------- /website/public/icons/google_tasks.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | -------------------------------------------------------------------------------- /queries/file/which_files_extension_are_the_most_common_in_a_directory.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Which file extensions are the most common in a directory?" 3 | description = "Get the most common file extensions in a given directory to understand the types of files it contains" 4 | 5 | plugins = ["file"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["file", "extensions", "statistics"] 10 | 11 | arguments = [ 12 | {title="directory_path", display_title = "Directory Path", type="string", description="The directory path to list files from", regex=".*"} 13 | ] 14 | */ 15 | 16 | SELECT 17 | SUBSTR(file_name, INSTR(file_name, '.') + 1) AS extension, 18 | COUNT(*) AS count 19 | FROM 20 | file_list(@directory_path) 21 | WHERE 22 | is_directory = 0 23 | GROUP BY 24 | extension 25 | ORDER BY 26 | count DESC 27 | LIMIT 25; -------------------------------------------------------------------------------- /website/src/content/recipes/sql-query-html-table.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Query an HTML table 3 | description: Learn how to run a SQL query on an HTML table from a website 4 | --- 5 | 6 | Anyquery is a SQL query engine that enables you to execute SQL queries on virtually anything, including HTML tables. In this recipe, we will run a SQL query on [diskprices.com](https://diskprices.com) to find the cheapest 12TB HDD. 7 | 8 | The `read_html` table function takes a URL and a CSS selector that points to an HTML table. The following query selects the cheapest 1TB SSD from [diskprices.com](https://diskprices.com) and outputs the result in JSON format: 9 | 10 | ```bash 11 | anyquery -q "SELECT * FROM read_html('https://diskprices.com', 'table') WHERE Technology = 'HDD' AND Capacity = '12 TB' ORDER BY Price LIMIT 1" --json 12 | ``` 13 | -------------------------------------------------------------------------------- /queries/discord/how_many_messages_were_sent_by_a_particular_user_in_a_channel.sql: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | title = "How many messages were sent by a particular user in a channel?" 4 | description = "Count the number of messages sent by a specific user in a particular channel on Discord." 5 | 6 | plugins = ["discord"] 7 | 8 | author = "julien040" 9 | 10 | tags = ["discord", "messages", "user", "count"] 11 | 12 | arguments = [ 13 | {title="channel_id", display_title = "Channel ID", type="string", description="The ID of the Discord channel", regex="^[0-9]+$"}, 14 | {title="user_id", display_title = "User ID", type="string", description="The ID of the user", regex="^[0-9]+$"} 15 | ] 16 | */ 17 | 18 | SELECT 19 | COUNT(*) AS message_count 20 | FROM 21 | discord_messages 22 | WHERE 23 | channel_id = @channel_id 24 | AND user_id = @user_id; -------------------------------------------------------------------------------- /queries/file/find_the_n_biggest_files_in_a_directory.sql: -------------------------------------------------------------------------------- 1 | /* 2 | title = "Find the n biggest files in a directory" 3 | description = "Get the n largest files by size in a specified directory" 4 | 5 | plugins = ["file"] 6 | 7 | author = "julien040" 8 | 9 | tags = ["files", "size", "directory", "biggest"] 10 | 11 | arguments = [ 12 | {title="directory", display_title = "Directory Path", type="string", description="The path of the directory to search for files", regex=".*"}, 13 | {title="limit", display_title = "Number of files to return", type="int", description="The number of largest files to return", regex="^[0-9]+$"} 14 | ] 15 | */ 16 | 17 | SELECT 18 | file_name, 19 | size, 20 | path 21 | FROM 22 | file_list(@directory) 23 | WHERE 24 | is_directory = 0 25 | ORDER BY 26 | size DESC 27 | LIMIT 28 | @limit; -------------------------------------------------------------------------------- /website/src/content/docs/docs/reference/Commands/anyquery_alias_list.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: anyquery alias list 3 | description: Learn how to use the anyquery alias list command in Anyquery. 4 | --- 5 | 6 | List the aliases 7 | 8 | ```bash 9 | anyquery alias list [flags] 10 | ``` 11 | 12 | ### Options 13 | 14 | ```bash 15 | --csv Output format as CSV 16 | --format string Output format (pretty, json, csv, plain) 17 | -h, --help help for list 18 | --json Output format as JSON 19 | --plain Output format as plain text 20 | ``` 21 | 22 | ### Options inherited from parent commands 23 | 24 | ```bash 25 | -c, --config string Path to the configuration database 26 | ``` 27 | 28 | ### SEE ALSO 29 | 30 | * [anyquery alias](../anyquery_alias) - Manage the aliases 31 | --------------------------------------------------------------------------------