├── .gitattributes ├── .husky ├── pre-commit └── commit-msg ├── .npmrc ├── packages ├── hoppscotch-common │ ├── public │ │ ├── CNAME │ │ ├── banner.png │ │ ├── icon.png │ │ ├── logo.png │ │ ├── favicon.ico │ │ ├── icons │ │ │ ├── pwa-16x16.png │ │ │ ├── pwa-32x32.png │ │ │ ├── pwa-128x128.png │ │ │ ├── pwa-192x192.png │ │ │ ├── pwa-256x256.png │ │ │ ├── pwa-512x512.png │ │ │ └── pwa-1024x1024.png │ │ ├── images │ │ │ ├── banner-dark.png │ │ │ ├── banner-light.png │ │ │ └── cover.svg │ │ ├── badge-dark.svg │ │ ├── badge-light.svg │ │ └── badge.svg │ ├── src │ │ ├── composables │ │ │ ├── head.ts │ │ │ ├── toast.ts │ │ │ ├── i18n.ts │ │ │ └── theming.ts │ │ ├── helpers │ │ │ ├── backend │ │ │ │ ├── gql │ │ │ │ │ ├── mutations │ │ │ │ │ │ ├── DeleteUser.graphql │ │ │ │ │ │ ├── LeaveTeam.graphql │ │ │ │ │ │ ├── DeleteTeam.graphql │ │ │ │ │ │ ├── DeleteShortcode.graphql │ │ │ │ │ │ ├── DeleteMockServer.graphql │ │ │ │ │ │ ├── DeletePublishedDoc.graphql │ │ │ │ │ │ ├── DeleteRequest.graphql │ │ │ │ │ │ ├── DeleteTeamEnvironment.graphql │ │ │ │ │ │ ├── DeleteMockServerLog.graphql │ │ │ │ │ │ ├── RevokeTeamInvitation.graphql │ │ │ │ │ │ ├── DeleteCollection.graphql │ │ │ │ │ │ ├── RemoveTeamMember.graphql │ │ │ │ │ │ ├── DuplicateTeamCollection.graphql │ │ │ │ │ │ ├── ImportFromJSON.graphql │ │ │ │ │ │ ├── CreateNewRootCollection.graphql │ │ │ │ │ │ ├── UpdateCollectionOrder.graphql │ │ │ │ │ │ ├── CreateDuplicateEnvironment.graphql │ │ │ │ │ │ ├── MoveRESTTeamRequest.graphql │ │ │ │ │ │ ├── RenameCollection.graphql │ │ │ │ │ │ ├── UpdateRequest.graphql │ │ │ │ │ │ ├── UpdateTeamEnvironment.graphql │ │ │ │ │ │ ├── CreateRESTRootUserCollection.graphql │ │ │ │ │ │ ├── CreateShortcode.graphql │ │ │ │ │ │ ├── UpdateEmbedProperties.graphql │ │ │ │ │ │ ├── MoveRESTTeamCollection.graphql │ │ │ │ │ │ ├── CreateChildCollection.graphql │ │ │ │ │ │ ├── AcceptTeamInvitation.graphql │ │ │ │ │ │ ├── UpdatePublishedDoc.graphql │ │ │ │ │ │ ├── RenameTeam.graphql │ │ │ │ │ │ ├── CreateTeamEnvironment.graphql │ │ │ │ │ │ ├── SortTeamCollections.graphql │ │ │ │ │ │ ├── CreatePublishedDoc.graphql │ │ │ │ │ │ ├── UpdateLookUpRequestOrder.graphql │ │ │ │ │ │ ├── UpdateTeamMemberRole.graphql │ │ │ │ │ │ ├── CreateTeamInvitation.graphql │ │ │ │ │ │ ├── UpdateTeamCollection.graphql │ │ │ │ │ │ ├── CreateRESTUserRequest.graphql │ │ │ │ │ │ ├── CreateRequestInCollection.graphql │ │ │ │ │ │ └── CreateTeam.graphql │ │ │ │ │ ├── queries │ │ │ │ │ │ ├── Me.graphql │ │ │ │ │ │ ├── ExportAsJSON.graphql │ │ │ │ │ │ ├── GetUserInfo.graphql │ │ │ │ │ │ ├── ResolveShortcode.graphql │ │ │ │ │ │ ├── ExportCollectionToJSON.graphql │ │ │ │ │ │ ├── GetCollectionTitleAndData.graphql │ │ │ │ │ │ ├── GetMyShortcodes.graphql │ │ │ │ │ │ ├── GetSingleRequest.graphql │ │ │ │ │ │ ├── RootCollectionsOfTeam.graphql │ │ │ │ │ │ ├── GetCollectionChildrenIDs.graphql │ │ │ │ │ │ ├── GetCollectionRequests.graphql │ │ │ │ │ │ ├── GetTeamEnvironments.graphql │ │ │ │ │ │ ├── pendingInvites.graphql │ │ │ │ │ │ ├── GetSingleCollection.graphql │ │ │ │ │ │ ├── GetCollectionChildren.graphql │ │ │ │ │ │ ├── GetTeam.graphql │ │ │ │ │ │ ├── GetTeamMembers.graphql │ │ │ │ │ │ ├── UserPublishedDocsList.graphql │ │ │ │ │ │ ├── GetInviteDetails.graphql │ │ │ │ │ │ ├── GetMyTeams.graphql │ │ │ │ │ │ └── PublishedDoc.graphql │ │ │ │ │ └── subscriptions │ │ │ │ │ │ ├── ShortcodeDeleted.graphql │ │ │ │ │ │ ├── TeamMemberRemoved.graphql │ │ │ │ │ │ ├── TeamRequestDeleted.graphql │ │ │ │ │ │ ├── TeamInvitationRemoved.graphql │ │ │ │ │ │ ├── TeamCollectionRemoved.graphql │ │ │ │ │ │ ├── TeamChildCollectionSorted.graphql │ │ │ │ │ │ ├── TeamInvitationAdded.graphql │ │ │ │ │ │ ├── TeamRootCollectionsSorted.graphql │ │ │ │ │ │ ├── TeamEnvironmentDeleted.graphql │ │ │ │ │ │ ├── ShortcodeCreated.graphql │ │ │ │ │ │ ├── ShortcodeUpdated.graphql │ │ │ │ │ │ ├── TeamRequestMoved.graphql │ │ │ │ │ │ ├── TeamRequestAdded.graphql │ │ │ │ │ │ ├── TeamRequestUpdated.graphql │ │ │ │ │ │ ├── TeamEnvironmentCreated.graphql │ │ │ │ │ │ ├── TeamEnvironmentUpdated.graphql │ │ │ │ │ │ ├── TeamCollectionAdded.graphql │ │ │ │ │ │ ├── TeamCollectionMoved.graphql │ │ │ │ │ │ ├── TeamMemberAdded.graphql │ │ │ │ │ │ ├── TeamMemberUpdated.graphql │ │ │ │ │ │ ├── TeamCollectionUpdated.graphql │ │ │ │ │ │ ├── TeamRequestOrderUpdated.graphql │ │ │ │ │ │ └── TeamCollectionOrderUpdated.graphql │ │ │ │ ├── QueryErrors.ts │ │ │ │ ├── types │ │ │ │ │ └── TeamName.ts │ │ │ │ └── mutations │ │ │ │ │ └── Profile.ts │ │ │ ├── kernel │ │ │ │ ├── common │ │ │ │ │ └── index.ts │ │ │ │ └── rest │ │ │ │ │ └── index.ts │ │ │ ├── functional │ │ │ │ ├── error.ts │ │ │ │ ├── parse.ts │ │ │ │ └── taskEither.ts │ │ │ ├── utils │ │ │ │ ├── uniqueID.ts │ │ │ │ ├── JsonFormattedError.ts │ │ │ │ ├── userAgent.ts │ │ │ │ ├── file-extension.ts │ │ │ │ ├── uri.js │ │ │ │ └── date.ts │ │ │ ├── dev.ts │ │ │ ├── import-export │ │ │ │ ├── export │ │ │ │ │ ├── environments.ts │ │ │ │ │ ├── teamCollections.ts │ │ │ │ │ ├── myCollections.ts │ │ │ │ │ └── gqlCollections.ts │ │ │ │ └── import │ │ │ │ │ ├── myCollections.ts │ │ │ │ │ ├── importers.ts │ │ │ │ │ └── hoppGql.ts │ │ │ ├── curl │ │ │ │ └── index.ts │ │ │ ├── shortcode │ │ │ │ └── Shortcode.ts │ │ │ ├── types │ │ │ │ └── HoppRealtimeLog.ts │ │ │ ├── editor │ │ │ │ └── linting │ │ │ │ │ ├── linter.ts │ │ │ │ │ └── jsoncPretty.ts │ │ │ ├── teams │ │ │ │ └── TeamEnvironment.ts │ │ │ ├── platformutils.ts │ │ │ ├── terndoc │ │ │ │ └── pw-pre.json │ │ │ └── lenses │ │ │ │ ├── rawLens.ts │ │ │ │ ├── xmlLens.ts │ │ │ │ └── pdfLens.ts │ │ ├── platform │ │ │ ├── settings.ts │ │ │ ├── environments.ts │ │ │ ├── limits.ts │ │ │ ├── organization.ts │ │ │ ├── infra.ts │ │ │ ├── additionalLinks.ts │ │ │ ├── history.ts │ │ │ ├── spotlight.ts │ │ │ ├── std │ │ │ │ └── kernel-io.ts │ │ │ └── tab.ts │ │ ├── pages │ │ │ └── profile │ │ │ │ ├── index.vue │ │ │ │ ├── tokens.vue │ │ │ │ └── teams.vue │ │ ├── types │ │ │ ├── ts-utils.ts │ │ │ └── kernel.d.ts │ │ ├── components │ │ │ ├── app │ │ │ │ └── spotlight │ │ │ │ │ └── entry │ │ │ │ │ └── IconSelected.vue │ │ │ └── share │ │ │ │ └── templates │ │ │ │ └── Button.vue │ │ ├── modules │ │ │ ├── whats-new.ts │ │ │ └── v-focus.ts │ │ ├── layouts │ │ │ └── empty.vue │ │ ├── kernel │ │ │ └── index.ts │ │ └── vitest.d.ts │ ├── assets │ │ ├── scss │ │ │ └── tailwind.scss │ │ └── icons │ │ │ ├── windows.svg │ │ │ ├── brands │ │ │ └── facebook.svg │ │ │ ├── star-off.svg │ │ │ ├── insomnia.svg │ │ │ └── auth │ │ │ └── microsoft.svg │ ├── .prettierrc.js │ └── .prettierignore ├── hoppscotch-backend │ ├── .dockerignore │ ├── global.d.ts │ ├── jest.setup.js │ ├── .prettierrc │ ├── src │ │ ├── types │ │ │ ├── RequestTypes.ts │ │ │ ├── Passwordless.ts │ │ │ ├── WorkspaceTypes.ts │ │ │ ├── AccessToken.ts │ │ │ ├── SortOptions.ts │ │ │ ├── AuthUser.ts │ │ │ ├── RESTError.ts │ │ │ └── CollectionSearchNode.ts │ │ ├── auth │ │ │ ├── dto │ │ │ │ ├── signin-magic.dto.ts │ │ │ │ └── verify-magic.dto.ts │ │ │ └── guards │ │ │ │ ├── jwt-auth.guard.ts │ │ │ │ └── rt-jwt-auth.guard.ts │ │ ├── access-token │ │ │ └── dto │ │ │ │ └── create-access-token.dto.ts │ │ ├── app.controller.ts │ │ ├── posthog │ │ │ └── posthog.module.ts │ │ ├── pubsub │ │ │ └── pubsub.module.ts │ │ ├── team │ │ │ └── decorators │ │ │ │ └── requires-team-role.decorator.ts │ │ ├── admin │ │ │ ├── admin.model.ts │ │ │ ├── infra.model.ts │ │ │ ├── guards │ │ │ │ └── rest-admin.guard.ts │ │ │ └── decorators │ │ │ │ └── gql-admin.decorator.ts │ │ ├── prisma │ │ │ ├── prisma.module.ts │ │ │ └── prisma-error-codes.ts │ │ ├── user │ │ │ ├── user.module.ts │ │ │ └── user.data.handler.ts │ │ ├── health │ │ │ └── health.module.ts │ │ ├── guards │ │ │ └── throttler-behind-proxy.guard.ts │ │ ├── shortcode │ │ │ └── shortcode.module.ts │ │ └── decorators │ │ │ └── gql-user.decorator.ts │ ├── prisma │ │ └── migrations │ │ │ ├── 20240621062554_user_last_active_on │ │ │ └── migration.sql │ │ │ ├── 20240519093155_add_last_logged_on_to_user │ │ │ └── migration.sql │ │ │ ├── 20240725043411_infra_config_encryption │ │ │ └── migration.sql │ │ │ ├── migration_lock.toml │ │ │ ├── 20250306054346_team_access_role_enum │ │ │ └── migration.sql │ │ │ ├── 20241118054346_infra_config_sync_with_env_file │ │ │ └── migration.sql │ │ │ └── 20231130082054_collection_headers │ │ │ └── migration.sql │ ├── tsconfig.build.json │ ├── test │ │ └── jest-e2e.json │ ├── nest-cli.json │ ├── prisma.config.ts │ └── backend.Caddyfile ├── hoppscotch-sh-admin │ ├── .dockerignore │ ├── locales │ │ ├── af.json │ │ ├── ar.json │ │ ├── ca.json │ │ ├── cn.json │ │ ├── cs.json │ │ ├── da.json │ │ ├── de.json │ │ ├── el.json │ │ ├── es.json │ │ ├── fi.json │ │ ├── fr.json │ │ ├── he.json │ │ ├── hi.json │ │ ├── hu.json │ │ ├── id.json │ │ ├── it.json │ │ ├── ja.json │ │ ├── ko.json │ │ ├── nl.json │ │ ├── no.json │ │ ├── pl.json │ │ ├── pt.json │ │ ├── ro.json │ │ ├── ru.json │ │ ├── sr.json │ │ ├── sv.json │ │ ├── tr.json │ │ ├── tw.json │ │ ├── uk.json │ │ ├── vi.json │ │ └── pt-br.json │ ├── .prettierrc.cjs │ ├── assets │ │ ├── scss │ │ │ └── tailwind.scss │ │ └── icons │ │ │ └── auth │ │ │ └── microsoft.svg │ ├── src │ │ ├── layouts │ │ │ ├── empty.vue │ │ │ └── default.vue │ │ ├── helpers │ │ │ ├── backend │ │ │ │ └── gql │ │ │ │ │ ├── queries │ │ │ │ │ ├── IsSMTPEnabled.graphql │ │ │ │ │ ├── AllowedAuthProviders.graphql │ │ │ │ │ ├── Metrics.graphql │ │ │ │ │ ├── InfraConfigs.graphql │ │ │ │ │ ├── InfraTokens.graphql │ │ │ │ │ ├── pendingInvites.graphql │ │ │ │ │ ├── InvitedUsers.graphql │ │ │ │ │ ├── TeamList.graphql │ │ │ │ │ ├── UserInfo.graphql │ │ │ │ │ ├── UsersList.graphql │ │ │ │ │ ├── SharedRequests.graphql │ │ │ │ │ └── UsersListV2.graphql │ │ │ │ │ └── mutations │ │ │ │ │ ├── ResetInfraConfigs.graphql │ │ │ │ │ ├── RemoveTeam.graphql │ │ │ │ │ ├── RevokeInfraToken.graphql │ │ │ │ │ ├── ToggleSMTP.graphql │ │ │ │ │ ├── MakeUsersAdmin.graphql │ │ │ │ │ ├── RevokeAllUserHistoryByAdmin.graphql │ │ │ │ │ ├── TeamInvitationRemoved.graphql │ │ │ │ │ ├── DemoteUsersByAdmin.graphql │ │ │ │ │ ├── RevokeShortcodeByAdmin.graphql │ │ │ │ │ ├── RevokeTeamInvitation.graphql │ │ │ │ │ ├── TeamInvitationAdded.graphql │ │ │ │ │ ├── ToggleUserHistoryStore.graphql │ │ │ │ │ ├── ToggleAnalyticsCollection.graphql │ │ │ │ │ ├── InviteNewUser.graphql │ │ │ │ │ ├── RenameTeam.graphql │ │ │ │ │ ├── EnableAndDisableSso.graphql │ │ │ │ │ ├── RemoveUserFromTeamByAdmin.graphql │ │ │ │ │ ├── RevokeUserInvitationsByAdmin.graphql │ │ │ │ │ ├── UpdateInfraConfigs.graphql │ │ │ │ │ ├── UpdateUserDisplayNameByAdmin.graphql │ │ │ │ │ ├── RemoveUsersByAdmin.graphql │ │ │ │ │ ├── AcceptTeamInvitation.graphql │ │ │ │ │ ├── CreateInfraToken.graphql │ │ │ │ │ ├── AddUserToTeamByAdmin.graphql │ │ │ │ │ ├── CreateTeamInvitation.graphql │ │ │ │ │ ├── ChangeUserRoleInTeamByAdmin.graphql │ │ │ │ │ └── CreateTeam.graphql │ │ │ └── utils │ │ │ │ └── date.ts │ │ ├── composables │ │ │ ├── toast.ts │ │ │ └── i18n.ts │ │ ├── vite-env.d.ts │ │ ├── shims-vue.d.ts │ │ └── modules │ │ │ └── v-focus.ts │ ├── public │ │ └── favicon.ico │ ├── Caddyfile │ ├── postcss.config.cjs │ ├── .prettierignore │ ├── sh-admin-multiport-setup.Caddyfile │ ├── tailwind.config.ts │ ├── tsconfig.node.json │ ├── sh-admin-subpath-access.Caddyfile │ └── gql-codegen.yml ├── hoppscotch-js-sandbox │ ├── src │ │ ├── global.d.ts │ │ ├── web │ │ │ └── index.ts │ │ ├── node │ │ │ └── index.ts │ │ └── cage-modules │ │ │ └── index.ts │ ├── .gitignore │ ├── .prettierrc.cjs │ ├── web.d.ts │ ├── node.d.ts │ ├── index.d.ts │ └── .prettierignore ├── hoppscotch-desktop │ ├── plugin-workspace │ │ ├── tauri-plugin-appload │ │ │ ├── src │ │ │ │ ├── ui │ │ │ │ │ ├── macos │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── windows │ │ │ │ │ │ └── mod.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── uri │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── error.rs │ │ │ │ ├── kernel.js │ │ │ │ ├── vendor │ │ │ │ │ └── mod.rs │ │ │ │ ├── config │ │ │ │ │ └── mod.rs │ │ │ │ ├── api │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── model.rs │ │ │ │ ├── bundle │ │ │ │ │ └── mod.rs │ │ │ │ ├── global.rs │ │ │ │ ├── storage │ │ │ │ │ └── mod.rs │ │ │ │ ├── verification │ │ │ │ │ └── mod.rs │ │ │ │ ├── envvar.rs │ │ │ │ └── cache │ │ │ │ │ └── mod.rs │ │ │ ├── examples │ │ │ │ └── tauri-app │ │ │ │ │ ├── src-tauri │ │ │ │ │ ├── build.rs │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── icons │ │ │ │ │ │ ├── icon.ico │ │ │ │ │ │ ├── icon.png │ │ │ │ │ │ ├── 32x32.png │ │ │ │ │ │ ├── icon.icns │ │ │ │ │ │ ├── 128x128.png │ │ │ │ │ │ └── 128x128@2x.png │ │ │ │ │ ├── src │ │ │ │ │ │ └── main.rs │ │ │ │ │ └── capabilities │ │ │ │ │ │ └── default.json │ │ │ │ │ ├── src │ │ │ │ │ ├── vite-env.d.ts │ │ │ │ │ └── main.js │ │ │ │ │ ├── .vscode │ │ │ │ │ └── extensions.json │ │ │ │ │ └── .gitignore │ │ │ ├── .envrc │ │ │ ├── permissions │ │ │ │ └── default.toml │ │ │ ├── build.rs │ │ │ └── .gitignore │ │ ├── tauri-plugin-relay │ │ │ ├── permissions │ │ │ │ └── default.toml │ │ │ ├── .envrc │ │ │ ├── build.rs │ │ │ └── .gitignore │ │ └── relay │ │ │ ├── .envrc │ │ │ ├── .gitignore │ │ │ └── src │ │ │ └── lib.rs │ ├── src │ │ ├── assets │ │ │ └── scss │ │ │ │ └── tailwind.scss │ │ ├── types │ │ │ └── kernel.d.ts │ │ ├── vite-env.d.ts │ │ ├── views │ │ │ └── shared │ │ │ │ ├── LoadingState.vue │ │ │ │ └── VersionInfo.vue │ │ └── kernel │ │ │ └── index.ts │ ├── desktop-app.png │ ├── public │ │ └── favicon.ico │ ├── postcss.config.js │ ├── src-tauri │ │ ├── icons │ │ │ ├── 32x32.png │ │ │ ├── icon.icns │ │ │ ├── icon.ico │ │ │ ├── icon.png │ │ │ ├── 128x128.png │ │ │ ├── 128x128@2x.png │ │ │ ├── StoreLogo.png │ │ │ ├── Square30x30Logo.png │ │ │ ├── Square44x44Logo.png │ │ │ ├── Square71x71Logo.png │ │ │ ├── Square89x89Logo.png │ │ │ ├── Square107x107Logo.png │ │ │ ├── Square142x142Logo.png │ │ │ ├── Square150x150Logo.png │ │ │ ├── Square284x284Logo.png │ │ │ └── Square310x310Logo.png │ │ ├── .gitignore │ │ ├── capabilities │ │ │ └── desktop.json │ │ └── src │ │ │ └── error.rs │ ├── connection-to-self-hosted-instance.png │ ├── tailwind.config.ts │ ├── crates │ │ └── webapp-bundler │ │ │ └── .gitignore │ ├── tsconfig.node.json │ └── index.html ├── codemirror-lang-graphql │ ├── .gitignore │ ├── README.md │ ├── .npmignore │ └── tsconfig.json ├── hoppscotch-agent │ ├── src │ │ ├── index.css │ │ ├── vite-env.d.ts │ │ └── main.ts │ ├── public │ │ └── icon.png │ ├── postcss.config.js │ ├── src-tauri │ │ ├── icons │ │ │ ├── 32x32.png │ │ │ ├── icon.icns │ │ │ ├── icon.ico │ │ │ ├── icon.png │ │ │ ├── 128x128.png │ │ │ ├── 128x128@2x.png │ │ │ ├── StoreLogo.png │ │ │ ├── tray_icon.png │ │ │ ├── Square30x30Logo.png │ │ │ ├── Square44x44Logo.png │ │ │ ├── Square71x71Logo.png │ │ │ ├── Square89x89Logo.png │ │ │ ├── Square107x107Logo.png │ │ │ ├── Square142x142Logo.png │ │ │ ├── Square150x150Logo.png │ │ │ ├── Square284x284Logo.png │ │ │ ├── Square310x310Logo.png │ │ │ ├── ios │ │ │ │ ├── AppIcon-512@2x.png │ │ │ │ ├── AppIcon-20x20@1x.png │ │ │ │ ├── AppIcon-20x20@2x.png │ │ │ │ ├── AppIcon-20x20@3x.png │ │ │ │ ├── AppIcon-29x29@1x.png │ │ │ │ ├── AppIcon-29x29@2x.png │ │ │ │ ├── AppIcon-29x29@3x.png │ │ │ │ ├── AppIcon-40x40@1x.png │ │ │ │ ├── AppIcon-40x40@2x.png │ │ │ │ ├── AppIcon-40x40@3x.png │ │ │ │ ├── AppIcon-60x60@2x.png │ │ │ │ ├── AppIcon-60x60@3x.png │ │ │ │ ├── AppIcon-76x76@1x.png │ │ │ │ ├── AppIcon-76x76@2x.png │ │ │ │ ├── AppIcon-20x20@2x-1.png │ │ │ │ ├── AppIcon-29x29@2x-1.png │ │ │ │ ├── AppIcon-40x40@2x-1.png │ │ │ │ └── AppIcon-83.5x83.5@2x.png │ │ │ └── android │ │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ │ │ └── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_launcher_round.png │ │ │ │ └── ic_launcher_foreground.png │ │ ├── src │ │ │ └── global.rs │ │ ├── build.rs │ │ └── .gitignore │ ├── tailwind.config.js │ ├── tsconfig.node.json │ └── index.html ├── hoppscotch-selfhost-web │ ├── src │ │ ├── api │ │ │ ├── queries │ │ │ │ ├── GetSMTPStatus.graphql │ │ │ │ ├── IsUserHistoryEnabled.graphql │ │ │ │ ├── GetUserSettings.graphql │ │ │ │ ├── GetUserEnvironments.graphql │ │ │ │ ├── GetGlobalEnvironments.graphql │ │ │ │ ├── CreateUserEnvironment.graphql │ │ │ │ ├── ExportUserCollectionsToJSON.graphql │ │ │ │ ├── GetUserRootCollections.graphql │ │ │ │ ├── GetRootGQLUserCollections.graphql │ │ │ │ └── GetRestUserHistory.graphql │ │ │ ├── subscriptions │ │ │ │ ├── UserHistoryAllDeleted.graphql │ │ │ │ ├── UserEnvironmentDeleted.graphql │ │ │ │ ├── UserHistoryDeleted.graphql │ │ │ │ ├── UserCollectionRemoved.graphql │ │ │ │ ├── UserSettingsUpdated.graphql │ │ │ │ ├── UserHistoryDeletedMany.graphql │ │ │ │ ├── UserHistoryStoreStatusChanged.graphql │ │ │ │ ├── UserChildCollectionSorted.graphql │ │ │ │ ├── UserRootCollectionsSorted.graphql │ │ │ │ ├── UserCollectionMoved.graphql │ │ │ │ ├── UserRequestCreated.graphql │ │ │ │ ├── UserRequestDeleted.graphql │ │ │ │ ├── UserRequestUpdated.graphql │ │ │ │ ├── UserEnvironmentCreated.graphql │ │ │ │ ├── UserEnvironmentUpdated.graphql │ │ │ │ ├── UserCollectionCreated.graphql │ │ │ │ ├── UserCollectionUpdated.graphql │ │ │ │ ├── UserHistoryCreated.graphql │ │ │ │ ├── UserHistoryUpdated.graphql │ │ │ │ ├── UserRequestMoved.graphql │ │ │ │ ├── userCollectionDuplicated.graphql │ │ │ │ └── UserCollectionOrderUpdated.graphql │ │ │ └── mutations │ │ │ │ ├── DeleteUserEnvironments.graphql │ │ │ │ ├── DeleteUserRequest.graphql │ │ │ │ ├── ClearGlobalEnvironments.graphql │ │ │ │ ├── ToggleHistoryStarStatus.graphql │ │ │ │ ├── RemoveRequestFromHistory.graphql │ │ │ │ ├── CreateUserSettings.graphql │ │ │ │ ├── DeleteUserCollection.graphql │ │ │ │ ├── UpdateUserSettings.graphql │ │ │ │ ├── DeleteAllUserHistory.graphql │ │ │ │ ├── CreateUserGlobalEnvironment.graphql │ │ │ │ ├── UpdateUserDisplayName.graphql │ │ │ │ ├── DuplicateUserCollection.graphql │ │ │ │ ├── UpdateGQLUserRequest.graphql │ │ │ │ ├── CreateGQLRootUserCollection.graphql │ │ │ │ ├── CreateRESTRootUserCollection.graphql │ │ │ │ ├── RenameUserCollection.graphql │ │ │ │ ├── UpdateRESTUserRequest.graphql │ │ │ │ ├── UpdateUserCollectionOrder.graphql │ │ │ │ ├── MoveUserCollection.graphql │ │ │ │ ├── SortUserCollections.graphql │ │ │ │ ├── CreateUserEnvironment.graphql │ │ │ │ ├── UpdateUserEnvironment.graphql │ │ │ │ ├── CreateUserHistory.graphql │ │ │ │ ├── CreateGQLUserRequest.graphql │ │ │ │ ├── CreateRESTUserRequest.graphql │ │ │ │ ├── UpdateUserCollection.graphql │ │ │ │ ├── CreateGQLChildUserCollection.graphql │ │ │ │ ├── CreateRESTChildUserCollection.graphql │ │ │ │ ├── ImportUserCollectionsFromJSON.graphql │ │ │ │ └── MoveUserRequest.graphql │ │ ├── platform │ │ │ └── collections │ │ │ │ └── desktop │ │ │ │ └── import.ts │ │ ├── vite-env.d.ts │ │ └── kernel │ │ │ └── index.ts │ ├── webapp-server │ │ ├── src │ │ │ ├── signing │ │ │ │ └── mod.rs │ │ │ └── bundle │ │ │ │ └── mod.rs │ │ └── .gitignore │ ├── Caddyfile │ ├── postcss.config.cjs │ ├── selfhost-web.Caddyfile │ └── tsconfig.node.json ├── hoppscotch-kernel │ ├── vite.config.d.ts │ ├── src │ │ ├── io │ │ │ ├── impl │ │ │ │ ├── web │ │ │ │ │ └── index.ts │ │ │ │ └── desktop │ │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── relay │ │ │ ├── impl │ │ │ │ ├── web │ │ │ │ │ └── index.ts │ │ │ │ └── desktop │ │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── store │ │ │ ├── impl │ │ │ │ ├── web │ │ │ │ │ └── index.ts │ │ │ │ └── desktop │ │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── type │ │ │ └── versioning.ts │ │ └── util │ │ │ └── capability.ts │ ├── tsconfig.json │ └── tsconfig.decl.json ├── hoppscotch-data │ ├── src │ │ ├── type-utils.d.ts │ │ ├── environment │ │ │ └── v │ │ │ │ └── 0.ts │ │ ├── utils │ │ │ ├── collection.ts │ │ │ └── record.ts │ │ └── index.ts │ ├── tsconfig.json │ └── vite.config.ts ├── hoppscotch-cli │ ├── src │ │ ├── __tests__ │ │ │ ├── e2e │ │ │ │ └── fixtures │ │ │ │ │ ├── collections │ │ │ │ │ └── malformed-coll-2.json │ │ │ │ │ └── environments │ │ │ │ │ ├── env-v0.json │ │ │ │ │ ├── env-flag-envs.json │ │ │ │ │ ├── iteration-data-export.csv │ │ │ │ │ ├── env-v1.json │ │ │ │ │ ├── env-v2.json │ │ │ │ │ ├── malformed-envs.json │ │ │ │ │ └── iteration-data-envs.json │ │ │ └── types.ts │ │ ├── options │ │ │ └── test │ │ │ │ └── delay.ts │ │ ├── utils │ │ │ └── constants.ts │ │ └── tsconfig.json │ ├── .prettierrc │ ├── tsup.config.ts │ ├── vitest.config.ts │ └── tsconfig.json └── hoppscotch-relay │ ├── .gitignore │ └── src │ ├── util.rs │ └── error.rs ├── pnpm-workspace.yaml ├── .github ├── FUNDING.yml ├── dependabot.yml ├── semantic.yml └── ISSUE_TEMPLATE │ └── config.yml ├── firestore.indexes.json ├── .firebaserc ├── commitlint.config.js ├── .prettierignore ├── CHANGELOG.md ├── .prettierrc.js ├── .envrc ├── .editorconfig ├── jsconfig.json ├── .devcontainer └── devcontainer.json ├── tailwind.config.ts ├── devenv.yaml └── .dockerignore /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npm run pre-commit -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=false 2 | save-prefix='' 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/CNAME: -------------------------------------------------------------------------------- 1 | hoppscotch.io -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/**' -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | npx --no-install commitlint --edit "" 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/.dockerignore: -------------------------------------------------------------------------------- 1 | ./node_modules 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/.dockerignore: -------------------------------------------------------------------------------- 1 | ./node_modules 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/af.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/ca.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/cn.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/cs.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/da.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/de.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/el.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/es.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/fi.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/he.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/hi.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/hu.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/id.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/it.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/ja.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/ko.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/no.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/ro.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/sr.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/sv.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/tw.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/uk.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/vi.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/locales/pt-br.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/global.d.ts: -------------------------------------------------------------------------------- 1 | import '@relmify/jest-fp-ts'; 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: hoppscotch 2 | open_collective: hoppscotch 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/jest.setup.js: -------------------------------------------------------------------------------- 1 | require('@relmify/jest-fp-ts'); 2 | -------------------------------------------------------------------------------- /firestore.indexes.json: -------------------------------------------------------------------------------- 1 | { 2 | "indexes": [], 3 | "fieldOverrides": [] 4 | } 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/src/global.d.ts: -------------------------------------------------------------------------------- 1 | import "@relmify/jest-fp-ts" 2 | -------------------------------------------------------------------------------- /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "postwoman-api" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: false, 3 | }; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | .husky/ 4 | dist 5 | lib -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: false, 3 | } 4 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ["@commitlint/config-conventional"], 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all" 4 | } 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/composables/head.ts: -------------------------------------------------------------------------------- 1 | export { useHead as usePageHead } from "@unhead/vue" 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/ui/macos/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod posit; 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/ui/windows/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod posit; 2 | -------------------------------------------------------------------------------- /packages/codemirror-lang-graphql/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | package-lock.json 3 | /dist 4 | /src/*.d.ts 5 | -------------------------------------------------------------------------------- /packages/codemirror-lang-graphql/README.md: -------------------------------------------------------------------------------- 1 | A [CodeMirror 6](https://codemirror.net/6) language plugin for GraphQL -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /packages/codemirror-lang-graphql/.npmignore: -------------------------------------------------------------------------------- 1 | /src 2 | /test 3 | /node_modules 4 | rollup.config.js 5 | tsconfig.json 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/assets/scss/tailwind.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetSMTPStatus.graphql: -------------------------------------------------------------------------------- 1 | query GetSMTPStatus { 2 | isSMTPEnabled 3 | } 4 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .dependabot 2 | .github 3 | .nuxt 4 | .hoppscotch 5 | .vscode 6 | package-lock.json 7 | node_modules 8 | dist -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | Visit [releases](https://github.com/hoppscotch/hoppscotch/releases) for full changelog. 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/RequestTypes.ts: -------------------------------------------------------------------------------- 1 | export enum ReqType { 2 | REST = 'REST', 3 | GQL = 'GQL', 4 | } 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteUser.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteUser { 2 | deleteUser 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src/assets/scss/tailwind.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/vite.config.d.ts: -------------------------------------------------------------------------------- 1 | declare const _default: import("vite").UserConfig; 2 | export default _default; 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/assets/scss/tailwind.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/settings.ts: -------------------------------------------------------------------------------- 1 | export type SettingsPlatformDef = { 2 | initSettingsSync: () => void 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/web.d.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./dist/web/index.d.ts" 2 | export * from "./dist/web/index.d.ts" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/layouts/empty.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/public/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/public/icon.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/Passwordless.ts: -------------------------------------------------------------------------------- 1 | export type DeviceIdentifierToken = { 2 | deviceIdentifier: string; 3 | }; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/WorkspaceTypes.ts: -------------------------------------------------------------------------------- 1 | export enum WorkspaceType { 2 | USER = 'USER', 3 | TEAM = 'TEAM', 4 | } 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/node.d.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./dist/node/index.d.ts" 2 | export * from "./dist/node/index.d.ts" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/platform/collections/desktop/import.ts: -------------------------------------------------------------------------------- 1 | export { importToPersonalWorkspace } from "../web/import" 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/IsSMTPEnabled.graphql: -------------------------------------------------------------------------------- 1 | query IsSMTPEnabled { 2 | isSMTPEnabled 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/banner.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icon.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/desktop-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/desktop-app.png -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/index.d.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./dist/types/index.d.ts" 2 | export * from "./dist/types/index.d.ts" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/favicon.ico -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/pages/profile/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/environments.ts: -------------------------------------------------------------------------------- 1 | export type EnvironmentsPlatformDef = { 2 | initEnvironmentsSync: () => void 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/public/favicon.ico -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/composables/toast.ts: -------------------------------------------------------------------------------- 1 | import { useToasted } from "@hoppscotch/vue-toasted" 2 | 3 | export const useToast = useToasted 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/LeaveTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation LeaveTeam($teamID: ID!) { 2 | leaveTeam(teamID: $teamID) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/kernel/common/index.ts: -------------------------------------------------------------------------------- 1 | export { transformContent } from "./content" 2 | export { transformAuth } from "./auth" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/kernel/rest/index.ts: -------------------------------------------------------------------------------- 1 | export { RESTRequest } from "./request" 2 | export { RESTResponse } from "./response" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/pages/profile/tokens.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/types/ts-utils.ts: -------------------------------------------------------------------------------- 1 | export type KeysMatching = { 2 | [K in keyof T]-?: T[K] extends V ? K : never 3 | }[keyof T] 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build() 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/.prettierignore: -------------------------------------------------------------------------------- 1 | .dependabot 2 | .github 3 | .hoppscotch 4 | .vscode 5 | package-lock.json 6 | node_modules 7 | dist 8 | lib -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/src/web/index.ts: -------------------------------------------------------------------------------- 1 | export { runPreRequestScript } from "./pre-request" 2 | export { runTestScript } from "./test-runner" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-sh-admin/public/favicon.ico -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/ResetInfraConfigs.graphql: -------------------------------------------------------------------------------- 1 | mutation ResetInfraConfigs { 2 | resetInfraConfigs 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteTeam($teamID: ID!) { 2 | deleteTeam(teamID: $teamID) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/Me.graphql: -------------------------------------------------------------------------------- 1 | query Me { 2 | me { 3 | uid 4 | displayName 5 | photoURL 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/functional/error.ts: -------------------------------------------------------------------------------- 1 | export const throwError = (message: string): never => { 2 | throw new Error(message) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/src/type-utils.d.ts: -------------------------------------------------------------------------------- 1 | interface Object { 2 | hasOwnProperty(key: K): this is Record; 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/uri/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod error; 2 | pub mod handler; 3 | 4 | pub use handler::UriHandler; 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/src/node/index.ts: -------------------------------------------------------------------------------- 1 | export { runPreRequestScript } from "./pre-request" 2 | export { runTestScript } from "./test-runner" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/composables/toast.ts: -------------------------------------------------------------------------------- 1 | import { useToasted } from '@hoppscotch/vue-toasted'; 2 | 3 | export const useToast = useToasted; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/AllowedAuthProviders.graphql: -------------------------------------------------------------------------------- 1 | query AllowedAuthProviders { 2 | allowedAuthProviders 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-16x16.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-32x32.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/components/app/spotlight/entry/IconSelected.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteShortcode.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteShortcode($code: ID!) { 2 | revokeShortcode(code: $code) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserHistoryAllDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription UserHistoryAllDeleted { 2 | userHistoryAllDeleted 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RemoveTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation RemoveTeam($uid: ID!) { 2 | deleteTeamByAdmin(teamID: $uid) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/tray_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/tray_icon.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/auth/dto/signin-magic.dto.ts: -------------------------------------------------------------------------------- 1 | // Inputs to initiate Magic-Link auth flow 2 | export class SignInMagicDto { 3 | email: string; 4 | } 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-128x128.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-192x192.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-256x256.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-512x512.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/images/banner-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/images/banner-dark.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServer.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteMockServer($id: ID!) { 2 | deleteMockServer(id: $id) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/io/impl/web/index.ts: -------------------------------------------------------------------------------- 1 | import { implementation as ioV1 } from './v/1' 2 | 3 | export const IO_IMPLS = { 4 | v1: ioV1, 5 | } as const 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/webapp-server/src/signing/mod.rs: -------------------------------------------------------------------------------- 1 | mod error; 2 | mod key; 3 | 4 | pub use error::SigningError; 5 | pub use key::SigningKeyPair; 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RevokeInfraToken.graphql: -------------------------------------------------------------------------------- 1 | mutation RevokeInfraToken($id: ID!) { 2 | revokeInfraToken(id: $id) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/icons/pwa-1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/icons/pwa-1024x1024.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/images/banner-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-common/public/images/banner-light.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeletePublishedDoc.graphql: -------------------------------------------------------------------------------- 1 | mutation DeletePublishedDoc($id: ID!) { 2 | deletePublishedDoc(id: $id) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/ExportAsJSON.graphql: -------------------------------------------------------------------------------- 1 | query ExportAsJSON($teamID: ID!) { 2 | exportCollectionsToJSON(teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/utils/uniqueID.ts: -------------------------------------------------------------------------------- 1 | export const uniqueID = (length = 16) => { 2 | return Math.random().toString(36).substring(2, length) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/io/impl/desktop/index.ts: -------------------------------------------------------------------------------- 1 | import { implementation as ioV1 } from './v/1' 2 | 3 | export const IO_IMPLS = { 4 | v1: ioV1, 5 | } as const 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/DeleteUserEnvironments.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteUserEnvironment($id: ID!) { 2 | deleteUserEnvironment(id: $id) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/DeleteUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteUserRequest($requestID: ID!) { 2 | deleteUserRequest(id: $requestID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/ToggleSMTP.graphql: -------------------------------------------------------------------------------- 1 | mutation ToggleSMTP($status: ServiceStatus!) { 2 | toggleSMTP(status: $status) 3 | } 4 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: false, 3 | trailingComma: "es5", 4 | singleQuote: false, 5 | printWidth: 80, 6 | useTabs: false, 7 | tabWidth: 2 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/collections/malformed-coll-2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "v": 1, 4 | "name": "tests", 5 | "folders": [] 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/QueryErrors.ts: -------------------------------------------------------------------------------- 1 | export type UserQueryError = "user/not_found" 2 | 3 | export type MyTeamsQueryError = "ea/not_invite_or_admin" 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteRequest($requestID: ID!) { 2 | deleteRequest(requestID: $requestID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteTeamEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteTeamEnvironment($id: ID!){ 2 | deleteTeamEnvironment (id: $id ) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/ShortcodeDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription ShortcodeDeleted { 2 | myShortcodesRevoked { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/pages/profile/teams.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-512@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/20240621062554_user_last_active_on/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "User" ADD COLUMN "lastActiveOn" TIMESTAMP(3); 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteMockServerLog.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteMockServerLog($logID: ID!) { 2 | deleteMockServerLog(logID: $logID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-js-sandbox/src/cage-modules/index.ts: -------------------------------------------------------------------------------- 1 | export { defaultModules } from "./default" 2 | export { postRequestModule, preRequestModule } from "./scripting-modules" 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/relay/impl/web/index.ts: -------------------------------------------------------------------------------- 1 | import { implementation as relayV1 } from './v/1' 2 | 3 | export const RELAY_IMPLS = { 4 | v1: relayV1, 5 | } as const 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/store/impl/web/index.ts: -------------------------------------------------------------------------------- 1 | import { implementation as storeV1 } from './v/1' 2 | 3 | export const STORE_IMPLS = { 4 | v1: storeV1, 5 | } as const 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/IsUserHistoryEnabled.graphql: -------------------------------------------------------------------------------- 1 | query IsUserHistoryEnabled { 2 | isUserHistoryEnabled { 3 | name 4 | value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserEnvironmentDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription UserEnvironmentDeleted { 2 | userEnvironmentDeleted { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/MakeUsersAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation MakeUsersAdmin($userUIDs: [ID!]!) { 2 | makeUsersAdmin(userUIDs: $userUIDs) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RevokeAllUserHistoryByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation RevokeAllUserHistoryByAdmin { 2 | revokeAllUserHistoryByAdmin 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@1x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@3x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@1x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@3x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@1x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@3x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-60x60@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-60x60@3x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-76x76@1x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-76x76@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/20240519093155_add_last_logged_on_to_user/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "User" ADD COLUMN "lastLoggedOn" TIMESTAMP(3); 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamMemberRemoved.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamMemberRemoved($teamID: ID!) { 2 | teamMemberRemoved(teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/connection-to-self-hosted-instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/connection-to-self-hosted-instance.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/ui/mod.rs: -------------------------------------------------------------------------------- 1 | #[cfg(target_os = "macos")] 2 | pub mod macos; 3 | #[cfg(target_os = "windows")] 4 | pub mod windows; 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/relay/impl/desktop/index.ts: -------------------------------------------------------------------------------- 1 | import { implementation as relayV1 } from './v/1' 2 | 3 | export const RELAY_IMPLS = { 4 | v1: relayV1, 5 | } as const 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/store/impl/desktop/index.ts: -------------------------------------------------------------------------------- 1 | import { implementation as storeV1 } from './v/1' 2 | 3 | export const STORE_IMPLS = { 4 | v1: storeV1, 5 | } as const 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-relay/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | # Devenv 3 | .devenv* 4 | devenv.local.nix 5 | 6 | # direnv 7 | .direnv 8 | 9 | # pre-commit 10 | .pre-commit-config.yaml 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/Caddyfile: -------------------------------------------------------------------------------- 1 | { 2 | admin off 3 | persist_config off 4 | } 5 | 6 | :8080 { 7 | try_files {path} / 8 | root * /site 9 | file_server 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetUserSettings.graphql: -------------------------------------------------------------------------------- 1 | query GetUserSettings { 2 | me { 3 | settings { 4 | id 5 | properties 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserHistoryDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription userHistoryDeleted { 2 | userHistoryDeleted { 3 | id 4 | reqType 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/Caddyfile: -------------------------------------------------------------------------------- 1 | { 2 | admin off 3 | persist_config off 4 | } 5 | 6 | :8080 { 7 | try_files {path} / 8 | root * /site 9 | file_server 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | 8 | module.exports = config; 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-20x20@2x-1.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-29x29@2x-1.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-40x40@2x-1.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/tailwind.config.js: -------------------------------------------------------------------------------- 1 | import preset from '@hoppscotch/ui/ui-preset' 2 | 3 | export default { 4 | content: ['src/**/*.{vue,html}'], 5 | presets: [preset] 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "es5", 4 | "singleQuote": false, 5 | "printWidth": 80, 6 | "useTabs": false, 7 | "tabWidth": 2 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/RevokeTeamInvitation.graphql: -------------------------------------------------------------------------------- 1 | mutation RevokeTeamInvitation($inviteID: ID!) { 2 | revokeTeamInvitation(inviteID: $inviteID) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetUserInfo.graphql: -------------------------------------------------------------------------------- 1 | query GetUserInfo { 2 | me { 3 | uid 4 | displayName 5 | email 6 | photoURL 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamRequestDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamRequestDeleted($teamID: ID!) { 2 | teamRequestDeleted(teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/kernel.js: -------------------------------------------------------------------------------- 1 | ;(() => { 2 | console.log("Setting desktop kernel mode") 3 | window.__KERNEL_MODE__ = "desktop" 4 | })() 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src/**/*.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | 8 | module.exports = config; 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserCollectionRemoved.graphql: -------------------------------------------------------------------------------- 1 | subscription UserCollectionRemoved { 2 | userCollectionRemoved { 3 | id 4 | type 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserSettingsUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserSettingsUpdated { 2 | userSettingsUpdated { 3 | id 4 | properties 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/TeamInvitationRemoved.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamInvitationRemoved($teamID: ID!) { 2 | teamInvitationRemoved(teamID: $teamID) 3 | } -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k=" 2 | 3 | use devenv 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/src/global.rs: -------------------------------------------------------------------------------- 1 | pub const AGENT_STORE: &str = "app_data.bin"; 2 | pub const REGISTRATIONS: &str = "registrations"; 3 | pub const NONCE: &str = "X-Hopp-Nonce"; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DeleteCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteCollection($collectionID: ID!) { 2 | deleteCollection(collectionID: $collectionID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamInvitationRemoved.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamInvitationRemoved($teamID: ID!) { 2 | teamInvitationRemoved(teamID: $teamID) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/vendor/mod.rs: -------------------------------------------------------------------------------- 1 | mod config; 2 | mod error; 3 | 4 | pub use config::VendorConfig; 5 | pub use error::{Result, VendorError}; 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/ClearGlobalEnvironments.graphql: -------------------------------------------------------------------------------- 1 | mutation ClearGlobalEnvironments($id: ID!) { 2 | clearGlobalEnvironments(id: $id) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/ToggleHistoryStarStatus.graphql: -------------------------------------------------------------------------------- 1 | mutation ToggleHistoryStarStatus($id: ID!) { 2 | toggleHistoryStarStatus(id: $id) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/DemoteUsersByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation DemoteUsersByAdmin($userUIDs: [ID!]!) { 2 | demoteUsersByAdmin(userUIDs: $userUIDs) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RevokeShortcodeByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation RevokeShortcodeByAdmin($codeID: ID!) { 2 | revokeShortcodeByAdmin(code: $codeID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamCollectionRemoved.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamCollectionRemoved($teamID: ID!) { 2 | teamCollectionRemoved(teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/dev.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * A constant specifying whether the app is running in the development server 3 | */ 4 | export const APP_IS_IN_DEV_MODE = import.meta.env.DEV 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/RemoveRequestFromHistory.graphql: -------------------------------------------------------------------------------- 1 | mutation RemoveRequestFromHistory($id: ID!) { 2 | removeRequestFromHistory(id: $id) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserHistoryDeletedMany.graphql: -------------------------------------------------------------------------------- 1 | subscription UserHistoryDeletedMany { 2 | userHistoryDeletedMany { 3 | count 4 | reqType 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RevokeTeamInvitation.graphql: -------------------------------------------------------------------------------- 1 | mutation RevokeTeamInvitation($inviteID: ID!) { 2 | revokeTeamInviteByAdmin(inviteID: $inviteID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/20240725043411_infra_config_encryption/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "InfraConfig" ADD COLUMN "isEncrypted" BOOLEAN NOT NULL DEFAULT false; 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (e.g., Git) 3 | provider = "postgresql" 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/AccessToken.ts: -------------------------------------------------------------------------------- 1 | export type AccessToken = { 2 | id: string; 3 | label: string; 4 | createdOn: Date; 5 | lastUsedOn: Date; 6 | expiresOn: null | Date; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: false, 3 | trailingComma: "es5", 4 | singleQuote: false, 5 | printWidth: 80, 6 | useTabs: false, 7 | tabWidth: 2, 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/RemoveTeamMember.graphql: -------------------------------------------------------------------------------- 1 | mutation RemoveTeamMember($userUid: ID!, $teamID: ID!) { 2 | removeTeamMember(userUid: $userUid, teamID: $teamID) 3 | } -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/.prettierignore: -------------------------------------------------------------------------------- 1 | .dependabot 2 | .github 3 | .hoppscotch 4 | .vscode 5 | package-lock.json 6 | node_modules 7 | dist 8 | static 9 | components.d.ts 10 | src/types 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/TeamInvitationAdded.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamInvitationAdded($teamID: ID!) { 2 | teamInvitationAdded(teamID: $teamID) { 3 | id 4 | } 5 | } -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/ToggleUserHistoryStore.graphql: -------------------------------------------------------------------------------- 1 | mutation ToggleUserHistoryStore($status: ServiceStatus!) { 2 | toggleUserHistoryStore(status: $status) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/access-token/dto/create-access-token.dto.ts: -------------------------------------------------------------------------------- 1 | // Inputs to create a new PAT 2 | export class CreateAccessTokenDto { 3 | label: string; 4 | expiryInDays: number | null; 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/auth/dto/verify-magic.dto.ts: -------------------------------------------------------------------------------- 1 | // Inputs to verify and sign a user in via magic-link 2 | export class VerifyMagicDto { 3 | deviceIdentifier: string; 4 | token: string; 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamChildCollectionSorted.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamChildCollectionSorted($teamID: ID!) { 2 | teamChildCollectionsSorted(teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamInvitationAdded.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamInvitationAdded($teamID: ID!) { 2 | teamInvitationAdded(teamID: $teamID) { 3 | id 4 | } 5 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamRootCollectionsSorted.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamRootCollectionsSorted($teamID: ID!) { 2 | teamRootCollectionsSorted(teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/permissions/default.toml: -------------------------------------------------------------------------------- 1 | [default] 2 | description = "Default permissions for the plugin" 3 | permissions = ["allow-execute", "allow-cancel"] 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateUserSettings.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateUserSettings($properties: String!) { 2 | createUserSettings(properties: $properties) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/DeleteUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteUserCollection($userCollectionID: ID!) { 2 | deleteUserCollection(userCollectionID: $userCollectionID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateUserSettings.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateUserSettings($properties: String!) { 2 | updateUserSettings(properties: $properties) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserHistoryStoreStatusChanged.graphql: -------------------------------------------------------------------------------- 1 | subscription UserHistoryStoreStatusChanged { 2 | infraConfigUpdate(configName: USER_HISTORY_STORE_ENABLED) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/composables/i18n.ts: -------------------------------------------------------------------------------- 1 | import { useI18n as _useI18n } from "vue-i18n" 2 | 3 | export function useI18n() { 4 | return _useI18n().t 5 | } 6 | 7 | export const useFullI18n = _useI18n 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/ResolveShortcode.graphql: -------------------------------------------------------------------------------- 1 | query ResolveShortcode($code: ID!) { 2 | shortcode(code: $code) { 3 | id 4 | request 5 | properties 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile: -------------------------------------------------------------------------------- 1 | { 2 | admin off 3 | persist_config off 4 | } 5 | 6 | :80 :3000 { 7 | try_files {path} / 8 | root * /site/selfhost-web 9 | file_server 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/ToggleAnalyticsCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation ToggleAnalyticsCollection($status: ServiceStatus!) { 2 | toggleAnalyticsCollection(status: $status) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/Metrics.graphql: -------------------------------------------------------------------------------- 1 | query Metrics { 2 | infra { 3 | usersCount 4 | teamsCount 5 | teamRequestsCount 6 | teamCollectionsCount 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { defineComponent } from 'vue'; 3 | const Component: ReturnType; 4 | export default Component; 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build(); 3 | println!("cargo::rerun-if-env-changed=UPDATER_PUB_KEY"); 4 | println!("cargo::rerun-if-env-changed=UPDATER_URL"); 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/20250306054346_team_access_role_enum/migration.sql: -------------------------------------------------------------------------------- 1 | -- Alter the enum type "TeamMemberRole" to "TeamAccessRole" 2 | ALTER TYPE "TeamMemberRole" RENAME TO "TeamAccessRole"; 3 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/types.ts: -------------------------------------------------------------------------------- 1 | import { ExecException } from "child_process"; 2 | 3 | export type ExecResponse = { 4 | error: ExecException | null; 5 | stdout: string; 6 | stderr: string; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/images/cover.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/composables/theming.ts: -------------------------------------------------------------------------------- 1 | import { inject } from "vue" 2 | import { HoppColorMode } from "~/modules/theming" 3 | 4 | export const useColorMode = () => inject("colorMode") as HoppColorMode 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/DuplicateTeamCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation DuplicateTeamCollection($collectionID: String!) { 2 | duplicateTeamCollection(collectionID: $collectionID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/utils/JsonFormattedError.ts: -------------------------------------------------------------------------------- 1 | export class JsonFormattedError extends Error { 2 | constructor(jsonObject: any) { 3 | super(JSON.stringify(jsonObject, null, 2)) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/InviteNewUser.graphql: -------------------------------------------------------------------------------- 1 | mutation InviteNewUser($inviteeEmail: String!) { 2 | inviteNewUser(inviteeEmail: $inviteeEmail) { 3 | inviteeEmail 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/20241118054346_infra_config_sync_with_env_file/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "InfraConfig" DROP COLUMN "active", 3 | ADD COLUMN "lastSyncedEnvFileValue" TEXT; 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamEnvironmentDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamEnvironmentDeleted ($teamID: ID!) { 2 | teamEnvironmentDeleted(teamID: $teamID) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/DeleteAllUserHistory.graphql: -------------------------------------------------------------------------------- 1 | mutation DeleteAllUserHistory($reqType: ReqType!) { 2 | deleteAllUserHistory(reqType: $reqType) { 3 | count 4 | reqType 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserChildCollectionSorted.graphql: -------------------------------------------------------------------------------- 1 | subscription UserChildCollectionSorted { 2 | userChildCollectionsSorted { 3 | parentCollectionID 4 | sortOption 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserRootCollectionsSorted.graphql: -------------------------------------------------------------------------------- 1 | subscription UserRootCollectionsSorted { 2 | userRootCollectionsSorted { 3 | parentCollectionID 4 | sortOption 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RenameTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation RenameTeam($uid: ID!, $name: String!) { 2 | renameTeamByAdmin(teamID: $uid, newName: $name) { 3 | id 4 | name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/env-v0.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "env-v0", 3 | "variables": [ 4 | { 5 | "key": "baseURL", 6 | "value": "https://echo.hoppscotch.io" 7 | } 8 | ] 9 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/ImportFromJSON.graphql: -------------------------------------------------------------------------------- 1 | mutation importFromJSON($jsonString: String!, $teamID: ID!) { 2 | importCollectionsFromJSON(jsonString: $jsonString, teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/ShortcodeCreated.graphql: -------------------------------------------------------------------------------- 1 | subscription ShortcodeCreated { 2 | myShortcodesCreated { 3 | id 4 | request 5 | createdOn 6 | properties 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/ShortcodeUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription ShortcodeUpdated { 2 | myShortcodesUpdated { 3 | id 4 | request 5 | createdOn 6 | properties 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/types/kernel.d.ts: -------------------------------------------------------------------------------- 1 | import type { KernelAPI } from "@hoppscotch/kernel" 2 | 3 | declare global { 4 | interface Window { 5 | __KERNEL__?: KernelAPI 6 | } 7 | } 8 | 9 | export {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/config/mod.rs: -------------------------------------------------------------------------------- 1 | mod model; 2 | 3 | pub use model::{ApiConfig, CacheConfig, Config, StorageConfig}; 4 | 5 | pub const DEFAULT_CONFIG_PATH: &str = "config.json"; 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src/types/kernel.d.ts: -------------------------------------------------------------------------------- 1 | import type { KernelAPI } from "@hoppscotch/kernel" 2 | 3 | declare global { 4 | interface Window { 5 | __KERNEL__?: KernelAPI 6 | } 7 | } 8 | 9 | export {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/EnableAndDisableSso.graphql: -------------------------------------------------------------------------------- 1 | mutation EnableAndDisableSSO($providerInfo: [EnableAndDisableSSOArgs!]!) { 2 | enableAndDisableSSO(providerInfo: $providerInfo) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/InfraConfigs.graphql: -------------------------------------------------------------------------------- 1 | query InfraConfigs($configNames: [InfraConfigEnum!]!) { 2 | infraConfigs(configNames: $configNames) { 3 | name 4 | value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-agent/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/env-flag-envs.json: -------------------------------------------------------------------------------- 1 | { 2 | "URL": "https://echo.hoppscotch.io", 3 | "HOST": "echo.hoppscotch.io", 4 | "BODY_VALUE": "body_value", 5 | "BODY_KEY": "body_key" 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/api/mod.rs: -------------------------------------------------------------------------------- 1 | mod client; 2 | mod error; 3 | mod model; 4 | 5 | pub use client::ApiClient; 6 | pub use error::ApiError; 7 | 8 | pub const API_VERSION: &str = "v1"; 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/type/versioning.ts: -------------------------------------------------------------------------------- 1 | export type Version = { 2 | major: number 3 | minor: number 4 | patch: number 5 | } 6 | 7 | export type VersionedAPI = { 8 | version: Version 9 | api: T 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateUserGlobalEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateUserGlobalEnvironment($variables: String!) { 2 | createUserGlobalEnvironment(variables: $variables) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserCollectionMoved.graphql: -------------------------------------------------------------------------------- 1 | subscription UserCollectionMoved { 2 | userCollectionMoved { 3 | id 4 | parent { 5 | id 6 | } 7 | type 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/webapp-server/src/bundle/mod.rs: -------------------------------------------------------------------------------- 1 | mod builder; 2 | mod error; 3 | mod manager; 4 | mod model; 5 | 6 | pub use builder::BundleBuilder; 7 | pub use error::BundleError; 8 | pub use manager::BundleManager; 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile: -------------------------------------------------------------------------------- 1 | { 2 | admin off 3 | persist_config off 4 | } 5 | 6 | :80 :3100 { 7 | try_files {path} / 8 | root * /site/sh-admin-multiport-setup 9 | file_server 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Generated by Tauri 6 | # will have schema files for capabilities auto-completion 7 | /gen/schemas 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/auth/guards/jwt-auth.guard.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@nestjs/common'; 2 | import { AuthGuard } from '@nestjs/passport'; 3 | 4 | @Injectable() 5 | export class JwtAuthGuard extends AuthGuard('jwt') {} 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/ExportCollectionToJSON.graphql: -------------------------------------------------------------------------------- 1 | query ExportCollectionToJSON($teamID: ID!, $collectionID: ID!) { 2 | exportCollectionToJSON(teamID: $teamID, collectionID: $collectionID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetCollectionTitleAndData.graphql: -------------------------------------------------------------------------------- 1 | query GetCollectionTitleAndData($collectionID: ID!) { 2 | collection(collectionID: $collectionID) { 3 | title 4 | data 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMyShortcodes.graphql: -------------------------------------------------------------------------------- 1 | query GetUserShortcodes($cursor: ID) { 2 | myShortcodes(cursor: $cursor) { 3 | id 4 | request 5 | createdOn 6 | properties 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Generated by Tauri 6 | # will have schema files for capabilities auto-completion 7 | /gen/schemas 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/relay/index.ts: -------------------------------------------------------------------------------- 1 | import { v1 } from './v/1' 2 | 3 | export type { 4 | RelayV1, 5 | } from './v/1' 6 | 7 | export const VERSIONS = { 8 | v1, 9 | } as const 10 | 11 | export const latest = v1 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/store/index.ts: -------------------------------------------------------------------------------- 1 | import { v1 } from './v/1' 2 | 3 | export type { 4 | StoreV1, 5 | } from './v/1' 6 | 7 | export const VERSIONS = { 8 | v1, 9 | } as const 10 | 11 | export const latest = v1 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RemoveUserFromTeamByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation RemoveUserFromTeamByAdmin($userUid: ID!, $teamID: ID!) { 2 | removeUserFromTeamByAdmin(userUid: $userUid, teamID: $teamID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RevokeUserInvitationsByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation RevokeUserInvitationsByAdmin($inviteeEmails: [String!]!) { 2 | revokeUserInvitationsByAdmin(inviteeEmails: $inviteeEmails) 3 | } 4 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | directory: "/" 5 | schedule: 6 | interval: weekly 7 | time: '00:00' 8 | open-pull-requests-limit: 0 9 | reviewers: 10 | - liyasthomas 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateNewRootCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateNewRootCollection($title: String!, $teamID: ID!) { 2 | createRootCollection(title: $title, teamID: $teamID) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetSingleRequest.graphql: -------------------------------------------------------------------------------- 1 | query GetSingleRequest($requestID: ID!) { 2 | request(requestID: $requestID) { 3 | id 4 | collectionID 5 | title 6 | request 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/relay/.envrc: -------------------------------------------------------------------------------- 1 | source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k=" 2 | 3 | use devenv 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateUserDisplayName.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateUserDisplayName($updatedDisplayName: String!) { 2 | updateDisplayName(updatedDisplayName: $updatedDisplayName) { 3 | displayName 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserRequestCreated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserRequestCreated { 2 | userRequestCreated { 3 | id 4 | collectionID 5 | title 6 | request 7 | type 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserRequestDeleted.graphql: -------------------------------------------------------------------------------- 1 | subscription UserRequestDeleted { 2 | userRequestDeleted { 3 | id 4 | collectionID 5 | title 6 | request 7 | type 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserRequestUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserRequestUpdated { 2 | userRequestUpdated { 3 | id 4 | collectionID 5 | title 6 | request 7 | type 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/app.controller.ts: -------------------------------------------------------------------------------- 1 | import { Controller, Get } from '@nestjs/common'; 2 | 3 | @Controller('ping') 4 | export class AppController { 5 | @Get() 6 | ping(): string { 7 | return 'Success'; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/posthog/posthog.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { PostHogService } from './posthog.service'; 3 | 4 | @Module({ 5 | providers: [PostHogService], 6 | }) 7 | export class PostHogModule {} 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["node_modules", "test", "dist", "**/*spec.ts"], 4 | "compilerOptions": { 5 | "declaration": false, 6 | "sourceMap": false 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/.prettierignore: -------------------------------------------------------------------------------- 1 | .dependabot 2 | .github 3 | .nuxt 4 | .hoppscotch 5 | .vscode 6 | package-lock.json 7 | node_modules 8 | dist 9 | static 10 | components.d.ts 11 | src/types 12 | src/helpers/backend/graphql.ts 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateCollectionOrder.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateCollectionOrder($collectionID: ID!, $destCollID: ID) { 2 | updateCollectionOrder(collectionID: $collectionID, destCollID: $destCollID) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamRequestMoved.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamRequestMoved($teamID: ID!) { 2 | requestMoved(teamID: $teamID) { 3 | id 4 | collectionID 5 | request 6 | title 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/modules/whats-new.ts: -------------------------------------------------------------------------------- 1 | import { useWhatsNewDialog } from "~/composables/whats-new" 2 | import { HoppModule } from "." 3 | 4 | export default { 5 | onRootSetup() { 6 | useWhatsNewDialog() 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/bundle/mod.rs: -------------------------------------------------------------------------------- 1 | mod error; 2 | mod loader; 3 | mod verified; 4 | 5 | pub use error::{BundleError, Result}; 6 | pub use loader::BundleLoader; 7 | pub use verified::VerifiedBundle; 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import { Config } from "tailwindcss" 2 | import preset from "@hoppscotch/ui/ui-preset" 3 | 4 | export default { 5 | content: ["src/**/*.{vue,html}"], 6 | presets: [preset], 7 | } satisfies Config 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/DuplicateUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation DuplicateUserCollection($collectionID: String!, $reqType: ReqType!) { 2 | duplicateUserCollection(collectionID: $collectionID, reqType: $reqType) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/composables/i18n.ts: -------------------------------------------------------------------------------- 1 | import { flow } from "fp-ts/function" 2 | import { useI18n as _useI18n } from "vue-i18n" 3 | 4 | export const useI18n = flow(_useI18n, (x) => x.t) 5 | 6 | export const useFullI18n = _useI18n 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma/migrations/20231130082054_collection_headers/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "TeamCollection" ADD COLUMN "data" JSONB; 3 | 4 | -- AlterTable 5 | ALTER TABLE "UserCollection" ADD COLUMN "data" JSONB; 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/auth/guards/rt-jwt-auth.guard.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@nestjs/common'; 2 | import { AuthGuard } from '@nestjs/passport'; 3 | 4 | @Injectable() 5 | export class RTJwtAuthGuard extends AuthGuard('jwt-refresh') {} 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/iteration-data-export.csv: -------------------------------------------------------------------------------- 1 | URL,BODY_KEY,BODY_VALUE 2 | https://echo.hoppscotch.io/1,,body_value1 3 | https://echo.hoppscotch.io/2,,body_value2 4 | https://echo.hoppscotch.io/3,,body_value3 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateDuplicateEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateDuplicateEnvironment($id: ID!){ 2 | createDuplicateEnvironment (id: $id ){ 3 | id 4 | teamID 5 | name 6 | variables 7 | } 8 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/MoveRESTTeamRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation MoveRESTTeamRequest($collectionID: ID!, $requestID: ID!) { 2 | moveRequest(destCollID: $collectionID, requestID: $requestID) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/RenameCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation RenameCollection($newTitle: String!, $collectionID: ID!) { 2 | renameCollection(newTitle: $newTitle, collectionID: $collectionID) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateRequest($data: UpdateTeamRequestInput!, $requestID: ID!) { 2 | updateRequest(data: $data, requestID: $requestID) { 3 | id 4 | title 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamRequestAdded.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamRequestAdded($teamID: ID!) { 2 | teamRequestAdded(teamID: $teamID) { 3 | id 4 | collectionID 5 | request 6 | title 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/layouts/empty.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "svelte.svelte-vscode", 4 | "tauri-apps.tauri-vscode", 5 | "rust-lang.rust-analyzer" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateGQLUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateGQLUserRequest($id: ID!, $request: String!, $title: String) { 2 | updateGQLUserRequest(id: $id, request: $request, title: $title) { 3 | id 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserEnvironmentCreated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserEnvironmentCreated { 2 | userEnvironmentCreated { 3 | id 4 | isGlobal 5 | name 6 | userUid 7 | variables 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserEnvironmentUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserEnvironmentUpdated { 2 | userEnvironmentUpdated { 3 | id 4 | userUid 5 | name 6 | variables 7 | isGlobal 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/UpdateInfraConfigs.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateInfraConfigs($infraConfigs: [InfraConfigArgs!]!) { 2 | updateInfraConfigs(infraConfigs: $infraConfigs) { 3 | name 4 | value 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/UpdateUserDisplayNameByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateUserDisplayNameByAdmin($userUID: ID!, $name: String!) { 2 | updateUserDisplayNameByAdmin(userUID: $userUID, displayName: $name) 3 | } 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import { Config } from 'tailwindcss'; 2 | import preset from '@hoppscotch/ui/ui-preset'; 3 | 4 | export default { 5 | content: ['src/**/*.{vue,html}'], 6 | presets: [preset], 7 | } satisfies Config; 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module "*.vue" { 4 | import type { DefineComponent } from "vue"; 5 | const component: DefineComponent<{}, {}, any>; 6 | export default component; 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamRequestUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamRequestUpdated($teamID: ID!) { 2 | teamRequestUpdated(teamID: $teamID) { 3 | id 4 | collectionID 5 | request 6 | title 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/utils/userAgent.ts: -------------------------------------------------------------------------------- 1 | export const browserIsChrome = () => 2 | /Chrome/i.test(navigator.userAgent) && /Google/i.test(navigator.vendor) 3 | 4 | export const browserIsFirefox = () => /Firefox/i.test(navigator.userAgent) 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/.envrc: -------------------------------------------------------------------------------- 1 | source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k=" 2 | 3 | use devenv 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/permissions/default.toml: -------------------------------------------------------------------------------- 1 | [default] 2 | description = "Default permissions for AppLoad plugin" 3 | permissions = ["allow-load", "allow-download", "allow-clear", "allow-close", "allow-remove"] 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/.envrc: -------------------------------------------------------------------------------- 1 | source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k=" 2 | 3 | use devenv 4 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module "*.vue" { 4 | import type { DefineComponent } from "vue"; 5 | const component: DefineComponent<{}, {}, any>; 6 | export default component; 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateGQLRootUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateGQLRootUserCollection($title: String!, $data: String) { 2 | createGQLRootUserCollection(title: $title, data: $data) { 3 | id 4 | data 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetUserEnvironments.graphql: -------------------------------------------------------------------------------- 1 | query GetUserEnvironments { 2 | me { 3 | environments { 4 | id 5 | isGlobal 6 | name 7 | userUid 8 | variables 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/RemoveUsersByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation RemoveUsersByAdmin($userUIDs: [ID!]!) { 2 | removeUsersByAdmin(userUIDs: $userUIDs) { 3 | userUID 4 | isDeleted 5 | errorMessage 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/RootCollectionsOfTeam.graphql: -------------------------------------------------------------------------------- 1 | query RootCollectionsOfTeam($teamID: ID!, $cursor: ID) { 2 | rootCollectionsOfTeam(teamID: $teamID, cursor: $cursor) { 3 | id 4 | title 5 | data 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/export/environments.ts: -------------------------------------------------------------------------------- 1 | import { Environment } from "@hoppscotch/data" 2 | 3 | export const environmentsExporter = (myEnvironments: Environment[]) => { 4 | return JSON.stringify(myEnvironments, null, 2) 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/export/teamCollections.ts: -------------------------------------------------------------------------------- 1 | import { getTeamCollectionJSON } from "~/helpers/backend/helpers" 2 | 3 | export const teamCollectionsExporter = (teamID: string) => { 4 | return getTeamCollectionJSON(teamID) 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/limits.ts: -------------------------------------------------------------------------------- 1 | // Define various limits for the platform 2 | export type LimitsPlatformDef = { 3 | /** 4 | * Assign an import size limit when importing collections 5 | */ 6 | collectionImportSizeLimit?: number 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src/main.js: -------------------------------------------------------------------------------- 1 | import "./style.css" 2 | import App from "./App.svelte" 3 | 4 | const app = new App({ 5 | target: document.getElementById("app"), 6 | }) 7 | 8 | export default app 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateRESTRootUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateRESTRootUserCollection($title: String!, $data: String) { 2 | createRESTRootUserCollection(title: $title, data: $data) { 3 | id 4 | data 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module "*.vue" { 4 | import type { DefineComponent } from "vue" 5 | const component: DefineComponent<{}, {}, any> 6 | export default component 7 | } 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamEnvironmentCreated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamEnvironmentCreated ($teamID: ID!) { 2 | teamEnvironmentCreated(teamID: $teamID) { 3 | id 4 | teamID 5 | name 6 | variables 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamEnvironmentUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamEnvironmentUpdated ($teamID: ID!) { 2 | teamEnvironmentUpdated(teamID: $teamID) { 3 | id 4 | teamID 5 | name 6 | variables 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/curl/index.ts: -------------------------------------------------------------------------------- 1 | import { flow } from "fp-ts/function" 2 | import { cloneDeep } from "lodash-es" 3 | import { parseCurlCommand } from "./curlparser" 4 | 5 | export const parseCurlToHoppRESTReq = flow(parseCurlCommand, cloneDeep) 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetGlobalEnvironments.graphql: -------------------------------------------------------------------------------- 1 | query GetGlobalEnvironments { 2 | me { 3 | globalEnvironments { 4 | id 5 | isGlobal 6 | name 7 | userUid 8 | variables 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserCollectionCreated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserCollectionCreated { 2 | userCollectionCreated { 3 | parent { 4 | id 5 | } 6 | id 7 | title 8 | type 9 | data 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserCollectionUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription userCollectionUpdated { 2 | userCollectionUpdated { 3 | id 4 | title 5 | type 6 | data 7 | parent { 8 | id 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/test/jest-e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "moduleFileExtensions": ["js", "json", "ts"], 3 | "rootDir": ".", 4 | "testEnvironment": "node", 5 | "testRegex": ".e2e-spec.ts$", 6 | "transform": { 7 | "^.+\\.(t|j)s$": "ts-jest" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/env-v1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "env-v1", 3 | "variables": [ 4 | { 5 | "key": "baseURL", 6 | "value": "https://echo.hoppscotch.io", 7 | "secret": false 8 | } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserHistoryCreated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserHistoryCreated { 2 | userHistoryCreated { 3 | id 4 | reqType 5 | request 6 | responseMetadata 7 | isStarred 8 | executedOn 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserHistoryUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserHistoryUpdated { 2 | userHistoryUpdated { 3 | id 4 | reqType 5 | request 6 | responseMetadata 7 | isStarred 8 | executedOn 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/InfraTokens.graphql: -------------------------------------------------------------------------------- 1 | query InfraTokens($skip: Int, $take: Int) { 2 | infraTokens(skip: $skip, take: $take) { 3 | id 4 | label 5 | createdOn 6 | lastUsedOn 7 | expiresOn 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "~/*": ["./*"], 6 | "@/*": ["./*"], 7 | "~~/*": ["./*"], 8 | "@@/*": ["./*"] 9 | } 10 | }, 11 | "exclude": ["node_modules", ".nuxt", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetCollectionChildrenIDs.graphql: -------------------------------------------------------------------------------- 1 | query GetCollectionChildrenIDs($collectionID: ID!, $cursor: ID) { 2 | collection(collectionID: $collectionID) { 3 | children(cursor: $cursor) { 4 | id 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetCollectionRequests.graphql: -------------------------------------------------------------------------------- 1 | query GetCollectionRequests($collectionID: ID!, $cursor: ID) { 2 | requestsInCollection(collectionID: $collectionID, cursor: $cursor) { 3 | id 4 | title 5 | request 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetTeamEnvironments.graphql: -------------------------------------------------------------------------------- 1 | query GetTeamEnvironments($teamID: ID!){ 2 | team(teamID: $teamID){ 3 | teamEnvironments{ 4 | id 5 | name 6 | variables 7 | teamID 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/pendingInvites.graphql: -------------------------------------------------------------------------------- 1 | query GetPendingInvites($teamID: ID!) { 2 | team(teamID: $teamID) { 3 | id 4 | teamInvitations { 5 | inviteeRole 6 | inviteeEmail 7 | id 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/import/myCollections.ts: -------------------------------------------------------------------------------- 1 | import { importJSONToTeam } from "~/helpers/backend/mutations/TeamCollection" 2 | 3 | export function toTeamsImporter(content: string, teamID: string) { 4 | return importJSONToTeam(content, teamID) 5 | } 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code/app-hoppscotch/main/packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /packages/hoppscotch-relay/src/util.rs: -------------------------------------------------------------------------------- 1 | pub fn get_status_text(status: u16) -> &'static str { 2 | http::StatusCode::from_u16(status) 3 | .map(|status| status.canonical_reason()) 4 | .unwrap_or(Some("Unknown Status")) 5 | .unwrap_or("Unknown Status") 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/pendingInvites.graphql: -------------------------------------------------------------------------------- 1 | query GetPendingInvites($teamID: ID!) { 2 | team(teamID: $teamID) { 3 | id 4 | teamInvitations { 5 | inviteeRole 6 | inviteeEmail 7 | id 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetSingleCollection.graphql: -------------------------------------------------------------------------------- 1 | query GetSingleCollection($collectionID: ID!) { 2 | collection(collectionID: $collectionID) { 3 | id 4 | title 5 | data 6 | parent { 7 | id 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamCollectionAdded.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamCollectionAdded($teamID: ID!) { 2 | teamCollectionAdded(teamID: $teamID) { 3 | id 4 | title 5 | data 6 | parent { 7 | id 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamCollectionMoved.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamCollectionMoved($teamID: ID!) { 2 | teamCollectionMoved(teamID: $teamID) { 3 | id 4 | title 5 | parent { 6 | id 7 | } 8 | data 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamMemberAdded.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamMemberAdded($teamID: ID!) { 2 | teamMemberAdded(teamID: $teamID) { 3 | membershipID 4 | user { 5 | uid 6 | email 7 | } 8 | role 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/global.rs: -------------------------------------------------------------------------------- 1 | use std::time::Duration; 2 | 3 | pub(crate) const BUNDLE_CLEANUP_INTERVAL: Duration = Duration::from_secs(3600); // 1 hr 4 | pub(crate) const BUNDLE_MAX_AGE: Duration = Duration::from_secs(86400); // 24 hrs 5 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts", "meta.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateTeamEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateTeamEnvironment($variables: String!,$id: ID!,$name: String!){ 2 | updateTeamEnvironment( variables: $variables ,id: $id ,name: $name){ 3 | variables 4 | name 5 | id 6 | } 7 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamMemberUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamMemberUpdated($teamID: ID!) { 2 | teamMemberUpdated(teamID: $teamID) { 3 | membershipID 4 | user { 5 | uid 6 | email 7 | } 8 | role 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/shortcode/Shortcode.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Defines how a Shortcode is represented in the ShortcodeListAdapter 3 | */ 4 | export interface Shortcode { 5 | id: string 6 | request: string 7 | properties?: string | null 8 | createdOn: Date 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/types/HoppRealtimeLog.ts: -------------------------------------------------------------------------------- 1 | export type HoppRealtimeLogLine = { 2 | prefix?: string 3 | payload: string 4 | source: string 5 | color?: string 6 | ts: number | undefined 7 | } 8 | 9 | export type HoppRealtimeLog = HoppRealtimeLogLine[] 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/capabilities/desktop.json: -------------------------------------------------------------------------------- 1 | { 2 | "identifier": "desktop-capability", 3 | "platforms": [ 4 | "macOS", 5 | "windows", 6 | "linux" 7 | ], 8 | "permissions": [ 9 | "updater:default", 10 | "window-state:default" 11 | ] 12 | } -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/RenameUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation RenameUserCollection($userCollectionID: ID!, $newTitle: String!) { 2 | renameUserCollection( 3 | userCollectionID: $userCollectionID 4 | newTitle: $newTitle 5 | ) { 6 | id 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateRESTUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateRESTUserRequest($id: ID!, $title: String!, $request: String!) { 2 | updateRESTUserRequest(id: $id, title: $title, request: $request) { 3 | id 4 | collectionID 5 | request 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateUserCollectionOrder.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateUserCollectionOrder($collectionID: ID!, $nextCollectionID: ID) { 2 | updateUserCollectionOrder( 3 | collectionID: $collectionID 4 | nextCollectionID: $nextCollectionID 5 | ) 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/SortOptions.ts: -------------------------------------------------------------------------------- 1 | import { registerEnumType } from '@nestjs/graphql'; 2 | 3 | export enum SortOptions { 4 | TITLE_ASC = 'TITLE_ASC', 5 | TITLE_DESC = 'TITLE_DESC', 6 | } 7 | 8 | registerEnumType(SortOptions, { 9 | name: 'SortOptions', 10 | }); 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateRESTRootUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateRESTRootUserCollection($title: String!, $data: String) { 2 | createRESTRootUserCollection(title: $title, data: $data) { 3 | id 4 | title 5 | data 6 | type 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateShortcode.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateShortcode($request: String!, $properties: String) { 2 | createShortcode(request: $request, properties: $properties) { 3 | id 4 | request 5 | createdOn 6 | properties 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamCollectionUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamCollectionUpdated($teamID: ID!) { 2 | teamCollectionUpdated(teamID: $teamID) { 3 | id 4 | title 5 | data 6 | parent { 7 | id 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/build.rs: -------------------------------------------------------------------------------- 1 | const COMMANDS: &[&str] = &["execute", "cancel", "subscribe"]; 2 | 3 | fn main() { 4 | tauri_plugin::Builder::new(COMMANDS) 5 | .android_path("android") 6 | .ios_path("ios") 7 | .build(); 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/assets/icons/windows.svg: -------------------------------------------------------------------------------- 1 | Windows -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateEmbedProperties.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateEmbedProperties($code: ID!, $properties: String!) { 2 | updateEmbedProperties(code: $code, properties: $properties) { 3 | id 4 | request 5 | properties 6 | createdOn 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/functional/parse.ts: -------------------------------------------------------------------------------- 1 | import * as E from "fp-ts/Either" 2 | 3 | export const decodeToString = (content: Uint8Array): E.Either => 4 | E.tryCatch( 5 | () => new TextDecoder("utf-8").decode(content).replace(/\x00/g, ""), 6 | E.toError 7 | ) 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/MoveUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation MoveUserCollection($destCollectionID: ID, $userCollectionID: ID!) { 2 | moveUserCollection( 3 | destCollectionID: $destCollectionID 4 | userCollectionID: $userCollectionID 5 | ) { 6 | id 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/webapp-server/.gitignore: -------------------------------------------------------------------------------- 1 | # Devenv 2 | .devenv* 3 | devenv.local.nix 4 | 5 | # direnv 6 | .direnv 7 | 8 | # pre-commit 9 | .pre-commit-config.yaml 10 | 11 | /target/ 12 | 13 | /gen/schemas 14 | 15 | .env 16 | 17 | bundles 18 | 19 | trust/ 20 | 21 | site/ 22 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/pubsub/pubsub.module.ts: -------------------------------------------------------------------------------- 1 | import { Global, Module } from '@nestjs/common'; 2 | import { PubSubService } from './pubsub.service'; 3 | 4 | @Global() 5 | @Module({ 6 | providers: [PubSubService], 7 | exports: [PubSubService], 8 | }) 9 | export class PubSubModule {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/crates/webapp-bundler/.gitignore: -------------------------------------------------------------------------------- 1 | # Devenv 2 | .devenv* 3 | devenv.local.nix 4 | 5 | # direnv 6 | .direnv 7 | 8 | # pre-commit 9 | .pre-commit-config.yaml 10 | 11 | /target/ 12 | 13 | /gen/schemas 14 | 15 | .env 16 | 17 | bundles 18 | 19 | trust/ 20 | 21 | site/ 22 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/src/main.rs: -------------------------------------------------------------------------------- 1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!! 2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 | 4 | fn main() { 5 | tauri_app_lib::run(); 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/api/model.rs: -------------------------------------------------------------------------------- 1 | use serde::Deserialize; 2 | 3 | #[derive(Debug, Clone, Deserialize)] 4 | pub struct ApiResponse { 5 | pub success: bool, 6 | #[serde(default)] 7 | pub error: Option, 8 | pub data: T, 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/SortUserCollections.graphql: -------------------------------------------------------------------------------- 1 | mutation SortUserCollections( 2 | $parentCollectionID: ID 3 | $sortOption: SortOptions! 4 | ) { 5 | sortUserCollections( 6 | parentCollectionID: $parentCollectionID 7 | sortOption: $sortOption 8 | ) 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/InvitedUsers.graphql: -------------------------------------------------------------------------------- 1 | query InvitedUsers($skip: Int, $take: Int) { 2 | infra { 3 | invitedUsers(skip: $skip, take: $take) { 4 | adminUid 5 | adminEmail 6 | inviteeEmail 7 | invitedOn 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/TeamList.graphql: -------------------------------------------------------------------------------- 1 | query TeamList($cursor: ID, $take: Int) { 2 | infra { 3 | allTeams(cursor: $cursor, take: $take) { 4 | id 5 | name 6 | teamMembers { 7 | membershipID 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.github/semantic.yml: -------------------------------------------------------------------------------- 1 | # Always validate the PR title AND all the commits 2 | titleAndCommits: true 3 | # Allows use of Merge commits (eg on github: "Merge branch 'master' into feature/ride-unicorns") 4 | # this is only relevant when using commitsOnly: true (or titleAndCommits: true) 5 | allowMergeCommits: true 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/team/decorators/requires-team-role.decorator.ts: -------------------------------------------------------------------------------- 1 | import { TeamAccessRole } from 'src/generated/prisma/client'; 2 | import { SetMetadata } from '@nestjs/common'; 3 | 4 | export const RequiresTeamRole = (...roles: TeamAccessRole[]) => 5 | SetMetadata('requiresTeamRole', roles); 6 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/AuthUser.ts: -------------------------------------------------------------------------------- 1 | import { User } from 'src/generated/prisma/client'; 2 | 3 | export type AuthUser = User; 4 | 5 | export interface SSOProviderProfile { 6 | provider: string; 7 | id: string; 8 | } 9 | 10 | export type IsAdmin = { 11 | isAdmin: boolean; 12 | }; 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/MoveRESTTeamCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation MoveRESTTeamCollection($collectionID: ID!, $parentCollectionID: ID) { 2 | moveCollection( 3 | collectionID: $collectionID 4 | parentCollectionID: $parentCollectionID 5 | ) { 6 | id 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetCollectionChildren.graphql: -------------------------------------------------------------------------------- 1 | query GetCollectionChildren($collectionID: ID!, $cursor: ID) { 2 | collection(collectionID: $collectionID) { 3 | children(cursor: $cursor) { 4 | id 5 | title 6 | data 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/editor/linting/linter.ts: -------------------------------------------------------------------------------- 1 | export type LinterResult = { 2 | message: string 3 | severity: "warning" | "error" 4 | from: { line: number; ch: number } 5 | to: { line: number; ch: number } 6 | } 7 | export type LinterDefinition = (text: string) => Promise 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/build.rs: -------------------------------------------------------------------------------- 1 | const COMMANDS: &[&str] = &["load", "download", "clear", "close", "remove"]; 2 | 3 | fn main() { 4 | tauri_plugin::Builder::new(COMMANDS) 5 | .android_path("android") 6 | .ios_path("ios") 7 | .build(); 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/CreateUserEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateUserEnvironment($name: String!, $variables: String!) { 2 | createUserEnvironment(name: $name, variables: $variables) { 3 | id 4 | userUid 5 | name 6 | variables 7 | isGlobal 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserRequestMoved.graphql: -------------------------------------------------------------------------------- 1 | subscription UserRequestMoved { 2 | userRequestMoved { 3 | request { 4 | id 5 | collectionID 6 | type 7 | } 8 | nextRequest { 9 | id 10 | collectionID 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/admin/admin.model.ts: -------------------------------------------------------------------------------- 1 | import { ObjectType, OmitType } from '@nestjs/graphql'; 2 | import { User } from 'src/user/user.model'; 3 | 4 | @ObjectType() 5 | export class Admin extends OmitType(User, [ 6 | 'isAdmin', 7 | 'currentRESTSession', 8 | 'currentGQLSession', 9 | ]) {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/prisma/prisma.module.ts: -------------------------------------------------------------------------------- 1 | import { Global, Module } from '@nestjs/common/decorators'; 2 | import { PrismaService } from './prisma.service'; 3 | 4 | @Global() 5 | @Module({ 6 | providers: [PrismaService], 7 | exports: [PrismaService], 8 | }) 9 | export class PrismaModule {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateUserEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateUserEnvironment($name: String!, $variables: String!) { 2 | createUserEnvironment(name: $name, variables: $variables) { 3 | id 4 | userUid 5 | name 6 | variables 7 | isGlobal 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile: -------------------------------------------------------------------------------- 1 | { 2 | admin off 3 | persist_config off 4 | } 5 | 6 | :80 :3100 { 7 | handle_path /admin* { 8 | root * /site/sh-admin-subpath-access 9 | file_server 10 | try_files {path} / 11 | } 12 | 13 | handle { 14 | respond 404 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/prisma/prisma-error-codes.ts: -------------------------------------------------------------------------------- 1 | export enum PrismaError { 2 | DATABASE_UNREACHABLE = 'P1001', 3 | TABLE_DOES_NOT_EXIST = 'P2021', 4 | UNIQUE_CONSTRAINT_VIOLATION = 'P2002', 5 | TRANSACTION_TIMEOUT = 'P2028', 6 | TRANSACTION_DEADLOCK = 'P2034', // write conflict or a deadlock 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetTeam.graphql: -------------------------------------------------------------------------------- 1 | query GetTeam($teamID: ID!) { 2 | team(teamID: $teamID) { 3 | id 4 | name 5 | teamMembers { 6 | membershipID 7 | user { 8 | uid 9 | email 10 | } 11 | role 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/utils/file-extension.ts: -------------------------------------------------------------------------------- 1 | export function hasValidExtension( 2 | filename: string, 3 | allowedExtensions: string[] 4 | ): boolean { 5 | const ext = filename.slice(((filename.lastIndexOf(".") - 1) >>> 0) + 2) 6 | return allowedExtensions.includes(`.${ext.toLowerCase()}`) 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/storage/mod.rs: -------------------------------------------------------------------------------- 1 | mod error; 2 | mod layout; 3 | mod manager; 4 | mod registry; 5 | 6 | pub use error::{Result, StorageError}; 7 | pub use layout::StorageLayout; 8 | pub use manager::StorageManager; 9 | pub use registry::{Registry, ServerEntry}; 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/UserInfo.graphql: -------------------------------------------------------------------------------- 1 | query UserInfo($uid: ID!) { 2 | infra { 3 | userInfo(userUid: $uid) { 4 | uid 5 | displayName 6 | email 7 | isAdmin 8 | photoURL 9 | createdOn 10 | lastActiveOn 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Hoppscotch", 3 | "image": "mcr.microsoft.com/devcontainers/typescript-node:18", 4 | "forwardPorts": [3000], 5 | "features": { 6 | "ghcr.io/NicoVIII/devcontainer-features/pnpm:1": {} 7 | }, 8 | "postCreateCommand": "cp .env.example .env && pnpm i" 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/admin/infra.model.ts: -------------------------------------------------------------------------------- 1 | import { Field, ObjectType } from '@nestjs/graphql'; 2 | import { Admin } from './admin.model'; 3 | 4 | @ObjectType() 5 | export class Infra { 6 | @Field(() => Admin, { 7 | description: 'Admin who executed the action', 8 | }) 9 | executedBy: Admin; 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateChildCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateChildCollection( 2 | $childTitle: String! 3 | $collectionID: ID! 4 | ) { 5 | createChildCollection( 6 | childTitle: $childTitle 7 | collectionID: $collectionID 8 | ) { 9 | id 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/export/myCollections.ts: -------------------------------------------------------------------------------- 1 | import { HoppCollection } from "@hoppscotch/data" 2 | import { stripRefIdReplacer } from "." 3 | 4 | export const myCollectionsExporter = (myCollections: HoppCollection[]) => { 5 | return JSON.stringify(myCollections, stripRefIdReplacer, 2) 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/util/capability.ts: -------------------------------------------------------------------------------- 1 | import type { Version } from '@type/versioning' 2 | 3 | export function checkCapability(required: Version, available: Version): boolean { 4 | if (available.major !== required.major) return false 5 | if (available.minor < required.minor) return false 6 | return true 7 | } 8 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/nest-cli.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/nest-cli", 3 | "collection": "@nestjs/schematics", 4 | "sourceRoot": "src", 5 | "compilerOptions": { 6 | "assets": [{ "include": "mailer/templates/**/*", "outDir": "dist/src" }], 7 | "watchAssets": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetTeamMembers.graphql: -------------------------------------------------------------------------------- 1 | query GetTeamMembers($teamID: ID!, $cursor: ID) { 2 | team(teamID: $teamID) { 3 | members(cursor: $cursor) { 4 | membershipID 5 | user { 6 | uid 7 | email 8 | } 9 | role 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/export/gqlCollections.ts: -------------------------------------------------------------------------------- 1 | import { HoppCollection } from "@hoppscotch/data" 2 | import { stripRefIdReplacer } from "." 3 | 4 | export const gqlCollectionsExporter = (gqlCollections: HoppCollection[]) => { 5 | return JSON.stringify(gqlCollections, stripRefIdReplacer, 2) 6 | } 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateUserEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateUserEnvironment($id: ID!, $name: String!, $variables: String!) { 2 | updateUserEnvironment(id: $id, name: $name, variables: $variables) { 3 | id 4 | userUid 5 | name 6 | variables 7 | isGlobal 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/user/user.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { UserResolver } from './user.resolver'; 3 | import { UserService } from './user.service'; 4 | 5 | @Module({ 6 | providers: [UserResolver, UserService], 7 | exports: [UserService], 8 | }) 9 | export class UserModule {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/AcceptTeamInvitation.graphql: -------------------------------------------------------------------------------- 1 | mutation AcceptTeamInvitation($inviteID: ID!) { 2 | acceptTeamInvitation(inviteID: $inviteID) { 3 | membershipID 4 | role 5 | user { 6 | uid 7 | displayName 8 | photoURL 9 | email 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/teams/TeamEnvironment.ts: -------------------------------------------------------------------------------- 1 | import { Environment } from "@hoppscotch/data" 2 | 3 | /** 4 | * Defines how a Team Environment is represented in the TeamEnvironmentAdapter 5 | */ 6 | export interface TeamEnvironment { 7 | id: string 8 | teamID: string 9 | environment: Environment 10 | } 11 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import preset from "@hoppscotch/ui/ui-preset" 2 | 3 | export default { 4 | content: [ 5 | "packages/hoppscotch-common/src/**/*.{vue,html}", 6 | "packages/hoppscotch-sh-admin/src/**/*.{vue,html}", 7 | "packages/hoppscotch-desktop/src/**/*.{vue,html}", 8 | ], 9 | presets: [preset], 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdatePublishedDoc.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdatePublishedDoc($id: ID!, $args: UpdatePublishedDocsArgs!) { 2 | updatePublishedDoc(id: $id, args: $args) { 3 | id 4 | title 5 | version 6 | autoSync 7 | url 8 | createdOn 9 | updatedOn 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/organization.ts: -------------------------------------------------------------------------------- 1 | export type OrganizationPlatformDef = { 2 | isDefaultCloudInstance: boolean 3 | getOrgInfo: () => Promise<{ 4 | orgID: string 5 | orgDomain: string 6 | isAdmin: boolean 7 | } | null> 8 | getRootDomain: () => string 9 | initiateOnboarding: () => void 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/relay/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | # Devenv 3 | .devenv* 4 | devenv.local.nix 5 | 6 | # direnv 7 | .direnv 8 | 9 | # pre-commit 10 | .pre-commit-config.yaml 11 | # Devenv 12 | .devenv* 13 | devenv.local.nix 14 | 15 | # direnv 16 | .direnv 17 | 18 | # pre-commit 19 | .pre-commit-config.yaml 20 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/relay/src/lib.rs: -------------------------------------------------------------------------------- 1 | mod auth; 2 | mod content; 3 | pub mod error; 4 | mod header; 5 | mod interop; 6 | mod relay; 7 | mod request; 8 | mod response; 9 | mod security; 10 | mod transfer; 11 | mod util; 12 | 13 | pub use interop::{Request, Response}; 14 | pub use relay::{cancel, execute}; 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/AcceptTeamInvitation.graphql: -------------------------------------------------------------------------------- 1 | mutation AcceptTeamInvitation($inviteID: ID!) { 2 | acceptTeamInvitation(inviteID: $inviteID) { 3 | membershipID 4 | role 5 | user { 6 | uid 7 | displayName 8 | photoURL 9 | email 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /packages/hoppscotch-backend/prisma.config.ts: -------------------------------------------------------------------------------- 1 | import 'dotenv/config'; 2 | import { defineConfig, env } from 'prisma/config'; 3 | 4 | export default defineConfig({ 5 | schema: 'prisma/schema.prisma', 6 | migrations: { 7 | path: 'prisma/migrations', 8 | }, 9 | datasource: { 10 | url: env('DATABASE_URL'), 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateUserHistory.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateUserHistory( 2 | $reqData: String! 3 | $resMetadata: String! 4 | $reqType: ReqType! 5 | ) { 6 | createUserHistory( 7 | reqData: $reqData 8 | resMetadata: $resMetadata 9 | reqType: $reqType 10 | ) { 11 | id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import './index.css' 4 | 5 | import { plugin as HoppUI } from "@hoppscotch/ui" 6 | 7 | import "@hoppscotch/ui/themes.css" 8 | 9 | import "@hoppscotch/ui/style.css" 10 | 11 | createApp(App) 12 | .use(HoppUI) 13 | .mount('#app') 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/health/health.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { HealthController } from './health.controller'; 3 | import { TerminusModule } from '@nestjs/terminus'; 4 | 5 | @Module({ 6 | imports: [TerminusModule], 7 | controllers: [HealthController], 8 | }) 9 | export class HealthModule {} 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/RenameTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation RenameTeam($newName: String!, $teamID: ID!) { 2 | renameTeam(newName: $newName, teamID: $teamID) { 3 | id 4 | name 5 | teamMembers { 6 | membershipID 7 | user { 8 | uid 9 | } 10 | role 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/infra.ts: -------------------------------------------------------------------------------- 1 | import * as E from "fp-ts/Either" 2 | 3 | type ProxyAppUrl = { 4 | value: string 5 | name: string 6 | } 7 | 8 | export type InfraPlatformDef = { 9 | getIsSMTPEnabled?: () => Promise> 10 | getProxyAppUrl?: () => Promise> 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/verification/mod.rs: -------------------------------------------------------------------------------- 1 | mod bundle; 2 | mod error; 3 | mod file; 4 | mod key; 5 | 6 | pub use bundle::BundleVerifier; 7 | pub use error::VerificationError; 8 | pub use file::FileVerifier; 9 | pub use key::KeyManager; 10 | 11 | pub const VERIFICATION_VERSION: &str = "1.0.0"; 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateGQLUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateGQLUserRequest( 2 | $title: String! 3 | $request: String! 4 | $collectionID: ID! 5 | ) { 6 | createGQLUserRequest( 7 | title: $title 8 | request: $request 9 | collectionID: $collectionID 10 | ) { 11 | id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateRESTUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateRESTUserRequest( 2 | $collectionID: ID! 3 | $title: String! 4 | $request: String! 5 | ) { 6 | createRESTUserRequest( 7 | collectionID: $collectionID 8 | title: $title 9 | request: $request 10 | ) { 11 | id 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/additionalLinks.ts: -------------------------------------------------------------------------------- 1 | import { Container, ServiceClassInstance } from "dioc" 2 | import { AdditionalLinksService } from "~/services/additionalLinks.service" 3 | 4 | export type AdditionalLinksPlatformDef = Array< 5 | ServiceClassInstance & { 6 | new (c: Container): AdditionalLinksService 7 | } 8 | > 9 | -------------------------------------------------------------------------------- /devenv.yaml: -------------------------------------------------------------------------------- 1 | inputs: 2 | fenix: 3 | url: github:nix-community/fenix 4 | inputs: 5 | nixpkgs: 6 | follows: nixpkgs 7 | nixpkgs: 8 | url: github:NixOS/nixpkgs/nixpkgs-unstable 9 | rust-overlay: 10 | url: github:oxalica/rust-overlay 11 | inputs: 12 | nixpkgs: 13 | follows: nixpkgs 14 | allowUnfree: true 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/backend.Caddyfile: -------------------------------------------------------------------------------- 1 | { 2 | admin off 3 | persist_config off 4 | } 5 | 6 | :80 :3170 { 7 | @mock { 8 | header_regexp host Host ^[^.]+\.mock\..*$ 9 | } 10 | 11 | handle @mock { 12 | rewrite * /mock{uri} 13 | reverse_proxy localhost:8080 14 | } 15 | 16 | handle { 17 | reverse_proxy localhost:8080 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateTeamEnvironment.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateTeamEnvironment( 2 | $variables: String! 3 | $teamID: ID! 4 | $name: String! 5 | ) { 6 | createTeamEnvironment(variables: $variables, teamID: $teamID, name: $name) { 7 | variables 8 | name 9 | teamID 10 | id 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/SortTeamCollections.graphql: -------------------------------------------------------------------------------- 1 | mutation SortTeamCollections( 2 | $teamID: ID! 3 | $parentCollectionID: ID 4 | $sortOption: SortOptions! 5 | ) { 6 | sortTeamCollections( 7 | teamID: $teamID 8 | parentCollectionID: $parentCollectionID 9 | sortOption: $sortOption 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/history.ts: -------------------------------------------------------------------------------- 1 | import { Ref } from "vue" 2 | 3 | export type HistoryPlatformDef = { 4 | initHistorySync: () => void 5 | requestHistoryStore?: { 6 | isHistoryStoreEnabled: Ref 7 | isFetchingHistoryStoreStatus: Ref 8 | hasErrorFetchingHistoryStoreStatus: Ref 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/tsconfig.decl.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "emitDeclarationOnly": true, 6 | "declarationDir": "./dist", 7 | "rootDir": "./src" 8 | }, 9 | "include": ["src/**/*.ts"], 10 | "exclude": ["node_modules", "dist", "**/*.spec.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreatePublishedDoc.graphql: -------------------------------------------------------------------------------- 1 | mutation CreatePublishedDoc($args: CreatePublishedDocsArgs!) { 2 | createPublishedDoc(args: $args) { 3 | id 4 | title 5 | version 6 | autoSync 7 | url 8 | createdOn 9 | updatedOn 10 | workspaceType 11 | workspaceID 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/envvar.rs: -------------------------------------------------------------------------------- 1 | use std::{collections::HashMap, env}; 2 | 3 | /// Collect environment variables that should be exposed to the web app 4 | pub(super) fn collect_env_vars() -> HashMap { 5 | env::vars() 6 | .filter(|(k, _)| k.starts_with("VITE_")) 7 | .collect() 8 | } 9 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/userCollectionDuplicated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserCollectionDuplicated { 2 | userCollectionDuplicated { 3 | id 4 | parentID 5 | title 6 | type 7 | data 8 | childCollections 9 | requests { 10 | id 11 | request 12 | collectionID 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/env-v2.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "env-v2", 3 | "v": 2, 4 | "name": "env-v2", 5 | "variables": [ 6 | { 7 | "key": "baseURL", 8 | "initialValue": "https://echo.hoppscotch.io", 9 | "currentValue": "https://echo.hoppscotch.io", 10 | "secret": false 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateLookUpRequestOrder.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateLookUpRequestOrder( 2 | $requestID: ID! 3 | $nextRequestID: ID 4 | $collectionID: ID! 5 | ) { 6 | updateLookUpRequestOrder( 7 | requestID: $requestID 8 | nextRequestID: $nextRequestID 9 | collectionID: $collectionID 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateTeamMemberRole.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateTeamAccessRole( 2 | $newRole: TeamAccessRole!, 3 | $userUid: ID!, 4 | $teamID: ID! 5 | ) { 6 | updateTeamAccessRole( 7 | newRole: $newRole 8 | userUid: $userUid 9 | teamID: $teamID 10 | ) { 11 | membershipID 12 | role 13 | } 14 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/editor/linting/jsoncPretty.ts: -------------------------------------------------------------------------------- 1 | import { format, applyEdits } from "jsonc-parser" 2 | 3 | export function prettifyJSONC(str: string) { 4 | const editResult = format(str, undefined, { 5 | insertSpaces: true, 6 | tabSize: 2, 7 | insertFinalNewline: true, 8 | }) 9 | return applyEdits(str, editResult) 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/platformutils.ts: -------------------------------------------------------------------------------- 1 | export function isAppleDevice() { 2 | return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) 3 | } 4 | 5 | export function getPlatformSpecialKey() { 6 | return isAppleDevice() ? "⌘" : "Ctrl" 7 | } 8 | 9 | export function getPlatformAlternateKey() { 10 | return isAppleDevice() ? "⌥" : "Alt" 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/spotlight.ts: -------------------------------------------------------------------------------- 1 | import { Container, ServiceClassInstance } from "dioc" 2 | import { SpotlightSearcher } from "~/services/spotlight" 3 | 4 | export type SpotlightPlatformDef = { 5 | additionalSearchers?: Array< 6 | ServiceClassInstance & { 7 | new (c: Container): SpotlightSearcher 8 | } 9 | > 10 | } 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/std/kernel-io.ts: -------------------------------------------------------------------------------- 1 | import { KernelIO } from "~/platform/kernel-io" 2 | import { Io } from "~/kernel/io" 3 | 4 | export const kernelIO: KernelIO = { 5 | saveFileWithDialog(opts) { 6 | return Io.saveFileWithDialog(opts) 7 | }, 8 | openExternalLink(opts) { 9 | return Io.openExternalLink(opts) 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/UsersList.graphql: -------------------------------------------------------------------------------- 1 | # Write your query or mutation here 2 | query UsersList($cursor: ID, $take: Int) { 3 | infra { 4 | allUsers(cursor: $cursor, take: $take) { 5 | uid 6 | displayName 7 | email 8 | isAdmin 9 | photoURL 10 | createdOn 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/UserPublishedDocsList.graphql: -------------------------------------------------------------------------------- 1 | query UserPublishedDocsList($skip: Int!, $take: Int!) { 2 | userPublishedDocsList(skip: $skip, take: $take) { 3 | id 4 | title 5 | version 6 | autoSync 7 | url 8 | collection { 9 | id 10 | } 11 | createdOn 12 | updatedOn 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/import/importers.ts: -------------------------------------------------------------------------------- 1 | export { hoppRESTImporter } from "./hopp" 2 | export { hoppOpenAPIImporter } from "./openapi" 3 | export { hoppPostmanImporter } from "./postman" 4 | export { hoppInsomniaImporter } from "./insomnia/insomniaColl" 5 | export { toTeamsImporter } from "./myCollections" 6 | export { harImporter } from "./har" 7 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/CreateInfraToken.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateInfraToken($label: String!, $expiryInDays: Int) { 2 | createInfraToken(label: $label, expiryInDays: $expiryInDays) { 3 | info { 4 | id 5 | label 6 | lastUsedOn 7 | createdOn 8 | expiresOn 9 | } 10 | token 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetInviteDetails.graphql: -------------------------------------------------------------------------------- 1 | query GetInviteDetails($inviteID: ID!) { 2 | teamInvitation(inviteID: $inviteID) { 3 | id 4 | inviteeEmail 5 | inviteeRole 6 | team { 7 | id 8 | name 9 | } 10 | creator { 11 | uid 12 | displayName 13 | email 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/ExportUserCollectionsToJSON.graphql: -------------------------------------------------------------------------------- 1 | query ExportUserCollectionsToJSON( 2 | $collectionID: ID 3 | $collectionType: ReqType! 4 | ) { 5 | exportUserCollectionsToJSON( 6 | collectionID: $collectionID 7 | collectionType: $collectionType 8 | ) { 9 | collectionType 10 | exportedCollection 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | contact_links: 2 | - name: Help and support 3 | url: https://github.com/hoppscotch/hoppscotch#support 4 | about: Reach out to us on our Discord server or Telegram group or GitHub discussions. 5 | - name: Dedicated support 6 | url: mailto:support@hoppscotch.io 7 | about: Write to us if you'd like dedicated support using Hoppscotch 8 | -------------------------------------------------------------------------------- /packages/codemirror-lang-graphql/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "target": "es6", 5 | "module": "es2020", 6 | "newLine": "lf", 7 | "declaration": true, 8 | "declarationDir": "./dist", 9 | "moduleResolution": "node", 10 | "skipLibCheck": true, 11 | "allowJs": true 12 | }, 13 | "include": ["src/*"] 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/malformed-envs.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 123, 3 | "v": "1", 4 | "name": "secret-envs", 5 | "values": [ 6 | { 7 | "key": "secretVar", 8 | "secret": true 9 | }, 10 | { 11 | "key": "regularVar", 12 | "secret": false, 13 | "value": "regular-variable" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/assets/icons/brands/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/assets/icons/star-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateTeamInvitation.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateTeamInvitation($inviteeEmail: String!, $inviteeRole: TeamAccessRole!, $teamID: ID!) { 2 | createTeamInvitation(inviteeRole: $inviteeRole, inviteeEmail: $inviteeEmail, teamID: $teamID) { 3 | id 4 | teamID 5 | creatorUid 6 | inviteeEmail 7 | inviteeRole 8 | } 9 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/UpdateTeamCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateTeamCollection( 2 | $collectionID: ID! 3 | $newTitle: String 4 | $data: String 5 | ) { 6 | updateTeamCollection( 7 | collectionID: $collectionID 8 | newTitle: $newTitle 9 | data: $data 10 | ) { 11 | id 12 | title 13 | data 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src/views/shared/LoadingState.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ message }} 5 | 6 | 7 | 8 | 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/UpdateUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateUserCollection( 2 | $userCollectionID: ID! 3 | $newTitle: String 4 | $data: String 5 | ) { 6 | updateUserCollection( 7 | userCollectionID: $userCollectionID 8 | newTitle: $newTitle 9 | data: $data 10 | ) { 11 | id 12 | title 13 | data 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/AddUserToTeamByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation AddUserToTeamByAdmin( 2 | $userEmail: String! 3 | $role: TeamAccessRole! 4 | $teamID: ID! 5 | ) { 6 | addUserToTeamByAdmin(role: $role, userEmail: $userEmail, teamID: $teamID) { 7 | membershipID 8 | role 9 | user { 10 | uid 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/CreateTeamInvitation.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateTeamInvitation($inviteeEmail: String!, $inviteeRole: TeamAccessRole!, $teamID: ID!) { 2 | createTeamInvitation(inviteeRole: $inviteeRole, inviteeEmail: $inviteeEmail, teamID: $teamID) { 3 | id 4 | teamID 5 | creatorUid 6 | inviteeEmail 7 | inviteeRole 8 | } 9 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/terndoc/pw-pre.json: -------------------------------------------------------------------------------- 1 | { 2 | "!name": "pw-pre", 3 | "pw": { 4 | "env": { 5 | "set": "fn(key: string, value: string)", 6 | "unset": "fn(key: string)", 7 | "get": "fn(key: string) -> string", 8 | "getResolve": "fn(key: string) -> string", 9 | "resolve": "fn(value: string) -> string" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/SharedRequests.graphql: -------------------------------------------------------------------------------- 1 | query SharedRequests($cursor: ID, $take: Int, $email: String) { 2 | infra { 3 | allShortcodes(cursor: $cursor, take: $take, userEmail: $email) { 4 | id 5 | request 6 | properties 7 | createdOn 8 | creator { 9 | email 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateRESTUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateRESTUserRequest( 2 | $collectionID: ID! 3 | $title: String! 4 | $request: String! 5 | ) { 6 | createRESTUserRequest( 7 | collectionID: $collectionID 8 | title: $title 9 | request: $request 10 | ) { 11 | id 12 | title 13 | request 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/subscriptions/UserCollectionOrderUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription UserCollectionOrderUpdated { 2 | userCollectionOrderUpdated { 3 | userCollection { 4 | id 5 | parent { 6 | id 7 | } 8 | } 9 | 10 | nextUserCollection { 11 | id 12 | parent { 13 | id 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/ChangeUserRoleInTeamByAdmin.graphql: -------------------------------------------------------------------------------- 1 | mutation ChangeUserRoleInTeamByAdmin( 2 | $userUID: ID! 3 | $teamID: ID! 4 | $newRole: TeamAccessRole! 5 | ) { 6 | changeUserRoleInTeamByAdmin( 7 | userUID: $userUID 8 | teamID: $teamID 9 | newRole: $newRole 10 | ) { 11 | membershipID 12 | role 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateRequestInCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateRequestInCollection($data: CreateTeamRequestInput!, $collectionID: ID!) { 2 | createRequestInCollection(data: $data, collectionID: $collectionID) { 3 | id 4 | collection { 5 | id 6 | team { 7 | id 8 | name 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/types/TeamName.ts: -------------------------------------------------------------------------------- 1 | import * as t from "io-ts" 2 | 3 | interface TeamNameBrand { 4 | readonly TeamName: unique symbol 5 | } 6 | 7 | export const TeamNameCodec = t.brand( 8 | t.string, 9 | (x): x is t.Branded => x.trim() !== "", 10 | "TeamName" 11 | ) 12 | 13 | export type TeamName = t.TypeOf 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | .DS_Store 3 | .Thumbs.db 4 | *.sublime* 5 | .idea/ 6 | debug.log 7 | package-lock.json 8 | .vscode/settings.json 9 | yarn.lock 10 | 11 | /.tauri 12 | /target 13 | node_modules/ 14 | # Devenv 15 | .devenv* 16 | devenv.local.nix 17 | 18 | # direnv 19 | .direnv 20 | 21 | # pre-commit 22 | .pre-commit-config.yaml 23 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/src-tauri/capabilities/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../gen/schemas/desktop-schema.json", 3 | "identifier": "default", 4 | "description": "enables the default permissions", 5 | "windows": [ 6 | "main" 7 | ], 8 | "permissions": [ 9 | "core:default", 10 | "appload:default" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-kernel/src/io/index.ts: -------------------------------------------------------------------------------- 1 | import { v1 } from './v/1' 2 | 3 | export type { 4 | IoV1, 5 | SaveFileWithDialogOptions, 6 | SaveFileResponse, 7 | OpenExternalLinkOptions, 8 | OpenExternalLinkResponse, 9 | Event, 10 | EventCallback, 11 | UnlistenFn 12 | } from './v/1' 13 | 14 | export const VERSIONS = { 15 | v1, 16 | } as const 17 | 18 | export const latest = v1 19 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateGQLChildUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateGQLChildUserCollection( 2 | $title: String! 3 | $parentUserCollectionID: ID! 4 | $data: String 5 | ) { 6 | createGQLChildUserCollection( 7 | title: $title 8 | parentUserCollectionID: $parentUserCollectionID 9 | data: $data 10 | ) { 11 | id 12 | data 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/queries/UsersListV2.graphql: -------------------------------------------------------------------------------- 1 | query UsersListV2($searchString: String, $skip: Int, $take: Int) { 2 | infra { 3 | allUsersV2(searchString: $searchString, skip: $skip, take: $take) { 4 | uid 5 | displayName 6 | email 7 | isAdmin 8 | photoURL 9 | createdOn 10 | lastActiveOn 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/GetMyTeams.graphql: -------------------------------------------------------------------------------- 1 | query GetMyTeams($cursor: ID) { 2 | myTeams(cursor: $cursor) { 3 | id 4 | name 5 | myRole 6 | ownersCount 7 | teamMembers { 8 | membershipID 9 | user { 10 | photoURL 11 | displayName 12 | email 13 | uid 14 | } 15 | role 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "module": "esnext", 5 | "lib": ["esnext", "DOM"], 6 | "moduleResolution": "node", 7 | "esModuleInterop": true, 8 | "strict": true, 9 | "strictNullChecks": true, 10 | "skipLibCheck": true, 11 | "resolveJsonModule": true 12 | }, 13 | "include": ["src/**/*.ts"] 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/uri/error.rs: -------------------------------------------------------------------------------- 1 | use thiserror::Error; 2 | 3 | #[derive(Debug, Error)] 4 | pub enum UriError { 5 | #[error("HTTP error: {0}")] 6 | Http(#[from] tauri::http::Error), 7 | 8 | #[error("Cache error: {0}")] 9 | Cache(#[from] crate::cache::CacheError), 10 | } 11 | 12 | pub type Result = std::result::Result; 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-relay/.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | .DS_Store 3 | .Thumbs.db 4 | *.sublime* 5 | .idea/ 6 | debug.log 7 | package-lock.json 8 | .vscode/settings.json 9 | yarn.lock 10 | 11 | /.tauri 12 | /target 13 | node_modules/ 14 | 15 | # Devenv 16 | .devenv* 17 | devenv.local.nix 18 | 19 | # direnv 20 | .direnv 21 | 22 | # pre-commit 23 | .pre-commit-config.yaml 24 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/CreateRESTChildUserCollection.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateRESTChildUserCollection( 2 | $title: String! 3 | $parentUserCollectionID: ID! 4 | $data: String 5 | ) { 6 | createRESTChildUserCollection( 7 | title: $title 8 | parentUserCollectionID: $parentUserCollectionID 9 | data: $data 10 | ) { 11 | id 12 | data 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/functional/taskEither.ts: -------------------------------------------------------------------------------- 1 | import * as TE from "fp-ts/TaskEither" 2 | 3 | /** 4 | * A utility type which gives you the type of the left value of a TaskEither 5 | */ 6 | export type TELeftType> = 7 | T extends TE.TaskEither< 8 | infer U, 9 | // eslint-disable-next-line 10 | infer _ 11 | > 12 | ? U 13 | : never 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/RESTError.ts: -------------------------------------------------------------------------------- 1 | import { HttpStatus } from '@nestjs/common'; 2 | 3 | /** 4 | ** Custom interface to handle errors for REST modules such as Auth, Admin modules 5 | ** Since its REST we need to return the HTTP status code along with the error message 6 | */ 7 | export type RESTError = { 8 | message: string | Record; 9 | statusCode: HttpStatus; 10 | }; 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamRequestOrderUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamRequestOrderUpdated($teamID: ID!) { 2 | requestOrderUpdated(teamID: $teamID) { 3 | request { 4 | id 5 | collectionID 6 | request 7 | title 8 | } 9 | nextRequest { 10 | id 11 | collectionID 12 | request 13 | title 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/src/cache/mod.rs: -------------------------------------------------------------------------------- 1 | mod error; 2 | mod manager; 3 | mod policy; 4 | mod store; 5 | 6 | pub use error::{CacheError, Result}; 7 | pub use manager::CacheManager; 8 | pub use policy::CachePolicy; 9 | pub use store::FileStore; 10 | 11 | pub const DEFAULT_CACHE_SIZE: usize = 1000 * 1024 * 1024; // 1000MB 12 | pub const DEFAULT_FILE_TTL: u64 = 3600; // 1 hour 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/admin/guards/rest-admin.guard.ts: -------------------------------------------------------------------------------- 1 | import { Injectable, ExecutionContext, CanActivate } from '@nestjs/common'; 2 | 3 | @Injectable() 4 | export class RESTAdminGuard implements CanActivate { 5 | canActivate(context: ExecutionContext): boolean { 6 | const request = context.switchToHttp().getRequest(); 7 | const user = request.user; 8 | 9 | return user.isAdmin; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/badge-dark.svg: -------------------------------------------------------------------------------- 1 | ▶ Run in Hoppscotch 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/badge-light.svg: -------------------------------------------------------------------------------- 1 | ▶ Run in Hoppscotch 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/public/badge.svg: -------------------------------------------------------------------------------- 1 | ▶ Run in Hoppscotch 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/admin/decorators/gql-admin.decorator.ts: -------------------------------------------------------------------------------- 1 | import { createParamDecorator, ExecutionContext } from '@nestjs/common'; 2 | import { GqlExecutionContext } from '@nestjs/graphql'; 3 | 4 | export const GqlAdmin = createParamDecorator( 5 | (data: unknown, context: ExecutionContext) => { 6 | const ctx = GqlExecutionContext.create(context); 7 | return ctx.getContext().req.user; 8 | }, 9 | ); 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | export default defineConfig({ 4 | entry: ["./src/index.ts"], 5 | outDir: "./dist/", 6 | format: ["esm"], 7 | platform: "node", 8 | sourcemap: true, 9 | bundle: true, 10 | target: "esnext", 11 | skipNodeModulesBundle: false, 12 | esbuildOptions(options) { 13 | options.bundle = true; 14 | }, 15 | clean: true, 16 | }); 17 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitest/config"; 2 | 3 | export default defineConfig({ 4 | test: { 5 | environment: "node", 6 | setupFiles: ["./setupFiles.ts"], 7 | include: ["**/src/__tests__/**/**/*.{test,spec}.ts"], 8 | exclude: [ 9 | "**/node_modules/**", 10 | "**/dist/**", 11 | "**/src/__tests__/functions/**/*.ts", 12 | ], 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { tuple } from "io-ts" 2 | import { resolve } from "path" 3 | import { defineConfig } from "vite" 4 | 5 | export default defineConfig({ 6 | build: { 7 | outDir: "./dist", 8 | emptyOutDir: true, 9 | lib: { 10 | entry: resolve(__dirname, "src/index.ts"), 11 | fileName: "hoppscotch-data", 12 | formats: ["es", "cjs"], 13 | }, 14 | }, 15 | }) 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/gql-codegen.yml: -------------------------------------------------------------------------------- 1 | overwrite: true 2 | schema: "../../gql-gen/*.gql" 3 | generates: 4 | src/helpers/backend/graphql.ts: 5 | documents: 'src/**/*.graphql' 6 | plugins: 7 | - 'typescript' 8 | - 'typescript-operations' 9 | - 'typed-document-node' 10 | - 'urql-introspection' 11 | src/helpers/backend/graphql.schema.json: 12 | plugins: 13 | - 'introspection' 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/lenses/rawLens.ts: -------------------------------------------------------------------------------- 1 | import { defineAsyncComponent } from "vue" 2 | import { Lens } from "./lenses" 3 | 4 | const rawLens: Lens = { 5 | lensName: "response.raw", 6 | isSupportedContentType: () => true, 7 | renderer: "raw", 8 | rendererImport: defineAsyncComponent( 9 | () => import("~/components/lenses/renderers/RawLensRenderer.vue") 10 | ), 11 | } 12 | 13 | export default rawLens 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/modules/v-focus.ts: -------------------------------------------------------------------------------- 1 | import { nextTick } from "vue" 2 | import { HoppModule } from "." 3 | 4 | /* 5 | Declares a `v-focus` directive that can be used for components 6 | to acquire focus instantly once mounted 7 | */ 8 | 9 | export default { 10 | onVueAppInit(app) { 11 | app.directive("focus", { 12 | mounted: (el) => nextTick(() => el.focus()), 13 | }) 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetUserRootCollections.graphql: -------------------------------------------------------------------------------- 1 | query GetUserRootCollections { 2 | # the frontend doesnt paginate right now, so giving take a big enough value to get all collections at once 3 | rootRESTUserCollections(take: 99999) { 4 | id 5 | title 6 | type 7 | data 8 | childrenREST { 9 | id 10 | title 11 | type 12 | data 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/options/test/delay.ts: -------------------------------------------------------------------------------- 1 | import { error } from "../../types/errors"; 2 | 3 | export function parseDelayOption(delay: string): number { 4 | const maybeInt = Number.parseInt(delay); 5 | 6 | if (!Number.isNaN(maybeInt)) { 7 | return maybeInt; 8 | } else { 9 | throw error({ 10 | code: "INVALID_ARGUMENT", 11 | data: "Expected '-d, --delay' value to be number", 12 | }); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/utils/constants.ts: -------------------------------------------------------------------------------- 1 | import { ResponseErrorPair } from "../interfaces/response"; 2 | 3 | export const responseErrors: ResponseErrorPair = { 4 | 501: "REQUEST NOT SUPPORTED", 5 | 408: "NETWORK TIMEOUT", 6 | 400: "BAD REQUEST", 7 | } as const; 8 | 9 | /** 10 | * Default decimal precision to round-off calculated HRTime time in seconds. 11 | */ 12 | export const DEFAULT_DURATION_PRECISION: number = 3; 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetRootGQLUserCollections.graphql: -------------------------------------------------------------------------------- 1 | query GetGQLRootUserCollections { 2 | # the frontend doesnt paginate right now, so giving take a big enough value to get all collections at once 3 | rootGQLUserCollections(take: 99999) { 4 | id 5 | title 6 | type 7 | data 8 | childrenGQL { 9 | id 10 | title 11 | type 12 | data 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/modules/v-focus.ts: -------------------------------------------------------------------------------- 1 | import { nextTick } from "vue" 2 | import { HoppModule } from "." 3 | 4 | /* 5 | Declares a `v-focus` directive that can be used for components 6 | to acquire focus instantly once mounted 7 | */ 8 | 9 | export default { 10 | onVueAppInit(app) { 11 | app.directive("focus", { 12 | mounted: (el) => nextTick(() => el.focus()), 13 | }) 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/assets/icons/insomnia.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/mutations/CreateTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateTeam($name: String!) { 2 | createTeam(name: $name) { 3 | id 4 | name 5 | members { 6 | membershipID 7 | role 8 | user { 9 | uid 10 | displayName 11 | email 12 | photoURL 13 | } 14 | } 15 | myRole 16 | ownersCount 17 | editorsCount 18 | viewersCount 19 | } 20 | } -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/subscriptions/TeamCollectionOrderUpdated.graphql: -------------------------------------------------------------------------------- 1 | subscription TeamCollectionOrderUpdated($teamID: ID!) { 2 | collectionOrderUpdated(teamID: $teamID) { 3 | collection { 4 | id 5 | title 6 | parent { 7 | id 8 | } 9 | } 10 | nextCollection { 11 | id 12 | title 13 | parent { 14 | id 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/ImportUserCollectionsFromJSON.graphql: -------------------------------------------------------------------------------- 1 | mutation ImportUserCollectionsFromJSON( 2 | $jsonString: String! 3 | $reqType: ReqType! 4 | $parentCollectionID: ID 5 | ) { 6 | importUserCollectionsFromJSON( 7 | jsonString: $jsonString 8 | reqType: $reqType 9 | parentCollectionID: $parentCollectionID 10 | ) { 11 | exportedCollection 12 | collectionType 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/components/share/templates/Button.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/gql/queries/PublishedDoc.graphql: -------------------------------------------------------------------------------- 1 | query PublishedDoc($id: ID!) { 2 | publishedDoc(id: $id) { 3 | id 4 | title 5 | version 6 | autoSync 7 | url 8 | metadata 9 | createdOn 10 | updatedOn 11 | creator { 12 | uid 13 | displayName 14 | email 15 | photoURL 16 | } 17 | collection { 18 | id 19 | title 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/src/environment/v/0.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod" 2 | import { defineVersion } from "verzod" 3 | 4 | export const V0_SCHEMA = z.object({ 5 | id: z.optional(z.string()), 6 | name: z.string(), 7 | variables: z.array( 8 | z.object({ 9 | key: z.string(), 10 | value: z.string(), 11 | }) 12 | ), 13 | }) 14 | 15 | export default defineVersion({ 16 | initial: true, 17 | schema: V0_SCHEMA, 18 | }) 19 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/src/utils/collection.ts: -------------------------------------------------------------------------------- 1 | import { v4 as uuidV4 } from "uuid" 2 | 3 | /** 4 | * Generate a unique reference ID 5 | * @param prefix Prefix to add to the generated ID 6 | * @returns The generated reference ID 7 | */ 8 | export const generateUniqueRefId = (prefix = "") => { 9 | const timestamp = Date.now().toString(36) 10 | const randomPart = uuidV4() 11 | 12 | return `${prefix}_${timestamp}_${randomPart}` 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src/views/shared/VersionInfo.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | Version {{ version }} 4 | Data: {{ dataDirectory }} 5 | 6 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-agent/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Hoppscotch Agent 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/plugin-workspace/tauri-plugin-appload/examples/tauri-app/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/guards/throttler-behind-proxy.guard.ts: -------------------------------------------------------------------------------- 1 | import { ThrottlerGuard } from '@nestjs/throttler'; 2 | import { Injectable } from '@nestjs/common'; 3 | 4 | @Injectable() 5 | export class ThrottlerBehindProxyGuard extends ThrottlerGuard { 6 | protected async getTracker(req: Record): Promise { 7 | return req.ips.length ? req.ips[0] : req.ip; // individualize IP extraction to meet your own needs 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/shortcode/shortcode.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { UserModule } from 'src/user/user.module'; 3 | import { ShortcodeResolver } from './shortcode.resolver'; 4 | import { ShortcodeService } from './shortcode.service'; 5 | 6 | @Module({ 7 | imports: [UserModule], 8 | providers: [ShortcodeService, ShortcodeResolver], 9 | exports: [ShortcodeService], 10 | }) 11 | export class ShortcodeModule {} 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/import-export/import/hoppGql.ts: -------------------------------------------------------------------------------- 1 | import { HoppCollection } from "@hoppscotch/data" 2 | import * as E from "fp-ts/Either" 3 | 4 | // TODO: add zod validation 5 | export const hoppGqlCollectionsImporter = ( 6 | contents: string[] 7 | ): E.Either<"INVALID_JSON", HoppCollection[]> => { 8 | return E.tryCatch( 9 | () => contents.flatMap((content) => JSON.parse(content)), 10 | () => "INVALID_JSON" 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/utils/uri.js: -------------------------------------------------------------------------------- 1 | export function parseUrlAndPath(value) { 2 | const result = {} 3 | try { 4 | const url = new URL(value) 5 | result.url = url.origin 6 | result.path = url.pathname 7 | } catch (e) { 8 | const uriRegex = value.match( 9 | /^((http[s]?:\/\/)?(<<[^/]+>>)?[^/]*|)(\/?.*)$/ 10 | ) 11 | result.url = uriRegex[1] 12 | result.path = uriRegex[4] 13 | } 14 | return result 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/mutations/MoveUserRequest.graphql: -------------------------------------------------------------------------------- 1 | mutation MoveUserRequest( 2 | $sourceCollectionID: ID! 3 | $requestID: ID! 4 | $destinationCollectionID: ID! 5 | $nextRequestID: ID 6 | ) { 7 | moveUserRequest( 8 | sourceCollectionID: $sourceCollectionID 9 | requestID: $requestID 10 | destinationCollectionID: $destinationCollectionID 11 | nextRequestID: $nextRequestID 12 | ) { 13 | id 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/kernel/index.ts: -------------------------------------------------------------------------------- 1 | import { KernelAPI } from "@hoppscotch/kernel" 2 | 3 | export { Io } from "./io" 4 | export { Relay } from "./relay" 5 | export { Store } from "./store" 6 | 7 | export const getModule = ( 8 | name: K 9 | ): NonNullable => { 10 | const kernel = window.__KERNEL__ 11 | if (!kernel?.[name]) throw new Error(`Kernel ${name} not initialized`) 12 | return kernel[name] 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Hoppscotch Desktop App 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/layouts/default.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/backend/mutations/Profile.ts: -------------------------------------------------------------------------------- 1 | import { runMutation } from "../GQLClient" 2 | import { 3 | DeleteUserDocument, 4 | DeleteUserMutation, 5 | DeleteUserMutationVariables, 6 | } from "../graphql" 7 | 8 | type DeleteUserErrors = "user/not_found" 9 | 10 | export const deleteUser = () => 11 | runMutation< 12 | DeleteUserMutation, 13 | DeleteUserMutationVariables, 14 | DeleteUserErrors 15 | >(DeleteUserDocument, {}) 16 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/lenses/xmlLens.ts: -------------------------------------------------------------------------------- 1 | import { defineAsyncComponent } from "vue" 2 | import { Lens } from "./lenses" 3 | 4 | const xmlLens: Lens = { 5 | lensName: "response.xml", 6 | isSupportedContentType: (contentType) => /\bxml\b/i.test(contentType), 7 | renderer: "xmlres", 8 | rendererImport: defineAsyncComponent( 9 | () => import("~/components/lenses/renderers/XMLLensRenderer.vue") 10 | ), 11 | } 12 | 13 | export default xmlLens 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/kernel/index.ts: -------------------------------------------------------------------------------- 1 | import { KernelAPI } from "@hoppscotch/kernel" 2 | 3 | export { Io } from "./io" 4 | export { Relay } from "./relay" 5 | export { Store } from "./store" 6 | 7 | export const getModule = ( 8 | name: K 9 | ): NonNullable => { 10 | const kernel = window.__KERNEL__ 11 | if (!kernel?.[name]) throw new Error(`Kernel ${name} not initialized`) 12 | return kernel[name] 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/decorators/gql-user.decorator.ts: -------------------------------------------------------------------------------- 1 | import { createParamDecorator, ExecutionContext } from '@nestjs/common'; 2 | import { GqlExecutionContext } from '@nestjs/graphql'; 3 | 4 | export const GqlUser = createParamDecorator( 5 | (data: unknown, context: ExecutionContext) => { 6 | const ctx = GqlExecutionContext.create(context); 7 | const { req, headers } = ctx.getContext(); 8 | return headers ? headers.user : req.user; 9 | }, 10 | ); 11 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/utils/date.ts: -------------------------------------------------------------------------------- 1 | export function shortDateTime( 2 | date: string | number | Date, 3 | includeTime: boolean = true 4 | ) { 5 | return new Date(date).toLocaleString("en-US", { 6 | year: "numeric", 7 | month: "short", 8 | day: "numeric", 9 | ...(includeTime 10 | ? { 11 | hour: "numeric", 12 | minute: "numeric", 13 | second: "numeric", 14 | } 15 | : {}), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src/kernel/index.ts: -------------------------------------------------------------------------------- 1 | import { KernelAPI } from "@hoppscotch/kernel" 2 | 3 | export { Io } from "./io" 4 | export { Relay } from "./relay" 5 | export { Store } from "./store" 6 | 7 | export const getModule = ( 8 | name: K 9 | ): NonNullable => { 10 | const kernel = window.__KERNEL__ 11 | if (!kernel?.[name]) throw new Error(`Kernel ${String(name)} not initialized`) 12 | return kernel[name] 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-selfhost-web/src/api/queries/GetRestUserHistory.graphql: -------------------------------------------------------------------------------- 1 | query GetRESTUserHistory { 2 | me { 3 | RESTHistory { 4 | id 5 | userUid 6 | reqType 7 | request 8 | responseMetadata 9 | isStarred 10 | executedOn 11 | } 12 | 13 | GQLHistory { 14 | id 15 | userUid 16 | reqType 17 | request 18 | responseMetadata 19 | isStarred 20 | executedOn 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/backend/gql/mutations/CreateTeam.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateTeam($userUid: ID!, $name: String!) { 2 | createTeamByAdmin(userUid: $userUid, name: $name) { 3 | id 4 | name 5 | members { 6 | membershipID 7 | role 8 | user { 9 | uid 10 | displayName 11 | email 12 | photoURL 13 | } 14 | } 15 | ownersCount 16 | editorsCount 17 | viewersCount 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/src/helpers/utils/date.ts: -------------------------------------------------------------------------------- 1 | export function shortDateTime( 2 | date: string | number | Date, 3 | includeTime: boolean = true 4 | ) { 5 | return new Date(date).toLocaleString("en-US", { 6 | year: "numeric", 7 | month: "short", 8 | day: "numeric", 9 | ...(includeTime 10 | ? { 11 | hour: "numeric", 12 | minute: "numeric", 13 | second: "numeric", 14 | } 15 | : {}), 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/user/user.data.handler.ts: -------------------------------------------------------------------------------- 1 | import * as T from 'fp-ts/Task'; 2 | import * as TO from 'fp-ts/TaskOption'; 3 | import { AuthUser } from '../types/AuthUser'; 4 | 5 | /** 6 | * Defines how external services should handle User Data and User data related operations and actions. 7 | */ 8 | export interface UserDataHandler { 9 | canAllowUserDeletion: (user: AuthUser) => TO.TaskOption; 10 | onUserDelete: (user: AuthUser) => T.Task; 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "outDir": "../dist", 6 | "rootDir": ".", 7 | "strict": true, 8 | "moduleResolution": "node", 9 | "resolveJsonModule": true, 10 | "esModuleInterop": true, 11 | "skipLibCheck": true, 12 | "forceConsistentCasingInFileNames": true 13 | }, 14 | "references": [ 15 | { 16 | "path": "../" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/assets/icons/auth/microsoft.svg: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/platform/tab.ts: -------------------------------------------------------------------------------- 1 | import { PersistableTabState } from "~/services/tab" 2 | import { HoppUser } from "./auth" 3 | import { HoppTabDocument } from "~/helpers/rest/document" 4 | 5 | export type TabStatePlatformDef = { 6 | loadTabStateFromSync: () => Promise | null> 7 | writeCurrentTabState: ( 8 | user: HoppUser, 9 | persistableTabState: PersistableTabState 10 | ) => Promise 11 | } 12 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/src/utils/record.ts: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Modify a record value with a mapping function 4 | * @param name The key to update 5 | * @param func The value to update 6 | * @returns The updated record 7 | */ 8 | export const recordUpdate = 9 | < 10 | X extends {}, 11 | K extends keyof X, 12 | R 13 | >(name: K, func: (input: X[K]) => R) => 14 | (x: X): Omit & { [x in K]: R } => ({ 15 | ...x, 16 | [name]: func(x[name]) 17 | }) 18 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .devenv* 2 | .direnv 3 | .devcontainer 4 | .git 5 | .github 6 | .husky 7 | .vscode 8 | 9 | .envrc 10 | devenv.yaml 11 | devenv.nix 12 | .prettierrc.js 13 | .prettierignore 14 | .editorconfig 15 | .npmrc 16 | .firebaserc 17 | 18 | node_modules 19 | **/node_modules 20 | **/*/node_modules 21 | 22 | **/dist 23 | **/build 24 | **/target 25 | 26 | **/__tests__ 27 | **/*.test.* 28 | **/coverage 29 | 30 | *.md 31 | LICENSE 32 | CODEOWNERS 33 | 34 | .DS_Store 35 | *.log 36 | -------------------------------------------------------------------------------- /packages/hoppscotch-backend/src/types/CollectionSearchNode.ts: -------------------------------------------------------------------------------- 1 | // Response type of results from the search query 2 | export type CollectionSearchNode = { 3 | /** Encodes the hierarchy of where the node is **/ 4 | path: CollectionSearchNode[]; 5 | } & ( 6 | | { 7 | type: 'request'; 8 | title: string; 9 | method: string; 10 | id: string; 11 | } 12 | | { 13 | type: 'collection'; 14 | title: string; 15 | id: string; 16 | } 17 | ); 18 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/vitest.d.ts: -------------------------------------------------------------------------------- 1 | import type { Assertion, AsymmetricMatchersContaining } from "vitest" 2 | 3 | interface CustomMatchers { 4 | toBeLeft(expected: unknown): R 5 | toBeRight(): R 6 | toEqualLeft(expected: unknown): R 7 | toSubsetEqualRight(expected: unknown): R 8 | } 9 | 10 | declare module 'vitest' { 11 | interface Assertion extends CustomMatchers {} 12 | interface AsymmetricMatchersContaining extends CustomMatchers {} 13 | } 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-desktop/src-tauri/src/error.rs: -------------------------------------------------------------------------------- 1 | use std::io; 2 | 3 | use thiserror::Error; 4 | 5 | #[derive(Debug, Error)] 6 | pub enum HoppError { 7 | #[error("IO error: {0}")] 8 | Io(#[from] io::Error), 9 | 10 | #[error("Failed to initialize server port")] 11 | ServerPortInitialization, 12 | 13 | #[error("Failed to emit event: {0}")] 14 | EventEmission(String), 15 | 16 | #[error("Tauri error: {0}")] 17 | Tauri(#[from] tauri::Error), 18 | } 19 | -------------------------------------------------------------------------------- /packages/hoppscotch-relay/src/error.rs: -------------------------------------------------------------------------------- 1 | use serde::Serialize; 2 | use thiserror::Error; 3 | 4 | #[derive(Debug, Error, Serialize)] 5 | pub enum RelayError { 6 | #[error("Invalid method")] 7 | InvalidMethod, 8 | #[error("Invalid URL")] 9 | InvalidUrl, 10 | #[error("Invalid headers")] 11 | InvalidHeaders, 12 | #[error("Request run error: {0}")] 13 | RequestRunError(String), 14 | } 15 | 16 | pub type RelayResult = std::result::Result; 17 | -------------------------------------------------------------------------------- /packages/hoppscotch-sh-admin/assets/icons/auth/microsoft.svg: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "outDir": ".", 6 | "rootDir": ".", 7 | "strict": true, 8 | "moduleResolution": "node", 9 | "resolveJsonModule": true, 10 | "esModuleInterop": true, 11 | "skipLibCheck": true, 12 | "forceConsistentCasingInFileNames": true, 13 | "composite": true, 14 | "lib": ["ESNext", "DOM"] 15 | }, 16 | "files": ["package.json"] 17 | } 18 | -------------------------------------------------------------------------------- /packages/hoppscotch-common/src/helpers/lenses/pdfLens.ts: -------------------------------------------------------------------------------- 1 | import { defineAsyncComponent } from "vue" 2 | import { Lens } from "./lenses" 3 | 4 | const pdfLens: Lens = { 5 | lensName: "response.pdf", 6 | isSupportedContentType: (contentType) => 7 | /\bapplication\/pdf\b/i.test(contentType), 8 | renderer: "pdfres", 9 | rendererImport: defineAsyncComponent( 10 | () => import("~/components/lenses/renderers/PDFLensRenderer.vue") 11 | ), 12 | } 13 | 14 | export default pdfLens 15 | -------------------------------------------------------------------------------- /packages/hoppscotch-data/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./rest" 2 | export * from "./graphql" 3 | export * from "./collection" 4 | export * from "./rawKeyValue" 5 | export * from "./environment" 6 | export * from "./global-environment" 7 | export * from "./predefinedVariables" 8 | export * from "./utils/collection" 9 | export * from "./utils/hawk" 10 | export * from "./utils/akamai-eg" 11 | export * from "./utils/jwt" 12 | export * from "./rest-request-response" 13 | export * from "./cookies" 14 | -------------------------------------------------------------------------------- /packages/hoppscotch-cli/src/__tests__/e2e/fixtures/environments/iteration-data-envs.json: -------------------------------------------------------------------------------- 1 | { 2 | "v": 0, 3 | "name": "Iteration data environments", 4 | "variables": [ 5 | { 6 | "key": "URL", 7 | "value": "https://httpbin.org/get" 8 | }, 9 | { 10 | "key": "BODY_KEY", 11 | "value": "overriden-body-key-at-environment" 12 | }, 13 | { 14 | "key": "BODY_VALUE", 15 | "value": "overriden-body-value-at-environment" 16 | } 17 | ] 18 | } 19 | --------------------------------------------------------------------------------
{{ message }}
Version {{ version }}
Data: {{ dataDirectory }}