The `ReqType` enum isn't available in the cloud context since the BE only deals with teams and GQL isn't supported under the same, hence there isn't a use case to differentiate between request types from the cloud BE context.
Introduce a new platform-level feature flag indicating whether to display a warning via the inspector regarding supported interceptor alongside Digest Auth.
* chore: added query to export single TeamCollection data
* chore: added query to export single UserCollection data
* chore: fixed typo
* chore: completed requested changes in PR review
* fix: collection properties header bulk update editor bug
* chore: add migration step while resolving `headers` in the syncing context
Resolve type errors.
* fix: prevent inifinite loading state in add environments modal
Toggle back the loading state if attempting to create an environment from a team workspace without specifying a name.
* fix: tab change when clicking computed auth
* fix: ensure tab change action works in GQL headers view
`Go to Authorization tab` action.
* chore: account for REST params while adding description fields
Writing to store after pulling from the syncing context.
---------
Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com>
* feat(body-label): added label that showing tab is not empty
* fix(body-raw): value is not updated when was empty
---------
Co-authored-by: Dmitry Mukovkin <d.mukovkin@cft.ru>
* feat: encryption added on onMuduleInit
* feat: encryption changes added on sh admin mutations and query
* chore: fetch minimum column from DB
* feat: data encryption added on account table
* test: infra config test case update
* chore: env example modified
* chore: update variable name
* chore: refactor the code
* feat: client-ids made encrypted
* chore: encrypted auth client id's
---------
Co-authored-by: Balu Babu <balub997@gmail.com>
* refactor: slim down the backend containers
* refactor: make containers run as non-root user in container
* chore: correct casing for the build stage definitions
* chore: remove docker compose version field as its obsolete
* chore: optimise chown and chmod into the COPY command itself
* chore: add package overrides for packages with reported vulns
* chore: add pnpm to containers + set workdir dir to the backend project
* fix: permission issues with the fe containers
* chore: define env variables on AIO
- Ensure the `Content-Type` header takes priority over the value set in the request body.
- Introduces `HoppRESTRequest` schema `v6` with `text/xml` added under the supported content types.
* feat: added route to delete users in user management api's
* chore: added lastLoggedOn and lastActiveOn fields to user response type
* chore: changed return type
* chore: changed target to prod for hopp-old-backend service
* feat: infra token module added
* feat: infra token guard added
* feat: token prefix removed
* feat: get pending invites api added
* docs: swagger doc added for get user invites api
* feat: delete user invitation api added
* feat: get users api added
* feat: update user api added
* feat: update admin status api added
* feat: create invitation api added
* chore: swagger doc update for create user invite
* feat: interceptor added to track last used on
* feat: change db schema
* chore: readonly tag added
* feat: get user by id api added
* fix: return type of a function
* feat: controller name change
* chore: improve token extractino
* chore: added email validation logic
---------
Co-authored-by: Balu Babu <balub997@gmail.com>
* feat: new success invite link modal introduced
* refactor: replaced button with lucide icon
* style: vertical padding to lucide icon
* feat: new success invite modal component
* refactor: hide copy link button when there are no pending invites
* refactor: changed copy link button to copy invite link
* chore: minor UI update
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
* chore: created new mutation for team-collection duplication
* feat: completed duplication function in TeamCollection module
* feat: user-collection duplication complete
* chore: changed duplicated title suffix for collections
* chore: added return type to argument for duplication mutation in user-collections
* chore: capitalized duplicate in duplicate collection service4 methods
* chore: changed target of hopp-old-backend service to prod
* feat: added new env variable
* feat: made http secure cookie conditional
* chore: added comments to env files
* chore: changed target of hopp-old-backend service to prod
* feat: env variable added in infra-config for smtp enable status
* feat: event emitter added
* feat: added advance mailer configurations from infra config
* test: fix test cases
* feat: added query to see is smtp enabled or not
* feat: email auth provider disabled on smtp disable
* chore: restrict on update directly instead of dedicated mutation
* fix: feedback resolved
* chore: modify mailer module
* chore: error handle in mailer functions
* chore: removed unused imports
* chore: remove event-emit
* chore: update env example
* test: fix broken test cases
* chore: feedback resolved
* chore: isSMTPEnabled moved to infra config resolver
* fix: email can not reenable if smtp not enabled
* feat: userLastActiveOnInterceptor added and update func added in userService
* chore: changed user model parameter description
* chore: commented out docker volume for hopp-old-service
* chore: changed backend to work with secure cookies
---------
Co-authored-by: Balu Babu <balub997@gmail.com>
* feat: allow ability for multiple headers with the same key to be shown
* chore: remove extension inspector in selfhost-desktop
* chore: cleanup
---------
Co-authored-by: jamesgeorge007 <25279263+jamesgeorge007@users.noreply.github.com>
* feat: new helper functions for better error management
* refactor: new i18n strings
* refactor: better error handling in invite modal and members component
* refactor: better user management
* refactor: better error handling in config handler
* refactor: updated logic of dynamic action row
* refactor: better naming for computed properties
* feat: new error message when an admin tries to invite himself
* refactor: updated error message when user is already invited
* refactor: reverted i18n string for user already invited back to the old string
* refactor: removed show prop from invite modal
* refactor: improved implementation for getting the compiled error messages
* feat: new error message when email inputted is of an invalid format
* refactor: minor optimization
---------
Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
* fix: resolved an issue with server restart component
* refactor: early return if any mutation fails when initiating server restart
* fix: ensure further attempts go through after a failed reset configs action
---------
Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
* feat: created a new table to store user PATs
* chore: renamed UserTokens table name to PersonalAccessToken
* chore: added unique property to token column
* chore: made expiresOn field optional
* chore: created access-token module
* feat: created access-token rest routes
* chore: created a new auth guard for PATs
* chore: scaffolded routes in team collection and environments modules for CLI
* chore: created method to update lastUsedOn property for accessTokens
* chore: created interceptor to update lastUsedOn property of PAT
* feat: interceptor to update lastUpdatedOn property complete
* chore: removed unused imports in access-token interceptor
* chore: moved routes to fetch collection and environment into access-token module
* feat: added routes to fetch collections and environments for CLI
* chore: modified access-token interceptor
* chore: removed log statement from interceptor
* chore: added team member checking logic to ForCLI methods in team collection and environments module
* chore: changed return error messages to those defined in spec
* chore: added comments to all service methods
* chore: removed unused imports
* chore: updated testcases for team-environments module service file
* chore: added and updated testcases
* chore: removed unneseccary SQL from auto-generated migration sql for PAT
* chore: remobed JWTAuthGuard from relevant routes in PAT controllers file
* chore: modified token for auth in PATAuthGuard
* chore: changed error codes in some certain service methods in access-token module
* feat: worked on feedback for PR review
* chore: renamed service method in access-token module
* chore: removed console log statements
* chore: modified cli error type
* test: fix broken test case
* chore: changed target of hopp-old-backend to prod
---------
Co-authored-by: mirarifhasan <arif.ishan05@gmail.com>
* feat: lastLoggedOn added in schema and service function
* feat: add lastLoggedOn logic for magic link
* test: update test cases
* feat: add lastLoggedOn in gql model
* fix: nullable allowed in model attribute
* fix: resolve feedback
* feat: user last login interceptor added
* chore: installed terminus package and scaffolded the health module
* feat: added healthcheck for database with prisma
* chore: renamed label from prisma to database in health check route
* chore: reverted target of hopp-old-backend service to prod
* feat: added new columns into the TeamCollections and UserCollections models
* feat: completed addition of new data field in TeamCollection
* feat: completed addition of new data field in UserCollections
* chore: updated all tests in team-collection module
* chore: added tests for updateTeamCollection method in team-collection module
* chore: refactored all existing testcases in user-collection to reflect new changes
* chore: added new testcases for updateUserCollection method in user-collection module
* chore: made data field optional in team and user collections
* chore: fixed edgecases for data being null
* chore: resolved issue with team-request testcases
* chore: completed changes requested in PR review
* chore: changed target to prod in hoppscotch-old-backend service
* feat: added query in infra to fetch all shortcodes
* feat: added mutation in admin to delete shortcode
* chore: added new tests for methods in shortcode module
* chore: removed .vscode file
* chore: added a new ShortcodeCreator type to output of fetchAllShortcodes query
* chore: shortcodeCreator type is now nullable
* chore: added type defs to fetchAllShortcodes method in admin module
* docs: update code comments
* chore: changed target to prod in hoppscotch-old-backend
---------
Co-authored-by: Mir Arif Hasan <arif.ishan05@gmail.com>
* feat: added new property to existing shortcode model in prisma schema
* chore: created shared-requests module
* chore: created shared-request model
* chore: complete sharedRequest query
* chore: completed mutation to create a SharedRequest
* chore: completed subscription to create a SharedRequest
* chore: completed query to fetch all user created shared-requests
* chore: completed mutation to delete a SharedRequest
* chore: completed subscription to delete a SharedRequest
* chore: removed unused dependncues in share-requests module
* chore: added shared-requests into user deletion spec
* test: added all testcases for shared-request module
* test: modified all relevant tests in shortcode module
* chore: added deprecated label to all queries,mutations and subscriptions in the shortcode module
* chore: resolved all comments raised in review
* feat: added ability to update and listen to updates of shared-requests
* chore: added updatedOn field to shortcode model
* chore: fixed issue with updateSharedRequest method
* chore: fixed incorrect value getting updated
* chore: added all test-cases for updateSharedRequest method
* chore: created migration for shared-requests
* chore: moved shared-requests into shortcode module
* chore: added missing import in shortcode tests
* chore: changed properties to embedProperties in shortcode model
* feat: generated migrations file for new schema changes to Shortcodes table
* chore: changed target of old-backend service in docker-compose file
* chore: fixed issue with updatedOn field in shortcodes model
* chore: removed unused dependencies
* fix: handle invalid input for shortcode properties
* Revert "fix: handle invalid input for shortcode properties"
This reverts commit 4dcb0afb18.
* chore: changed updateShortcode method name to updateEmbedProperties
* chore: changed target of hoppscotch-old-backend service to prod
---------
Co-authored-by: Mir Arif Hasan <arif.ishan05@gmail.com>
* feat: infra type added in admin module
* feat: infra-resolver added in admin module
* feat: feedback resolved
* feat: deprecated tag added in some admin ResolveFields
* build: update pnpm-lock file
* feat: add field in infra type
* feat: admin extends user partially
* feat: admin extends user with omitting some fields
* chore: remove unused imports
* build: conflict resolve in pnpm lock file
* refactor: abstract axios queries to a separate helper file
* chore: delete unnecessary file
* chore: remove unnecessary console logs
* refactor: updated urls for api and authquery helpers
* refactor: updated auth implementation
* refactor: use default axios instance
* chore: improve code readability
* refactor: separate instances for rest and gql calls
* refactor: removed async await from functions that do not need them
* refactor: removed probable login and probable user from the auth system
* refactor: better error handling in login component
* chore: deleted unnecessary files and restructured some files
* feat: new errors file with typed error message formats
* refactor: removed unwanted usage of async await
* refactor: optimizing the usage and return of promises in auth flow
* refactor: convey boolean return type in a better way
* chore: apply suggestions
* refactor: handle case when mailcatcher is not active
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: James George <jamesgeorge998001@gmail.com>
* chore: removed rejectOnNotFound property from prisma query in team-enviroment method
* chore: fixed issues with test cases in team-environment module
* chore: changed target of hoppscotch-old-backend service back to prod
* fix: dashboard logs out user when cookie expires or is unauthorized
* fix: handles the 401 error thrown when trying to refresh tokens
* chore: updated wrong logic when returning state in refresh token function
* feat: introduced auth exchange to urql client to check for errors on each backend call
* fix: prevent multiple window reloads
---------
Co-authored-by: jamesgeorge007 <jamesgeorge998001@gmail.com>
* feat: introduced new unplugin i18n and removed the old vite i18n package
* refactor: updated vite config to support the new plugin
* refactor: removed irrelevant logic from the i18n module
* feat: add ability to export a single environment
* refactor: export environment without id
* feat: introducing zod for checking json format for environment variables
* refactor: new zod specific type for HoppEnvPair
* feat: add ability to export single environment in team environment
* refactor: moved zod as a dependency to devDependency
* refactor: separated repeating logic to helper file
* refactor: removed unnecessary to string operation
* chore: rearranged smart item placement
* refactor: introduced error type when a bulk environment export is used in cli
* refactor: removed unnecssary type exports and updated logic and variable names across most files
* refactor: better logic for type shapes
* chore: bump hoppscotch-cli package version
---------
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
* fix: send auth headers to the payload
* refactor: alert user that headers are sent to connection_init
* refactor: send headers only when headers are populated
* chore: cleanup code
* fix: missing baseurl on import openapi
* fix: url parser for openapi v3
* chore: revert to baseURL for cases where doc servers is present but url is null
---------
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
* fix: sticky search bar in codemirror
* chore: use tailwind classes
* chore: improve consistency across editor instances
---------
Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
* fix: dirty tab count incorrect when closing tabs
* refactor: make the calculation more expressive
---------
Co-authored-by: amk-dev <akash.k.mohan98@gmail.com>
* refactor: remove font size from settings
* refactor: remove font size from themes
* refactor: remove font size from spotlight
* refactor: remove default font size
* chore: clean up
---------
Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
_We highly recommend you take a look at the [**Hoppscotch Documentation**](https://docs.hoppscotch.io) to learn more about the app._
#### **Support**
[](https://hoppscotch.io/discord) [](https://hoppscotch.io/telegram) [](https://github.com/hoppscotch/hoppscotch/discussions)
@@ -59,9 +49,9 @@
❤️ **Lightweight:** Crafted with minimalistic UI design.
⚡️ **Fast:** Send requests and get/copy responses in real-time.
⚡️ **Fast:** Send requests and get responses in realtime.
**HTTP Methods**
🗄️ **HTTP Methods:** Request methods define the type of action you are requesting to be performed.
-`GET` - Requests retrieve resource information
-`POST` - The server creates a new entry in a database
@@ -74,17 +64,15 @@
-`TRACE` - Performs a message loop-back test along the path to the target resource
-`<custom>` - Some APIs use custom request methods such as `LIST`. Type in your custom methods.
🌈 **Make it yours:** Customizable combinations for background, foreground, and accent colors — [customize now](https://hoppscotch.io/settings).
🌈 **Theming:** Customizable combinations for background, foreground, and accent colors — [customize now](https://hoppscotch.io/settings).
**Theming**
- Choose a theme: System (default), Light, Dark, and Black
- Choose accent color: Green (default), Teal, Blue, Indigo, Purple, Yellow, Orange, Red, and Pink
- Choose a theme: System preference, Light, Dark, and Black
_Customized themes are synced with cloud / local session_
_Customized themes are synced with your cloud/local session._
🔥 **PWA:** Install as a [PWA](https://web.dev/what-are-pwas/) on your device.
🔥 **PWA:** Install as a [Progressive Web App](https://web.dev/progressive-web-apps) on your device.
- Instant loading with Service Workers
- Offline support
@@ -107,7 +95,7 @@ _Customized themes are synced with cloud / local session_
📡 **Server-Sent Events:** Receive a stream of updates from a server over an HTTP connection without resorting to polling.
🌩 **Socket.IO:** Send and Receive data with SocketIO server.
🌩 **Socket.IO:** Send and Receive data with the SocketIO server.
🦟 **MQTT:** Subscribe and Publish to topics of an MQTT Broker.
@@ -127,7 +115,7 @@ _Customized themes are synced with cloud / local session_
- OAuth 2.0
- OIDC Access Token/PKCE
📢 **Headers:** Describes the format the body of your request is being sent as.
📢 **Headers:** Describes the format the body of your request is being sent in.
📫 **Parameters:** Use request parameters to set varying parts in simulated requests.
@@ -137,14 +125,14 @@ _Customized themes are synced with cloud / local session_
- FormData, JSON, and many more
- Toggle between key-value and RAW input parameter list
👋**Response:** Contains the status line, headers, and the message/response body.
📮**Response:** Contains the status line, headers, and the message/response body.
- Copy response to clipboard
- Download response as a file
- Copy the response to the clipboard
- Download the response as a file
- View response headers
- View raw and preview of HTML, image, JSON, XML responses
- View raw and preview HTML, image, JSON, and XML responses
⏰ **History:** Request entries are synced with cloud / local session storage to restore with a single click.
⏰ **History:** Request entries are synced with your cloud/local session storage.
📁 **Collections:** Keep your API requests organized with collections and folders. Reuse them with a single click.
@@ -152,7 +140,32 @@ _Customized themes are synced with cloud / local session_
- Nested folders
- Export and import as a file or GitHub gist
_Collections are synced with cloud / local session storage_
_Collections are synced with your cloud/local session storage._
📜 **Pre-Request Scripts:** Snippets of code associated with a request that is executed before the request is sent.
- Set environment variables
- Include timestamp in the request headers
- Send a random alphanumeric string in the URL parameters
- Any JavaScript functions
👨👩👧👦 **Teams:** Helps you collaborate across your teams to design, develop, and test APIs faster.
- Create unlimited teams
- Create unlimited shared collections
- Create unlimited team members
- Role-based access control
- Cloud sync
- Multiple devices
👥 **Workspaces:** Organize your personal and team collections environments into workspaces. Easily switch between workspaces to manage multiple projects.
- Create unlimited workspaces
- Switch between personal and team workspaces
⌨️ **Keyboard Shortcuts:** Optimized for efficiency.
> **[Read our documentation on Keyboard Shortcuts](https://docs.hoppscotch.io/documentation/features/shortcuts)**
🌐 **Proxy:** Enable Proxy Mode from Settings to access blocked APIs.
@@ -161,60 +174,31 @@ _Collections are synced with cloud / local session storage_
- Access APIs served in non-HTTPS (`http://`) endpoints
- Use your Proxy URL
_Official proxy server is hosted by Hoppscotch - **[GitHub](https://github.com/hoppscotch/proxyscotch)** - **[Privacy Policy](https://docs.hoppscotch.io/support/privacy)**_
📜 **Pre-Request Scripts β:** Snippets of code associated with a request that is executed before the request is sent.
- Set environment variables
- Include timestamp in the request headers
- Send a random alphanumeric string in the URL parameters
- Any JavaScript functions
📄 **API Documentation:** Create and share dynamic API documentation easily, quickly.
1. Add your requests to Collections and Folders
2. Export Collections and easily share your APIs with the rest of your team
3. Import Collections and Generate Documentation on-the-go
⌨️ **Keyboard Shortcuts:** Optimized for efficiency.
> **[Read our documentation on Keyboard Shortcuts](https://docs.hoppscotch.io/documentation/features/shortcuts)**
_Official proxy server is hosted by Hoppscotch - **[GitHub](https://github.com/hoppscotch/proxyscotch)** - **[Privacy Policy](https://docs.hoppscotch.io/support/privacy)**._
🌎 **i18n:** Experience the app in your language.
Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md) and the process for submitting pull requests to us.
📦**Add-ons:** Official add-ons for hoppscotch.
☁️**Auth + Sync:** Sign in and sync your data in real-time across all your devices.
- **[Proxy](https://github.com/hoppscotch/proxyscotch)** - A simple proxy server created for Hoppscotch
- **[CLI β](https://github.com/hoppscotch/hopp-cli)** - A CLI solution for Hoppscotch
- **[Browser Extensions](https://github.com/hoppscotch/hoppscotch-extension)** - Browser extensions that simplifies access to Hoppscotch
Follow our [self-hosting guide](https://docs.hoppscotch.io/documentation/self-host/getting-started) to get started with the development environment.
Follow our [self-hosting documentation](https://docs.hoppscotch.io/documentation/self-host/getting-started) to get started with the development environment.
## **Contributing**
@@ -297,7 +281,7 @@ See the [`CHANGELOG`](CHANGELOG.md) file for details.
## **Authors**
This project exists thanks to all the people who contribute — [contribute](CONTRIBUTING.md).
This project owes its existence to the collective efforts of all those who contribute — [contribute now](CONTRIBUTING.md).
Report security vulnerabilities by emailing the Hoppscotch Support team at support@hoppscotch.io.
We use [Github Security Advisories](https://github.com/hoppscotch/hoppscotch/security/advisories) to manage vulnerability reports and collaboration.
Someone from the Hoppscotch team shall report to you within 48 hours of the disclosure of the vulnerability in GHSA. If no response was received, please reach out to
Hoppscotch Support at support@hoppscotch.io along with the GHSA advisory link.
The primary security point of contact from Hoppscotch Support team will acknowledge your email within 48 hours, and will send a more detailed response within 48 hours indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.
> NOTE: Since we have multiple open source components, Advisories may move into the relevant repo (for example, an XSS in a UI component might be part of [`@hoppscotch/ui`](https://github.com/hoppscotch/ui)).
> If in doubt, open your report in `hoppscotch/hoppscotch` GHSA.
**Do not create a GitHub issue ticket to report a security vulnerability.**
**Do not create a GitHub issue ticket to report a security vulnerability!**
The Hoppscotch team and community take all security vulnerability reports in Hoppscotch seriously. Thank you for improving the security of Hoppscotch. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions.
The Hoppscotch team takes all security vulnerability reports in Hoppscotch seriously. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions.
Report security bugs in third-party modules to the person or team maintaining the module.
## What is not a valid vulnerability
We receive many reports about different sections of the Hoppscotch platform. Hence, we have a fine line we have drawn defining what is considered valid vulnerability.
Please refrain from opening an advisory if it describes the following:
- A vulnerability in a dependency of Hoppscotch (unless you have practical attack with it on the Hoppscotch codebase)
- Reports of vulnerabilities related to old runtimes (like NodeJS) or container images used by the codebase
- Vulnerabilities present when using Hoppscotch in anything other than the defined minimum requirements that Hoppscotch supports.
Hoppscotch Team ensures security support for:
- Modern Browsers (Chrome/Firefox/Safari/Edge) with versions up to 1 year old.
- Windows versions on or above Windows 10 on Intel and ARM.
- macOS versions dating back up to 2 years on Intel and Apple Silicon.
- Popular Linux distributions with up-to-date packages with preference to x86/64 CPUs.
- Docker/OCI Runtimes (preference to Docker and Podman) dating back up to 1 year.
@@ -9,26 +9,24 @@ Before you start working on a new language, please look through the [open pull r
if there is no existing translation, you can create a new one by following these steps:
1.**[Fork the repository](https://github.com/hoppscotch/hoppscotch/fork).**
2.**Checkout the `i18n` branch for latest translations.**
3.**Create a new branch for your translation with base branch `i18n`.**
2.**Checkout the `main` branch for latest translations.**
3.**Create a new branch for your translation with base branch `main`.**
4.**Create target language file in the [`/packages/hoppscotch-common/locales`](https://github.com/hoppscotch/hoppscotch/tree/main/packages/hoppscotch-common/locales) directory.**
5.**Copy the contents of the source file [`/packages/hoppscotch-common/locales/en.json`](https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-common/locales/en.json) to the target language file.**
6.**Translate the strings in the target language file.**
7.**Add your language entry to [`/packages/hoppscotch-common/languages.json`](https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-common/languages.json).**
8.**Save & commit changes.**
8.**Save and commit changes.**
9.**Send a pull request.**
_You may send a pull request before all steps above are complete: e.g., you may want to ask for help with translations, or getting tests to pass. However, your pull request will not be merged until all steps above are complete._
`i18n` branch will be merged into `main` branch once every week.
Completing an initial translation of the whole site is a fairly large task. One way to break that task up is to work with other translators through pull requests on your fork. You can also [add collaborators to your fork](https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository) if you'd like to invite other translators to commit directly to your fork and share responsibility for merging pull requests.
## Updating a translation
### Corrections
If you notice spelling or grammar errors, typos, or opportunities for better phrasing, open a pull request with your suggested fix. If you see a problem that you aren't sure of or don't have time to fix, open an issue.
If you notice spelling or grammar errors, typos, or opportunities for better phrasing, open a pull request with your suggested fix. If you see a problem that you aren't sure of or don't have time to fix, [open an issue](https://github.com/hoppscotch/hoppscotch/issues/new/choose).
A small and lightweight dependency injection / inversion of control system.
### About
`dioc` is a really simple **DI/IOC** system where you write services (which are singletons per container) that can depend on each other and emit events that can be listened upon.
### Demo
```ts
import{Service,Container}from"dioc"
// Here is a simple service, which you can define by extending the Service class
// and providing an ID static field (of type string)
exportclassPersistenceServiceextendsService{
// This should be unique for each container
publicstaticID="PERSISTENCE_SERVICE"
publicread(key: string):string|undefined{
// ...
}
publicwrite(key: string,value: string){
// ...
}
}
typeTodoServiceEvent=
|{type:"TODO_CREATED";index: number}
|{type:"TODO_DELETED";index: number}
// Services have a built in event system
// Define the generic argument to say what are the possible emitted values
it("binding an already initialized service returns the initialized instance (services are singletons)",()=>{
constcontainer=newContainer()
constserviceA=container.bind(TestServiceA)
constserviceA2=container.bind(TestServiceA)
expect(serviceA).toBe(serviceA2)
})
it("binding a service which is a dependency of another service returns the same instance created from the dependency resolution (services are singletons)",()=>{
constcontainer=newContainer()
constserviceB=container.bind(TestServiceB)
constserviceA=container.bind(TestServiceA)
expect(serviceB.serviceA).toBe(serviceA)
})
it("binding an initialized service as a dependency returns the same instance",()=>{
constcontainer=newContainer()
constserviceA=container.bind(TestServiceA)
constserviceB=container.bind(TestServiceB)
expect(serviceB.serviceA).toBe(serviceA)
})
it("container emits an init event when an uninitialized service is initialized via bind and event only called once",()=>{
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's Take Over mode by following these steps:
1. Run `Extensions: Show Built-in Extensions` from VS Code's command palette, look for `TypeScript and JavaScript Language Features`, then right click and select `Disable (Workspace)`. By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
2. Reload the VS Code window by running `Developer: Reload Window` from the command palette.
You can learn more about Take Over mode [here](https://github.com/johnsoncodehk/volar/discussions/471).
# NOTE: Setting these `PRISMA_*` environment variable fixes
# Error: Failed to fetch sha256 checksum at https://binaries.prisma.sh/all_commits/<hash>/linux-nixos/libquery_engine.so.node.gz.sha256 - 404 Not Found
description="A cross-platform HTTP request agent for Hoppscotch for advanced request handling including custom headers, certificates, proxies, and local system integration."
authors=["AndrewBastin","CuriousCorrelation"]
edition="2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.