Compare commits
2 Commits
add-realti
...
fix/incorr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9814a6bce | ||
|
|
34220ba814 |
@@ -5,5 +5,5 @@
|
||||
"features": {
|
||||
"ghcr.io/NicoVIII/devcontainer-features/pnpm:1": {}
|
||||
},
|
||||
"postCreateCommand": "cp .env.example .env && pnpm i"
|
||||
"postCreateCommand": "mv .env.example .env && pnpm i"
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ SESSION_SECRET='add some secret here'
|
||||
|
||||
# Hoppscotch App Domain Config
|
||||
REDIRECT_URL="http://localhost:3000"
|
||||
WHITELISTED_ORIGINS="http://localhost:3170,http://localhost:3000,http://localhost:3100"
|
||||
VITE_ALLOWED_AUTH_PROVIDERS=GOOGLE,GITHUB,MICROSOFT,EMAIL
|
||||
WHITELISTED_ORIGINS = "http://localhost:3170,http://localhost:3000,http://localhost:3100"
|
||||
VITE_ALLOWED_AUTH_PROVIDERS = GOOGLE,GITHUB,MICROSOFT,EMAIL
|
||||
|
||||
# Google Auth Config
|
||||
GOOGLE_CLIENT_ID="************************************************"
|
||||
@@ -59,6 +59,3 @@ VITE_BACKEND_API_URL=http://localhost:3170/v1
|
||||
# Terms Of Service And Privacy Policy Links (Optional)
|
||||
VITE_APP_TOS_LINK=https://docs.hoppscotch.io/support/terms
|
||||
VITE_APP_PRIVACY_POLICY_LINK=https://docs.hoppscotch.io/support/privacy
|
||||
|
||||
# Set to `true` for subpath based access
|
||||
ENABLE_SUBPATH_BASED_ACCESS=false
|
||||
|
||||
26
.github/workflows/release-push-docker.yml
vendored
26
.github/workflows/release-push-docker.yml
vendored
@@ -15,70 +15,52 @@ jobs:
|
||||
- name: Setup environment
|
||||
run: cp .env.example .env
|
||||
|
||||
- name: Setup QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push the backend container
|
||||
- name: Build and push `${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}`
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: backend
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}:latest
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}:${{ github.ref_name }}
|
||||
|
||||
- name: Build and push the frontend container
|
||||
- name: Build and push `${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}`
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: app
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}:latest
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}:${{ github.ref_name }}
|
||||
|
||||
- name: Build and push the admin dashboard container
|
||||
- name: Build and push `${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}`
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: sh_admin
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}:latest
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}:${{ github.ref_name }}
|
||||
|
||||
- name: Build and push the AIO container
|
||||
- name: Build and push `${{ secrets.DOCKER_AIO_CONTAINER_NAME }}`
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: ./prod.Dockerfile
|
||||
target: aio
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64
|
||||
tags: |
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}:latest
|
||||
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}:${{ github.ref_name }}
|
||||
|
||||
2
.github/workflows/ui.yml
vendored
2
.github/workflows/ui.yml
vendored
@@ -36,7 +36,7 @@ jobs:
|
||||
|
||||
# Deploy the ui site with netlify-cli
|
||||
- name: Deploy to Netlify (ui)
|
||||
run: npx netlify-cli@15.11.0 deploy --dir=packages/hoppscotch-ui/.histoire/dist --prod
|
||||
run: npx netlify-cli deploy --dir=packages/hoppscotch-ui/.histoire/dist --prod
|
||||
env:
|
||||
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_UI_SITE_ID }}
|
||||
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
|
||||
|
||||
14
.vscode/extensions.json
vendored
Normal file
14
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"antfu.iconify",
|
||||
"vue.volar",
|
||||
"esbenp.prettier-vscode",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"editorconfig.editorconfig",
|
||||
"csstools.postcss",
|
||||
"folke.vscode-monorepo-workspace"
|
||||
],
|
||||
"unwantedRecommendations": [
|
||||
"octref.vetur"
|
||||
]
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
:3000 {
|
||||
try_files {path} /
|
||||
root * /site/selfhost-web
|
||||
file_server
|
||||
}
|
||||
|
||||
:3100 {
|
||||
try_files {path} /
|
||||
root * /site/sh-admin-multiport-setup
|
||||
file_server
|
||||
}
|
||||
|
||||
:3170 {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
|
||||
:80 {
|
||||
respond 404
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
:3000 {
|
||||
respond 404
|
||||
}
|
||||
|
||||
:3100 {
|
||||
respond 404
|
||||
}
|
||||
|
||||
:3170 {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
|
||||
:80 {
|
||||
# Serve the `selfhost-web` SPA by default
|
||||
root * /site/selfhost-web
|
||||
file_server
|
||||
|
||||
handle_path /admin* {
|
||||
root * /site/sh-admin-subpath-access
|
||||
file_server
|
||||
|
||||
# Ensures any non-existent file in the server is routed to the SPA
|
||||
try_files {path} /
|
||||
}
|
||||
|
||||
# Handle requests under `/backend*` path
|
||||
handle_path /backend* {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
|
||||
# Catch-all route for unknown paths, serves `selfhost-web` SPA
|
||||
handle {
|
||||
root * /site/selfhost-web
|
||||
file_server
|
||||
try_files {path} /
|
||||
}
|
||||
}
|
||||
11
aio.Caddyfile
Normal file
11
aio.Caddyfile
Normal file
@@ -0,0 +1,11 @@
|
||||
:3000 {
|
||||
try_files {path} /
|
||||
root * /site/selfhost-web
|
||||
file_server
|
||||
}
|
||||
|
||||
:3100 {
|
||||
try_files {path} /
|
||||
root * /site/sh-admin
|
||||
file_server
|
||||
}
|
||||
@@ -49,8 +49,7 @@ execSync(`npx import-meta-env -x build.env -e build.env -p "/site/**/*"`)
|
||||
|
||||
fs.rmSync("build.env")
|
||||
|
||||
const caddyFileName = process.env.ENABLE_SUBPATH_BASED_ACCESS === 'true' ? 'aio-subpath-access.Caddyfile' : 'aio-multiport-setup.Caddyfile'
|
||||
const caddyProcess = runChildProcessWithPrefix("caddy", ["run", "--config", `/etc/caddy/${caddyFileName}`, "--adapter", "caddyfile"], "App/Admin Dashboard Caddy")
|
||||
const caddyProcess = runChildProcessWithPrefix("caddy", ["run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"], "App/Admin Dashboard Caddy")
|
||||
const backendProcess = runChildProcessWithPrefix("pnpm", ["run", "start:prod"], "Backend Server")
|
||||
|
||||
caddyProcess.on("exit", (code) => {
|
||||
|
||||
@@ -17,7 +17,7 @@ services:
|
||||
environment:
|
||||
# Edit the below line to match your PostgresDB URL if you have an outside DB (make sure to update the .env file as well)
|
||||
- DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch?connect_timeout=300
|
||||
- PORT=8080
|
||||
- PORT=3170
|
||||
volumes:
|
||||
# Uncomment the line below when modifying code. Only applicable when using the "dev" target.
|
||||
# - ./packages/hoppscotch-backend/:/usr/src/app
|
||||
@@ -26,7 +26,6 @@ services:
|
||||
hoppscotch-db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "3180:80"
|
||||
- "3170:3170"
|
||||
|
||||
# The main hoppscotch app. This will be hosted at port 3000
|
||||
@@ -43,8 +42,7 @@ services:
|
||||
depends_on:
|
||||
- hoppscotch-backend
|
||||
ports:
|
||||
- "3080:80"
|
||||
- "3000:3000"
|
||||
- "3000:8080"
|
||||
|
||||
# The Self Host dashboard for managing the app. This will be hosted at port 3100
|
||||
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
|
||||
@@ -60,8 +58,7 @@ services:
|
||||
depends_on:
|
||||
- hoppscotch-backend
|
||||
ports:
|
||||
- "3280:80"
|
||||
- "3100:3100"
|
||||
- "3100:8080"
|
||||
|
||||
# The service that spins up all 3 services at once in one container
|
||||
hoppscotch-aio:
|
||||
@@ -79,7 +76,6 @@ services:
|
||||
- "3000:3000"
|
||||
- "3100:3100"
|
||||
- "3170:3170"
|
||||
- "3080:80"
|
||||
|
||||
# The preset DB service, you can delete/comment the below lines if
|
||||
# you are using an external postgres instance
|
||||
|
||||
13
package.json
13
package.json
@@ -22,19 +22,18 @@
|
||||
"workspaces": [
|
||||
"./packages/*"
|
||||
],
|
||||
"dependencies": {
|
||||
"husky": "^7.0.4",
|
||||
"lint-staged": "^12.3.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^16.2.3",
|
||||
"@commitlint/config-conventional": "^16.2.1",
|
||||
"@types/node": "17.0.27",
|
||||
"@types/node": "^17.0.24",
|
||||
"cross-env": "^7.0.3",
|
||||
"http-server": "^14.1.1",
|
||||
"husky": "^7.0.4",
|
||||
"lint-staged": "12.4.0"
|
||||
"http-server": "^14.1.1"
|
||||
},
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"vue": "3.3.9"
|
||||
},
|
||||
"packageExtensions": {
|
||||
"httpsnippet@^3.0.1": {
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -17,16 +17,16 @@
|
||||
"types": "dist/index.d.ts",
|
||||
"sideEffects": false,
|
||||
"dependencies": {
|
||||
"@codemirror/language": "6.9.0",
|
||||
"@lezer/highlight": "1.1.4",
|
||||
"@lezer/lr": "^1.3.13"
|
||||
"@codemirror/language": "^6.9.0",
|
||||
"@lezer/highlight": "^1.1.6",
|
||||
"@lezer/lr": "^1.3.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@lezer/generator": "^1.5.1",
|
||||
"@lezer/generator": "^1.5.0",
|
||||
"mocha": "^9.2.2",
|
||||
"rollup": "^3.29.3",
|
||||
"rollup-plugin-dts": "^6.0.2",
|
||||
"rollup-plugin-ts": "^3.4.5",
|
||||
"typescript": "^5.2.2"
|
||||
"rollup": "^2.70.2",
|
||||
"rollup-plugin-dts": "^4.2.1",
|
||||
"rollup-plugin-ts": "^2.0.7",
|
||||
"typescript": "^4.6.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
:80 :3170 {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hoppscotch-backend",
|
||||
"version": "2023.8.4-1",
|
||||
"version": "2023.8.0",
|
||||
"description": "",
|
||||
"author": "",
|
||||
"private": true,
|
||||
@@ -24,17 +24,18 @@
|
||||
"do-test": "pnpm run test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/server": "^4.9.4",
|
||||
"@nestjs-modules/mailer": "^1.9.1",
|
||||
"@nestjs/apollo": "^12.0.9",
|
||||
"@nestjs/common": "^10.2.6",
|
||||
"@nestjs/core": "^10.2.6",
|
||||
"@nestjs/graphql": "^12.0.9",
|
||||
"@nestjs/jwt": "^10.1.1",
|
||||
"@nestjs/passport": "^10.0.2",
|
||||
"@nestjs/platform-express": "^10.2.6",
|
||||
"@nestjs/throttler": "^5.0.0",
|
||||
"@nestjs-modules/mailer": "^1.8.1",
|
||||
"@nestjs/apollo": "^10.1.6",
|
||||
"@nestjs/common": "^9.2.1",
|
||||
"@nestjs/core": "^9.2.1",
|
||||
"@nestjs/graphql": "^10.1.6",
|
||||
"@nestjs/jwt": "^10.0.1",
|
||||
"@nestjs/passport": "^9.0.0",
|
||||
"@nestjs/platform-express": "^9.2.1",
|
||||
"@nestjs/throttler": "^4.0.0",
|
||||
"@prisma/client": "^4.16.2",
|
||||
"apollo-server-express": "^3.11.1",
|
||||
"apollo-server-plugin-base": "^3.7.1",
|
||||
"argon2": "^0.30.3",
|
||||
"bcrypt": "^5.1.0",
|
||||
"cookie": "^0.5.0",
|
||||
@@ -42,9 +43,9 @@
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.3",
|
||||
"fp-ts": "^2.13.1",
|
||||
"graphql": "^16.8.1",
|
||||
"graphql": "^15.5.0",
|
||||
"graphql-query-complexity": "^0.12.0",
|
||||
"graphql-redis-subscriptions": "^2.6.0",
|
||||
"graphql-redis-subscriptions": "^2.5.0",
|
||||
"graphql-subscriptions": "^2.0.0",
|
||||
"handlebars": "^4.7.7",
|
||||
"io-ts": "^2.2.16",
|
||||
@@ -62,9 +63,9 @@
|
||||
"rxjs": "^7.6.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nestjs/cli": "^10.1.18",
|
||||
"@nestjs/schematics": "^10.0.2",
|
||||
"@nestjs/testing": "^10.2.6",
|
||||
"@nestjs/cli": "^9.1.5",
|
||||
"@nestjs/schematics": "^9.0.3",
|
||||
"@nestjs/testing": "^9.2.1",
|
||||
"@relmify/jest-fp-ts": "^2.0.2",
|
||||
"@types/argon2": "^0.15.0",
|
||||
"@types/bcrypt": "^5.0.0",
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[id]` on the table `Shortcode` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Shortcode" ADD COLUMN "embedProperties" JSONB,
|
||||
ADD COLUMN "updatedOn" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Shortcode_id_key" ON "Shortcode"("id");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Shortcode" ADD CONSTRAINT "Shortcode_creatorUid_fkey" FOREIGN KEY ("creatorUid") REFERENCES "User"("uid") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
@@ -1,5 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "TeamCollection" ADD COLUMN "data" JSONB;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "UserCollection" ADD COLUMN "data" JSONB;
|
||||
@@ -43,7 +43,6 @@ model TeamInvitation {
|
||||
model TeamCollection {
|
||||
id String @id @default(cuid())
|
||||
parentID String?
|
||||
data Json?
|
||||
parent TeamCollection? @relation("TeamCollectionChildParent", fields: [parentID], references: [id])
|
||||
children TeamCollection[] @relation("TeamCollectionChildParent")
|
||||
requests TeamRequest[]
|
||||
@@ -69,13 +68,10 @@ model TeamRequest {
|
||||
}
|
||||
|
||||
model Shortcode {
|
||||
id String @id @unique
|
||||
request Json
|
||||
embedProperties Json?
|
||||
creatorUid String?
|
||||
User User? @relation(fields: [creatorUid], references: [uid])
|
||||
createdOn DateTime @default(now())
|
||||
updatedOn DateTime @default(now()) @updatedAt
|
||||
id String @id
|
||||
request Json
|
||||
creatorUid String?
|
||||
createdOn DateTime @default(now())
|
||||
|
||||
@@unique(fields: [id, creatorUid], name: "creator_uid_shortcode_unique")
|
||||
}
|
||||
@@ -106,7 +102,6 @@ model User {
|
||||
currentGQLSession Json?
|
||||
createdOn DateTime @default(now()) @db.Timestamp(3)
|
||||
invitedUsers InvitedUsers[]
|
||||
shortcodes Shortcode[]
|
||||
}
|
||||
|
||||
model Account {
|
||||
@@ -197,7 +192,6 @@ model UserCollection {
|
||||
userUid String
|
||||
user User @relation(fields: [userUid], references: [uid], onDelete: Cascade)
|
||||
title String
|
||||
data Json?
|
||||
orderIndex Int
|
||||
type ReqType
|
||||
createdOn DateTime @default(now()) @db.Timestamp(3)
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
#!/usr/local/bin/node
|
||||
// @ts-check
|
||||
|
||||
import { spawn } from 'child_process';
|
||||
import process from 'process';
|
||||
|
||||
function runChildProcessWithPrefix(command, args, prefix) {
|
||||
const childProcess = spawn(command, args);
|
||||
|
||||
childProcess.stdout.on('data', (data) => {
|
||||
const output = data.toString().trim().split('\n');
|
||||
output.forEach((line) => {
|
||||
console.log(`${prefix} | ${line}`);
|
||||
});
|
||||
});
|
||||
|
||||
childProcess.stderr.on('data', (data) => {
|
||||
const error = data.toString().trim().split('\n');
|
||||
error.forEach((line) => {
|
||||
console.error(`${prefix} | ${line}`);
|
||||
});
|
||||
});
|
||||
|
||||
childProcess.on('close', (code) => {
|
||||
console.log(`${prefix} Child process exited with code ${code}`);
|
||||
});
|
||||
|
||||
childProcess.on('error', (stuff) => {
|
||||
console.error('error');
|
||||
console.error(stuff);
|
||||
});
|
||||
|
||||
return childProcess;
|
||||
}
|
||||
|
||||
const caddyProcess = runChildProcessWithPrefix(
|
||||
'caddy',
|
||||
['run', '--config', '/etc/caddy/backend.Caddyfile', '--adapter', 'caddyfile'],
|
||||
'App/Admin Dashboard Caddy',
|
||||
);
|
||||
const backendProcess = runChildProcessWithPrefix(
|
||||
'pnpm',
|
||||
['run', 'start:prod'],
|
||||
'Backend Server',
|
||||
);
|
||||
|
||||
caddyProcess.on('exit', (code) => {
|
||||
console.log(`Exiting process because Caddy Server exited with code ${code}`);
|
||||
process.exit(code);
|
||||
});
|
||||
|
||||
backendProcess.on('exit', (code) => {
|
||||
console.log(
|
||||
`Exiting process because Backend Server exited with code ${code}`,
|
||||
);
|
||||
process.exit(code);
|
||||
});
|
||||
|
||||
process.on('SIGINT', () => {
|
||||
console.log('SIGINT received, exiting...');
|
||||
|
||||
caddyProcess.kill('SIGINT');
|
||||
backendProcess.kill('SIGINT');
|
||||
|
||||
process.exit(0);
|
||||
});
|
||||
@@ -1,9 +1,4 @@
|
||||
import { ObjectType, OmitType } from '@nestjs/graphql';
|
||||
import { User } from 'src/user/user.model';
|
||||
import { ObjectType } from '@nestjs/graphql';
|
||||
|
||||
@ObjectType()
|
||||
export class Admin extends OmitType(User, [
|
||||
'isAdmin',
|
||||
'currentRESTSession',
|
||||
'currentGQLSession',
|
||||
]) {}
|
||||
export class Admin {}
|
||||
|
||||
@@ -10,8 +10,6 @@ import { TeamInvitationModule } from '../team-invitation/team-invitation.module'
|
||||
import { TeamEnvironmentsModule } from '../team-environments/team-environments.module';
|
||||
import { TeamCollectionModule } from '../team-collection/team-collection.module';
|
||||
import { TeamRequestModule } from '../team-request/team-request.module';
|
||||
import { InfraResolver } from './infra.resolver';
|
||||
import { ShortcodeModule } from 'src/shortcode/shortcode.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -24,9 +22,8 @@ import { ShortcodeModule } from 'src/shortcode/shortcode.module';
|
||||
TeamEnvironmentsModule,
|
||||
TeamCollectionModule,
|
||||
TeamRequestModule,
|
||||
ShortcodeModule,
|
||||
],
|
||||
providers: [InfraResolver, AdminResolver, AdminService],
|
||||
providers: [AdminResolver, AdminService],
|
||||
exports: [AdminService],
|
||||
})
|
||||
export class AdminModule {}
|
||||
|
||||
@@ -21,15 +21,15 @@ import { InvitedUser } from './invited-user.model';
|
||||
import { GqlUser } from '../decorators/gql-user.decorator';
|
||||
import { PubSubService } from '../pubsub/pubsub.service';
|
||||
import { Team, TeamMember } from '../team/team.model';
|
||||
import { User } from '../user/user.model';
|
||||
import { TeamInvitation } from '../team-invitation/team-invitation.model';
|
||||
import { PaginationArgs } from '../types/input-types.args';
|
||||
import {
|
||||
AddUserToTeamArgs,
|
||||
ChangeUserRoleInTeamArgs,
|
||||
} from './input-types.args';
|
||||
import { GqlThrottlerGuard } from 'src/guards/gql-throttler.guard';
|
||||
import { SkipThrottle } from '@nestjs/throttler';
|
||||
import { User } from 'src/user/user.model';
|
||||
import { PaginationArgs } from 'src/types/input-types.args';
|
||||
import { TeamInvitation } from 'src/team-invitation/team-invitation.model';
|
||||
|
||||
@UseGuards(GqlThrottlerGuard)
|
||||
@Resolver(() => Admin)
|
||||
@@ -51,7 +51,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => [User], {
|
||||
description: 'Returns a list of all admin users in infra',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async admins() {
|
||||
@@ -60,7 +59,6 @@ export class AdminResolver {
|
||||
}
|
||||
@ResolveField(() => User, {
|
||||
description: 'Returns a user info by UID',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async userInfo(
|
||||
@@ -78,7 +76,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => [User], {
|
||||
description: 'Returns a list of all the users in infra',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async allUsers(
|
||||
@@ -91,7 +88,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => [InvitedUser], {
|
||||
description: 'Returns a list of all the invited users',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async invitedUsers(@Parent() admin: Admin): Promise<InvitedUser[]> {
|
||||
const users = await this.adminService.fetchInvitedUsers();
|
||||
@@ -100,7 +96,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => [Team], {
|
||||
description: 'Returns a list of all the teams in the infra',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async allTeams(
|
||||
@Parent() admin: Admin,
|
||||
@@ -111,7 +106,6 @@ export class AdminResolver {
|
||||
}
|
||||
@ResolveField(() => Team, {
|
||||
description: 'Returns a team info by ID when requested by Admin',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async teamInfo(
|
||||
@Parent() admin: Admin,
|
||||
@@ -129,7 +123,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the members in a team',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async membersCountInTeam(
|
||||
@Parent() admin: Admin,
|
||||
@@ -147,7 +140,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the stored collections in a team',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async collectionCountInTeam(
|
||||
@Parent() admin: Admin,
|
||||
@@ -163,7 +155,6 @@ export class AdminResolver {
|
||||
}
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the stored requests in a team',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async requestCountInTeam(
|
||||
@Parent() admin: Admin,
|
||||
@@ -180,7 +171,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the stored environments in a team',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async environmentCountInTeam(
|
||||
@Parent() admin: Admin,
|
||||
@@ -197,7 +187,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => [TeamInvitation], {
|
||||
description: 'Return all the pending invitations in a team',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async pendingInvitationCountInTeam(
|
||||
@Parent() admin: Admin,
|
||||
@@ -216,7 +205,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Users in organization',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async usersCount() {
|
||||
return this.adminService.getUsersCount();
|
||||
@@ -224,7 +212,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Teams in organization',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async teamsCount() {
|
||||
return this.adminService.getTeamsCount();
|
||||
@@ -232,7 +219,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Team Collections in organization',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async teamCollectionsCount() {
|
||||
return this.adminService.getTeamCollectionsCount();
|
||||
@@ -240,7 +226,6 @@ export class AdminResolver {
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Team Requests in organization',
|
||||
deprecationReason: 'Use `infra` query instead',
|
||||
})
|
||||
async teamRequestsCount() {
|
||||
return this.adminService.getTeamRequestsCount();
|
||||
@@ -443,23 +428,6 @@ export class AdminResolver {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Mutation(() => Boolean, {
|
||||
description: 'Revoke Shortcode by ID',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async revokeShortcodeByAdmin(
|
||||
@Args({
|
||||
name: 'code',
|
||||
description: 'The shortcode to delete',
|
||||
type: () => ID,
|
||||
})
|
||||
code: string,
|
||||
): Promise<boolean> {
|
||||
const res = await this.adminService.deleteShortcode(code);
|
||||
if (E.isLeft(res)) throwErr(res.left);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Subscriptions */
|
||||
|
||||
@Subscription(() => InvitedUser, {
|
||||
|
||||
@@ -15,7 +15,6 @@ import {
|
||||
INVALID_EMAIL,
|
||||
USER_ALREADY_INVITED,
|
||||
} from '../errors';
|
||||
import { ShortcodeService } from 'src/shortcode/shortcode.service';
|
||||
|
||||
const mockPrisma = mockDeep<PrismaService>();
|
||||
const mockPubSub = mockDeep<PubSubService>();
|
||||
@@ -26,7 +25,6 @@ const mockTeamRequestService = mockDeep<TeamRequestService>();
|
||||
const mockTeamInvitationService = mockDeep<TeamInvitationService>();
|
||||
const mockTeamCollectionService = mockDeep<TeamCollectionService>();
|
||||
const mockMailerService = mockDeep<MailerService>();
|
||||
const mockShortcodeService = mockDeep<ShortcodeService>();
|
||||
|
||||
const adminService = new AdminService(
|
||||
mockUserService,
|
||||
@@ -38,7 +36,6 @@ const adminService = new AdminService(
|
||||
mockPubSub as any,
|
||||
mockPrisma as any,
|
||||
mockMailerService,
|
||||
mockShortcodeService,
|
||||
);
|
||||
|
||||
const invitedUsers: InvitedUsers[] = [
|
||||
|
||||
@@ -24,7 +24,6 @@ import { TeamRequestService } from '../team-request/team-request.service';
|
||||
import { TeamEnvironmentsService } from '../team-environments/team-environments.service';
|
||||
import { TeamInvitationService } from '../team-invitation/team-invitation.service';
|
||||
import { TeamMemberRole } from '../team/team.model';
|
||||
import { ShortcodeService } from 'src/shortcode/shortcode.service';
|
||||
|
||||
@Injectable()
|
||||
export class AdminService {
|
||||
@@ -38,7 +37,6 @@ export class AdminService {
|
||||
private readonly pubsub: PubSubService,
|
||||
private readonly prisma: PrismaService,
|
||||
private readonly mailerService: MailerService,
|
||||
private readonly shortcodeService: ShortcodeService,
|
||||
) {}
|
||||
|
||||
/**
|
||||
@@ -76,7 +74,7 @@ export class AdminService {
|
||||
|
||||
try {
|
||||
await this.mailerService.sendUserInvitationEmail(inviteeEmail, {
|
||||
template: 'user-invitation',
|
||||
template: 'code-your-own',
|
||||
variables: {
|
||||
inviteeEmail: inviteeEmail,
|
||||
magicLink: `${process.env.VITE_BASE_URL}`,
|
||||
@@ -434,35 +432,4 @@ export class AdminService {
|
||||
|
||||
return E.right(teamInvite.right);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch all created ShortCodes
|
||||
*
|
||||
* @param args Pagination arguments
|
||||
* @param userEmail User email
|
||||
* @returns ShortcodeWithUserEmail
|
||||
*/
|
||||
async fetchAllShortcodes(
|
||||
cursorID: string,
|
||||
take: number,
|
||||
userEmail: string = null,
|
||||
) {
|
||||
return this.shortcodeService.fetchAllShortcodes(
|
||||
{ cursor: cursorID, take },
|
||||
userEmail,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a Shortcode
|
||||
*
|
||||
* @param shortcodeID ID of Shortcode being deleted
|
||||
* @returns Boolean on successful deletion
|
||||
*/
|
||||
async deleteShortcode(shortcodeID: string) {
|
||||
const result = await this.shortcodeService.deleteShortcode(shortcodeID);
|
||||
|
||||
if (E.isLeft(result)) return E.left(result.left);
|
||||
return E.right(result.right);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import { Field, ObjectType } from '@nestjs/graphql';
|
||||
import { Admin } from './admin.model';
|
||||
|
||||
@ObjectType()
|
||||
export class Infra {
|
||||
@Field(() => Admin, {
|
||||
description: 'Admin who executed the action',
|
||||
})
|
||||
executedBy: Admin;
|
||||
}
|
||||
@@ -1,225 +0,0 @@
|
||||
import { UseGuards } from '@nestjs/common';
|
||||
import { Args, ID, Query, ResolveField, Resolver } from '@nestjs/graphql';
|
||||
import { GqlThrottlerGuard } from 'src/guards/gql-throttler.guard';
|
||||
import { Infra } from './infra.model';
|
||||
import { AdminService } from './admin.service';
|
||||
import { GqlAuthGuard } from 'src/guards/gql-auth.guard';
|
||||
import { GqlAdminGuard } from './guards/gql-admin.guard';
|
||||
import { User } from 'src/user/user.model';
|
||||
import { AuthUser } from 'src/types/AuthUser';
|
||||
import { throwErr } from 'src/utils';
|
||||
import * as E from 'fp-ts/Either';
|
||||
import { Admin } from './admin.model';
|
||||
import { PaginationArgs } from 'src/types/input-types.args';
|
||||
import { InvitedUser } from './invited-user.model';
|
||||
import { Team } from 'src/team/team.model';
|
||||
import { TeamInvitation } from 'src/team-invitation/team-invitation.model';
|
||||
import { GqlAdmin } from './decorators/gql-admin.decorator';
|
||||
import { ShortcodeWithUserEmail } from 'src/shortcode/shortcode.model';
|
||||
|
||||
@UseGuards(GqlThrottlerGuard)
|
||||
@Resolver(() => Infra)
|
||||
export class InfraResolver {
|
||||
constructor(private adminService: AdminService) {}
|
||||
|
||||
@Query(() => Infra, {
|
||||
description: 'Fetch details of the Infrastructure',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
infra(@GqlAdmin() admin: Admin) {
|
||||
const infra: Infra = { executedBy: admin };
|
||||
return infra;
|
||||
}
|
||||
|
||||
@ResolveField(() => [User], {
|
||||
description: 'Returns a list of all admin users in infra',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async admins() {
|
||||
const admins = await this.adminService.fetchAdmins();
|
||||
return admins;
|
||||
}
|
||||
|
||||
@ResolveField(() => User, {
|
||||
description: 'Returns a user info by UID',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async userInfo(
|
||||
@Args({
|
||||
name: 'userUid',
|
||||
type: () => ID,
|
||||
description: 'The user UID',
|
||||
})
|
||||
userUid: string,
|
||||
): Promise<AuthUser> {
|
||||
const user = await this.adminService.fetchUserInfo(userUid);
|
||||
if (E.isLeft(user)) throwErr(user.left);
|
||||
return user.right;
|
||||
}
|
||||
|
||||
@ResolveField(() => [User], {
|
||||
description: 'Returns a list of all the users in infra',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlAdminGuard)
|
||||
async allUsers(@Args() args: PaginationArgs): Promise<AuthUser[]> {
|
||||
const users = await this.adminService.fetchUsers(args.cursor, args.take);
|
||||
return users;
|
||||
}
|
||||
|
||||
@ResolveField(() => [InvitedUser], {
|
||||
description: 'Returns a list of all the invited users',
|
||||
})
|
||||
async invitedUsers(): Promise<InvitedUser[]> {
|
||||
const users = await this.adminService.fetchInvitedUsers();
|
||||
return users;
|
||||
}
|
||||
|
||||
@ResolveField(() => [Team], {
|
||||
description: 'Returns a list of all the teams in the infra',
|
||||
})
|
||||
async allTeams(@Args() args: PaginationArgs): Promise<Team[]> {
|
||||
const teams = await this.adminService.fetchAllTeams(args.cursor, args.take);
|
||||
return teams;
|
||||
}
|
||||
|
||||
@ResolveField(() => Team, {
|
||||
description: 'Returns a team info by ID when requested by Admin',
|
||||
})
|
||||
async teamInfo(
|
||||
@Args({
|
||||
name: 'teamID',
|
||||
type: () => ID,
|
||||
description: 'Team ID for which info to fetch',
|
||||
})
|
||||
teamID: string,
|
||||
): Promise<Team> {
|
||||
const team = await this.adminService.getTeamInfo(teamID);
|
||||
if (E.isLeft(team)) throwErr(team.left);
|
||||
return team.right;
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the members in a team',
|
||||
})
|
||||
async membersCountInTeam(
|
||||
@Args({
|
||||
name: 'teamID',
|
||||
type: () => ID,
|
||||
description: 'Team ID for which team members to fetch',
|
||||
nullable: false,
|
||||
})
|
||||
teamID: string,
|
||||
): Promise<number> {
|
||||
const teamMembersCount = await this.adminService.membersCountInTeam(teamID);
|
||||
return teamMembersCount;
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the stored collections in a team',
|
||||
})
|
||||
async collectionCountInTeam(
|
||||
@Args({
|
||||
name: 'teamID',
|
||||
type: () => ID,
|
||||
description: 'Team ID for which team members to fetch',
|
||||
})
|
||||
teamID: string,
|
||||
): Promise<number> {
|
||||
const teamCollCount = await this.adminService.collectionCountInTeam(teamID);
|
||||
return teamCollCount;
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the stored requests in a team',
|
||||
})
|
||||
async requestCountInTeam(
|
||||
@Args({
|
||||
name: 'teamID',
|
||||
type: () => ID,
|
||||
description: 'Team ID for which team members to fetch',
|
||||
})
|
||||
teamID: string,
|
||||
): Promise<number> {
|
||||
const teamReqCount = await this.adminService.requestCountInTeam(teamID);
|
||||
return teamReqCount;
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return count of all the stored environments in a team',
|
||||
})
|
||||
async environmentCountInTeam(
|
||||
@Args({
|
||||
name: 'teamID',
|
||||
type: () => ID,
|
||||
description: 'Team ID for which team members to fetch',
|
||||
})
|
||||
teamID: string,
|
||||
): Promise<number> {
|
||||
const envsCount = await this.adminService.environmentCountInTeam(teamID);
|
||||
return envsCount;
|
||||
}
|
||||
|
||||
@ResolveField(() => [TeamInvitation], {
|
||||
description: 'Return all the pending invitations in a team',
|
||||
})
|
||||
async pendingInvitationCountInTeam(
|
||||
@Args({
|
||||
name: 'teamID',
|
||||
type: () => ID,
|
||||
description: 'Team ID for which team members to fetch',
|
||||
})
|
||||
teamID: string,
|
||||
) {
|
||||
const invitations = await this.adminService.pendingInvitationCountInTeam(
|
||||
teamID,
|
||||
);
|
||||
return invitations;
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Users in organization',
|
||||
})
|
||||
async usersCount() {
|
||||
return this.adminService.getUsersCount();
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Teams in organization',
|
||||
})
|
||||
async teamsCount() {
|
||||
return this.adminService.getTeamsCount();
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Team Collections in organization',
|
||||
})
|
||||
async teamCollectionsCount() {
|
||||
return this.adminService.getTeamCollectionsCount();
|
||||
}
|
||||
|
||||
@ResolveField(() => Number, {
|
||||
description: 'Return total number of Team Requests in organization',
|
||||
})
|
||||
async teamRequestsCount() {
|
||||
return this.adminService.getTeamRequestsCount();
|
||||
}
|
||||
|
||||
@ResolveField(() => [ShortcodeWithUserEmail], {
|
||||
description: 'Returns a list of all the shortcodes in the infra',
|
||||
})
|
||||
async allShortcodes(
|
||||
@Args() args: PaginationArgs,
|
||||
@Args({
|
||||
name: 'userEmail',
|
||||
nullable: true,
|
||||
description: 'Users email to filter shortcodes by',
|
||||
})
|
||||
userEmail: string,
|
||||
) {
|
||||
return await this.adminService.fetchAllShortcodes(
|
||||
args.cursor,
|
||||
args.take,
|
||||
userEmail,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,12 @@ import { AppController } from './app.controller';
|
||||
buildSchemaOptions: {
|
||||
numberScalarMode: 'integer',
|
||||
},
|
||||
cors: {
|
||||
origin: process.env.WHITELISTED_ORIGINS.split(','),
|
||||
credentials: true,
|
||||
},
|
||||
playground: process.env.PRODUCTION !== 'true',
|
||||
debug: process.env.PRODUCTION !== 'true',
|
||||
autoSchemaFile: true,
|
||||
installSubscriptionHandlers: true,
|
||||
subscriptions: {
|
||||
@@ -57,12 +62,10 @@ import { AppController } from './app.controller';
|
||||
}),
|
||||
driver: ApolloDriver,
|
||||
}),
|
||||
ThrottlerModule.forRoot([
|
||||
{
|
||||
ttl: +process.env.RATE_LIMIT_TTL,
|
||||
limit: +process.env.RATE_LIMIT_MAX,
|
||||
},
|
||||
]),
|
||||
ThrottlerModule.forRoot({
|
||||
ttl: +process.env.RATE_LIMIT_TTL,
|
||||
limit: +process.env.RATE_LIMIT_MAX,
|
||||
}),
|
||||
UserModule,
|
||||
AuthModule,
|
||||
AdminModule,
|
||||
|
||||
@@ -229,7 +229,7 @@ export class AuthService {
|
||||
}
|
||||
|
||||
await this.mailerService.sendEmail(email, {
|
||||
template: 'user-invitation',
|
||||
template: 'code-your-own',
|
||||
variables: {
|
||||
inviteeEmail: email,
|
||||
magicLink: `${url}/enter?token=${generatedTokens.token}`,
|
||||
|
||||
@@ -254,13 +254,6 @@ export const TEAM_COLL_INVALID_JSON = 'team_coll/invalid_json';
|
||||
*/
|
||||
export const TEAM_NOT_OWNER = 'team_coll/team_not_owner' as const;
|
||||
|
||||
/**
|
||||
* The Team Collection data is not valid
|
||||
* (TeamCollectionService)
|
||||
*/
|
||||
export const TEAM_COLL_DATA_INVALID =
|
||||
'team_coll/team_coll_data_invalid' as const;
|
||||
|
||||
/**
|
||||
* Tried to perform an action on a request that doesn't accept their member role level
|
||||
* (GqlRequestTeamMemberGuard)
|
||||
@@ -325,6 +318,18 @@ export const TEAM_INVITATION_NOT_FOUND =
|
||||
*/
|
||||
export const SHORTCODE_NOT_FOUND = 'shortcode/not_found' as const;
|
||||
|
||||
/**
|
||||
* Invalid ShortCode format
|
||||
* (ShortcodeService)
|
||||
*/
|
||||
export const SHORTCODE_INVALID_JSON = 'shortcode/invalid_json' as const;
|
||||
|
||||
/**
|
||||
* ShortCode already exists in DB
|
||||
* (ShortcodeService)
|
||||
*/
|
||||
export const SHORTCODE_ALREADY_EXISTS = 'shortcode/already_exists' as const;
|
||||
|
||||
/**
|
||||
* Invalid or non-existent TEAM ENVIRONMENT ID
|
||||
* (TeamEnvironmentsService)
|
||||
@@ -592,13 +597,6 @@ export const USER_COLL_REORDERING_FAILED =
|
||||
export const USER_COLL_SAME_NEXT_COLL =
|
||||
'user_coll/user_collection_and_next_user_collection_are_same' as const;
|
||||
|
||||
/**
|
||||
* The User Collection data is not valid
|
||||
* (UserCollectionService)
|
||||
*/
|
||||
export const USER_COLL_DATA_INVALID =
|
||||
'user_coll/user_coll_data_invalid' as const;
|
||||
|
||||
/**
|
||||
* The User Collection does not belong to the logged-in user
|
||||
* (UserCollectionService)
|
||||
@@ -623,24 +621,3 @@ export const MAILER_SMTP_URL_UNDEFINED = 'mailer/smtp_url_undefined' as const;
|
||||
*/
|
||||
export const MAILER_FROM_ADDRESS_UNDEFINED =
|
||||
'mailer/from_address_undefined' as const;
|
||||
|
||||
/**
|
||||
* SharedRequest invalid request JSON format
|
||||
* (ShortcodeService)
|
||||
*/
|
||||
export const SHORTCODE_INVALID_REQUEST_JSON =
|
||||
'shortcode/request_invalid_format' as const;
|
||||
|
||||
/**
|
||||
* SharedRequest invalid properties JSON format
|
||||
* (ShortcodeService)
|
||||
*/
|
||||
export const SHORTCODE_INVALID_PROPERTIES_JSON =
|
||||
'shortcode/properties_invalid_format' as const;
|
||||
|
||||
/**
|
||||
* SharedRequest invalid properties not found
|
||||
* (ShortcodeService)
|
||||
*/
|
||||
export const SHORTCODE_PROPERTIES_NOT_FOUND =
|
||||
'shortcode/properties_not_found' as const;
|
||||
|
||||
@@ -27,7 +27,6 @@ import { UserRequestUserCollectionResolver } from './user-request/resolvers/user
|
||||
import { UserEnvsUserResolver } from './user-environment/user.resolver';
|
||||
import { UserHistoryUserResolver } from './user-history/user.resolver';
|
||||
import { UserSettingsUserResolver } from './user-settings/user.resolver';
|
||||
import { InfraResolver } from './admin/infra.resolver';
|
||||
|
||||
/**
|
||||
* All the resolvers present in the application.
|
||||
@@ -35,7 +34,6 @@ import { InfraResolver } from './admin/infra.resolver';
|
||||
* NOTE: This needs to be KEPT UP-TO-DATE to keep the schema accurate
|
||||
*/
|
||||
const RESOLVERS = [
|
||||
InfraResolver,
|
||||
AdminResolver,
|
||||
ShortcodeResolver,
|
||||
TeamResolver,
|
||||
@@ -95,7 +93,9 @@ export async function emitGQLSchemaFile() {
|
||||
numberScalarMode: 'integer',
|
||||
});
|
||||
|
||||
const schemaString = printSchema(schema);
|
||||
const schemaString = printSchema(schema, {
|
||||
commentDescriptions: true,
|
||||
});
|
||||
|
||||
logger.log(`Writing schema to GQL_SCHEMA_EMIT_LOCATION (${destination})`);
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ import { Injectable } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
export class ThrottlerBehindProxyGuard extends ThrottlerGuard {
|
||||
protected async getTracker(req: Record<string, any>): Promise<string> {
|
||||
protected getTracker(req: Record<string, any>): string {
|
||||
return req.ips.length ? req.ips[0] : req.ip; // individualize IP extraction to meet your own needs
|
||||
// learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#directives
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ export type MailDescription = {
|
||||
};
|
||||
|
||||
export type UserMagicLinkMailDescription = {
|
||||
template: 'user-invitation';
|
||||
template: 'code-your-own';
|
||||
variables: {
|
||||
inviteeEmail: string;
|
||||
magicLink: string;
|
||||
@@ -16,7 +16,7 @@ export type UserMagicLinkMailDescription = {
|
||||
};
|
||||
|
||||
export type AdminUserInvitationMailDescription = {
|
||||
template: 'user-invitation';
|
||||
template: 'code-your-own';
|
||||
variables: {
|
||||
inviteeEmail: string;
|
||||
magicLink: string;
|
||||
|
||||
@@ -27,7 +27,7 @@ export class MailerService {
|
||||
case 'team-invitation':
|
||||
return `${mailDesc.variables.invitee} invited you to join ${mailDesc.variables.invite_team_name} in Hoppscotch`;
|
||||
|
||||
case 'user-invitation':
|
||||
case 'code-your-own':
|
||||
return 'Sign in to Hoppscotch';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
-->
|
||||
<style type="text/css" rel="stylesheet" media="all">
|
||||
/* Base ------------------------------ */
|
||||
|
||||
|
||||
@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:400,700&display=swap");
|
||||
body {
|
||||
width: 100% !important;
|
||||
@@ -22,19 +22,19 @@
|
||||
margin: 0;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: #3869D4;
|
||||
}
|
||||
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
td {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
|
||||
.preheader {
|
||||
display: none !important;
|
||||
visibility: hidden;
|
||||
@@ -47,13 +47,13 @@
|
||||
overflow: hidden;
|
||||
}
|
||||
/* Type ------------------------------ */
|
||||
|
||||
|
||||
body,
|
||||
td,
|
||||
th {
|
||||
font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
color: #333333;
|
||||
@@ -61,7 +61,7 @@
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
color: #333333;
|
||||
@@ -69,7 +69,7 @@
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
h3 {
|
||||
margin-top: 0;
|
||||
color: #333333;
|
||||
@@ -77,12 +77,12 @@
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
td,
|
||||
th {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
@@ -91,25 +91,25 @@
|
||||
font-size: 16px;
|
||||
line-height: 1.625;
|
||||
}
|
||||
|
||||
|
||||
p.sub {
|
||||
font-size: 13px;
|
||||
}
|
||||
/* Utilities ------------------------------ */
|
||||
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
/* Buttons ------------------------------ */
|
||||
|
||||
|
||||
.button {
|
||||
background-color: #3869D4;
|
||||
border-top: 10px solid #3869D4;
|
||||
@@ -124,7 +124,7 @@
|
||||
-webkit-text-size-adjust: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
.button--green {
|
||||
background-color: #22BC66;
|
||||
border-top: 10px solid #22BC66;
|
||||
@@ -132,7 +132,7 @@
|
||||
border-bottom: 10px solid #22BC66;
|
||||
border-left: 18px solid #22BC66;
|
||||
}
|
||||
|
||||
|
||||
.button--red {
|
||||
background-color: #FF6136;
|
||||
border-top: 10px solid #FF6136;
|
||||
@@ -140,7 +140,7 @@
|
||||
border-bottom: 10px solid #FF6136;
|
||||
border-left: 18px solid #FF6136;
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
.button {
|
||||
width: 100% !important;
|
||||
@@ -148,21 +148,21 @@
|
||||
}
|
||||
}
|
||||
/* Attribute list ------------------------------ */
|
||||
|
||||
|
||||
.attributes {
|
||||
margin: 0 0 21px;
|
||||
}
|
||||
|
||||
|
||||
.attributes_content {
|
||||
background-color: #F4F4F7;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
|
||||
.attributes_item {
|
||||
padding: 0;
|
||||
}
|
||||
/* Related Items ------------------------------ */
|
||||
|
||||
|
||||
.related {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -171,31 +171,31 @@
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
|
||||
.related_item {
|
||||
padding: 10px 0;
|
||||
color: #CBCCCF;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
|
||||
.related_item-title {
|
||||
display: block;
|
||||
margin: .5em 0 0;
|
||||
}
|
||||
|
||||
|
||||
.related_item-thumb {
|
||||
display: block;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.related_heading {
|
||||
border-top: 1px solid #CBCCCF;
|
||||
text-align: center;
|
||||
padding: 25px 0 10px;
|
||||
}
|
||||
/* Discount Code ------------------------------ */
|
||||
|
||||
|
||||
.discount {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -206,33 +206,33 @@
|
||||
background-color: #F4F4F7;
|
||||
border: 2px dashed #CBCCCF;
|
||||
}
|
||||
|
||||
|
||||
.discount_heading {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.discount_body {
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
}
|
||||
/* Social Icons ------------------------------ */
|
||||
|
||||
|
||||
.social {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
|
||||
.social td {
|
||||
padding: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
|
||||
.social_icon {
|
||||
height: 20px;
|
||||
margin: 0 8px 10px 8px;
|
||||
padding: 0;
|
||||
}
|
||||
/* Data table ------------------------------ */
|
||||
|
||||
|
||||
.purchase {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -241,7 +241,7 @@
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
|
||||
.purchase_content {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -250,50 +250,50 @@
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
|
||||
.purchase_item {
|
||||
padding: 10px 0;
|
||||
color: #51545E;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
|
||||
.purchase_heading {
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px solid #EAEAEC;
|
||||
}
|
||||
|
||||
|
||||
.purchase_heading p {
|
||||
margin: 0;
|
||||
color: #85878E;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
||||
.purchase_footer {
|
||||
padding-top: 15px;
|
||||
border-top: 1px solid #EAEAEC;
|
||||
}
|
||||
|
||||
|
||||
.purchase_total {
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
|
||||
.purchase_total--label {
|
||||
padding: 0 15px 0 0;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
background-color: #F2F4F6;
|
||||
color: #51545E;
|
||||
}
|
||||
|
||||
|
||||
p {
|
||||
color: #51545E;
|
||||
}
|
||||
|
||||
|
||||
.email-wrapper {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -303,7 +303,7 @@
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #F2F4F6;
|
||||
}
|
||||
|
||||
|
||||
.email-content {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -313,16 +313,16 @@
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
/* Masthead ----------------------- */
|
||||
|
||||
|
||||
.email-masthead {
|
||||
padding: 25px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.email-masthead_logo {
|
||||
width: 94px;
|
||||
}
|
||||
|
||||
|
||||
.email-masthead_name {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
@@ -331,7 +331,7 @@
|
||||
text-shadow: 0 1px 0 white;
|
||||
}
|
||||
/* Body ------------------------------ */
|
||||
|
||||
|
||||
.email-body {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -340,7 +340,7 @@
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
}
|
||||
|
||||
|
||||
.email-body_inner {
|
||||
width: 570px;
|
||||
margin: 0 auto;
|
||||
@@ -350,7 +350,7 @@
|
||||
-premailer-cellspacing: 0;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
|
||||
.email-footer {
|
||||
width: 570px;
|
||||
margin: 0 auto;
|
||||
@@ -360,11 +360,11 @@
|
||||
-premailer-cellspacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.email-footer p {
|
||||
color: #A8AAAF;
|
||||
}
|
||||
|
||||
|
||||
.body-action {
|
||||
width: 100%;
|
||||
margin: 30px auto;
|
||||
@@ -374,25 +374,25 @@
|
||||
-premailer-cellspacing: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.body-sub {
|
||||
margin-top: 25px;
|
||||
padding-top: 25px;
|
||||
border-top: 1px solid #EAEAEC;
|
||||
}
|
||||
|
||||
|
||||
.content-cell {
|
||||
padding: 45px;
|
||||
}
|
||||
/*Media Queries ------------------------------ */
|
||||
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
.email-body_inner,
|
||||
.email-footer {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body,
|
||||
.email-body,
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import { GraphQLSchemaHost } from '@nestjs/graphql';
|
||||
import {
|
||||
ApolloServerPlugin,
|
||||
BaseContext,
|
||||
GraphQLRequestListener,
|
||||
} from '@apollo/server';
|
||||
} from 'apollo-server-plugin-base';
|
||||
import { Plugin } from '@nestjs/apollo';
|
||||
import { GraphQLError } from 'graphql';
|
||||
import {
|
||||
@@ -18,7 +17,7 @@ const COMPLEXITY_LIMIT = 50;
|
||||
export class GQLComplexityPlugin implements ApolloServerPlugin {
|
||||
constructor(private gqlSchemaHost: GraphQLSchemaHost) {}
|
||||
|
||||
async requestDidStart(): Promise<GraphQLRequestListener<BaseContext>> {
|
||||
async requestDidStart(): Promise<GraphQLRequestListener> {
|
||||
const { schema } = this.gqlSchemaHost;
|
||||
|
||||
return {
|
||||
|
||||
@@ -21,8 +21,8 @@ import {
|
||||
} from 'src/team-request/team-request.model';
|
||||
import { TeamInvitation } from 'src/team-invitation/team-invitation.model';
|
||||
import { InvitedUser } from '../admin/invited-user.model';
|
||||
import { UserCollection } from '@prisma/client';
|
||||
import {
|
||||
UserCollection,
|
||||
UserCollectionRemovedData,
|
||||
UserCollectionReorderData,
|
||||
} from 'src/user-collection/user-collections.model';
|
||||
@@ -69,7 +69,5 @@ export type TopicDef = {
|
||||
[topic: `team_req/${string}/req_deleted`]: string;
|
||||
[topic: `team/${string}/invite_added`]: TeamInvitation;
|
||||
[topic: `team/${string}/invite_removed`]: string;
|
||||
[
|
||||
topic: `shortcode/${string}/${'created' | 'revoked' | 'updated'}`
|
||||
]: Shortcode;
|
||||
[topic: `shortcode/${string}/${'created' | 'revoked'}`]: Shortcode;
|
||||
};
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { Field, ID, ObjectType } from '@nestjs/graphql';
|
||||
import { User } from 'src/user/user.model';
|
||||
|
||||
@ObjectType()
|
||||
export class Shortcode {
|
||||
@Field(() => ID, {
|
||||
description: 'The 12 digit alphanumeric code',
|
||||
description: 'The shortcode. 12 digit alphanumeric.',
|
||||
})
|
||||
id: string;
|
||||
|
||||
@@ -13,57 +12,8 @@ export class Shortcode {
|
||||
})
|
||||
request: string;
|
||||
|
||||
@Field({
|
||||
description: 'JSON string representing the properties for an embed',
|
||||
nullable: true,
|
||||
})
|
||||
properties: string;
|
||||
|
||||
@Field({
|
||||
description: 'Timestamp of when the Shortcode was created',
|
||||
})
|
||||
createdOn: Date;
|
||||
}
|
||||
|
||||
@ObjectType()
|
||||
export class ShortcodeCreator {
|
||||
@Field({
|
||||
description: 'Uid of user who created the shortcode',
|
||||
})
|
||||
uid: string;
|
||||
|
||||
@Field({
|
||||
description: 'Email of user who created the shortcode',
|
||||
})
|
||||
email: string;
|
||||
}
|
||||
|
||||
@ObjectType()
|
||||
export class ShortcodeWithUserEmail {
|
||||
@Field(() => ID, {
|
||||
description: 'The 12 digit alphanumeric code',
|
||||
})
|
||||
id: string;
|
||||
|
||||
@Field({
|
||||
description: 'JSON string representing the request data',
|
||||
})
|
||||
request: string;
|
||||
|
||||
@Field({
|
||||
description: 'JSON string representing the properties for an embed',
|
||||
nullable: true,
|
||||
})
|
||||
properties: string;
|
||||
|
||||
@Field({
|
||||
description: 'Timestamp of when the Shortcode was created',
|
||||
})
|
||||
createdOn: Date;
|
||||
|
||||
@Field({
|
||||
description: 'Details of user who created the shortcode',
|
||||
nullable: true,
|
||||
})
|
||||
creator: ShortcodeCreator;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { JwtModule } from '@nestjs/jwt';
|
||||
import { PrismaModule } from 'src/prisma/prisma.module';
|
||||
import { PubSubModule } from 'src/pubsub/pubsub.module';
|
||||
import { UserModule } from 'src/user/user.module';
|
||||
@@ -6,7 +7,14 @@ import { ShortcodeResolver } from './shortcode.resolver';
|
||||
import { ShortcodeService } from './shortcode.service';
|
||||
|
||||
@Module({
|
||||
imports: [PrismaModule, UserModule, PubSubModule],
|
||||
imports: [
|
||||
PrismaModule,
|
||||
UserModule,
|
||||
PubSubModule,
|
||||
JwtModule.register({
|
||||
secret: process.env.JWT_SECRET,
|
||||
}),
|
||||
],
|
||||
providers: [ShortcodeService, ShortcodeResolver],
|
||||
exports: [ShortcodeService],
|
||||
})
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import {
|
||||
Args,
|
||||
Context,
|
||||
ID,
|
||||
Mutation,
|
||||
Query,
|
||||
@@ -8,25 +9,28 @@ import {
|
||||
} from '@nestjs/graphql';
|
||||
import * as E from 'fp-ts/Either';
|
||||
import { UseGuards } from '@nestjs/common';
|
||||
import { Shortcode, ShortcodeWithUserEmail } from './shortcode.model';
|
||||
import { Shortcode } from './shortcode.model';
|
||||
import { ShortcodeService } from './shortcode.service';
|
||||
import { UserService } from 'src/user/user.service';
|
||||
import { throwErr } from 'src/utils';
|
||||
import { GqlUser } from 'src/decorators/gql-user.decorator';
|
||||
import { GqlAuthGuard } from 'src/guards/gql-auth.guard';
|
||||
import { User } from 'src/user/user.model';
|
||||
import { PubSubService } from 'src/pubsub/pubsub.service';
|
||||
import { AuthUser } from '../types/AuthUser';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import { PaginationArgs } from 'src/types/input-types.args';
|
||||
import { GqlThrottlerGuard } from 'src/guards/gql-throttler.guard';
|
||||
import { SkipThrottle } from '@nestjs/throttler';
|
||||
import { GqlAdminGuard } from 'src/admin/guards/gql-admin.guard';
|
||||
|
||||
@UseGuards(GqlThrottlerGuard)
|
||||
@Resolver(() => Shortcode)
|
||||
export class ShortcodeResolver {
|
||||
constructor(
|
||||
private readonly shortcodeService: ShortcodeService,
|
||||
private readonly userService: UserService,
|
||||
private readonly pubsub: PubSubService,
|
||||
private jwtService: JwtService,
|
||||
) {}
|
||||
|
||||
/* Queries */
|
||||
@@ -60,53 +64,20 @@ export class ShortcodeResolver {
|
||||
@Mutation(() => Shortcode, {
|
||||
description: 'Create a shortcode for the given request.',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard)
|
||||
async createShortcode(
|
||||
@GqlUser() user: AuthUser,
|
||||
@Args({
|
||||
name: 'request',
|
||||
description: 'JSON string of the request object',
|
||||
})
|
||||
request: string,
|
||||
@Args({
|
||||
name: 'properties',
|
||||
description: 'JSON string of the properties of the embed',
|
||||
nullable: true,
|
||||
})
|
||||
properties: string,
|
||||
@Context() ctx: any,
|
||||
) {
|
||||
const decodedAccessToken = this.jwtService.verify(
|
||||
ctx.req.cookies['access_token'],
|
||||
);
|
||||
const result = await this.shortcodeService.createShortcode(
|
||||
request,
|
||||
properties,
|
||||
user,
|
||||
);
|
||||
|
||||
if (E.isLeft(result)) throwErr(result.left);
|
||||
return result.right;
|
||||
}
|
||||
|
||||
@Mutation(() => Shortcode, {
|
||||
description: 'Update a user generated Shortcode',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard)
|
||||
async updateEmbedProperties(
|
||||
@GqlUser() user: AuthUser,
|
||||
@Args({
|
||||
name: 'code',
|
||||
type: () => ID,
|
||||
description: 'The Shortcode to update',
|
||||
})
|
||||
code: string,
|
||||
@Args({
|
||||
name: 'properties',
|
||||
description: 'JSON string of the properties of the embed',
|
||||
})
|
||||
properties: string,
|
||||
) {
|
||||
const result = await this.shortcodeService.updateEmbedProperties(
|
||||
code,
|
||||
user.uid,
|
||||
properties,
|
||||
decodedAccessToken?.sub,
|
||||
);
|
||||
|
||||
if (E.isLeft(result)) throwErr(result.left);
|
||||
@@ -122,7 +93,7 @@ export class ShortcodeResolver {
|
||||
@Args({
|
||||
name: 'code',
|
||||
type: () => ID,
|
||||
description: 'The shortcode to remove',
|
||||
description: 'The shortcode to resolve',
|
||||
})
|
||||
code: string,
|
||||
) {
|
||||
@@ -143,16 +114,6 @@ export class ShortcodeResolver {
|
||||
return this.pubsub.asyncIterator(`shortcode/${user.uid}/created`);
|
||||
}
|
||||
|
||||
@Subscription(() => Shortcode, {
|
||||
description: 'Listen for Shortcode updates',
|
||||
resolve: (value) => value,
|
||||
})
|
||||
@SkipThrottle()
|
||||
@UseGuards(GqlAuthGuard)
|
||||
myShortcodesUpdated(@GqlUser() user: AuthUser) {
|
||||
return this.pubsub.asyncIterator(`shortcode/${user.uid}/updated`);
|
||||
}
|
||||
|
||||
@Subscription(() => Shortcode, {
|
||||
description: 'Listen for shortcode deletion',
|
||||
resolve: (value) => value,
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
import { mockDeep, mockReset } from 'jest-mock-extended';
|
||||
import { PrismaService } from '../prisma/prisma.service';
|
||||
import {
|
||||
INVALID_EMAIL,
|
||||
SHORTCODE_INVALID_PROPERTIES_JSON,
|
||||
SHORTCODE_INVALID_REQUEST_JSON,
|
||||
SHORTCODE_ALREADY_EXISTS,
|
||||
SHORTCODE_INVALID_JSON,
|
||||
SHORTCODE_NOT_FOUND,
|
||||
SHORTCODE_PROPERTIES_NOT_FOUND,
|
||||
} from 'src/errors';
|
||||
import { Shortcode, ShortcodeWithUserEmail } from './shortcode.model';
|
||||
import { Shortcode } from './shortcode.model';
|
||||
import { ShortcodeService } from './shortcode.service';
|
||||
import { UserService } from 'src/user/user.service';
|
||||
import { AuthUser } from 'src/types/AuthUser';
|
||||
|
||||
const mockPrisma = mockDeep<PrismaService>();
|
||||
|
||||
@@ -25,7 +22,7 @@ const mockFB = {
|
||||
doc: mockDocFunc,
|
||||
},
|
||||
};
|
||||
const mockUserService = new UserService(mockPrisma as any, mockPubSub as any);
|
||||
const mockUserService = new UserService(mockFB as any, mockPubSub as any);
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
@@ -41,34 +38,18 @@ beforeEach(() => {
|
||||
});
|
||||
const createdOn = new Date();
|
||||
|
||||
const user: AuthUser = {
|
||||
uid: '123344',
|
||||
email: 'dwight@dundermifflin.com',
|
||||
displayName: 'Dwight Schrute',
|
||||
photoURL: 'https://en.wikipedia.org/wiki/Dwight_Schrute',
|
||||
isAdmin: false,
|
||||
refreshToken: 'hbfvdkhjbvkdvdfjvbnkhjb',
|
||||
createdOn: createdOn,
|
||||
currentGQLSession: {},
|
||||
currentRESTSession: {},
|
||||
};
|
||||
|
||||
const mockEmbed = {
|
||||
const shortCodeWithOutUser = {
|
||||
id: '123',
|
||||
request: '{}',
|
||||
embedProperties: '{}',
|
||||
createdOn: createdOn,
|
||||
creatorUid: user.uid,
|
||||
updatedOn: createdOn,
|
||||
creatorUid: null,
|
||||
};
|
||||
|
||||
const mockShortcode = {
|
||||
const shortCodeWithUser = {
|
||||
id: '123',
|
||||
request: '{}',
|
||||
embedProperties: null,
|
||||
createdOn: createdOn,
|
||||
creatorUid: user.uid,
|
||||
updatedOn: createdOn,
|
||||
creatorUid: 'user_uid_1',
|
||||
};
|
||||
|
||||
const shortcodes = [
|
||||
@@ -77,67 +58,33 @@ const shortcodes = [
|
||||
request: {
|
||||
hello: 'there',
|
||||
},
|
||||
embedProperties: {
|
||||
foo: 'bar',
|
||||
},
|
||||
creatorUid: user.uid,
|
||||
creatorUid: 'testuser',
|
||||
createdOn: new Date(),
|
||||
updatedOn: createdOn,
|
||||
},
|
||||
{
|
||||
id: 'blablabla1',
|
||||
request: {
|
||||
hello: 'there',
|
||||
},
|
||||
embedProperties: {
|
||||
foo: 'bar',
|
||||
},
|
||||
creatorUid: user.uid,
|
||||
creatorUid: 'testuser',
|
||||
createdOn: new Date(),
|
||||
updatedOn: createdOn,
|
||||
},
|
||||
];
|
||||
|
||||
const shortcodesWithUserEmail = [
|
||||
{
|
||||
id: 'blablabla',
|
||||
request: {
|
||||
hello: 'there',
|
||||
},
|
||||
embedProperties: {
|
||||
foo: 'bar',
|
||||
},
|
||||
creatorUid: user.uid,
|
||||
createdOn: new Date(),
|
||||
updatedOn: createdOn,
|
||||
User: user,
|
||||
},
|
||||
{
|
||||
id: 'blablabla1',
|
||||
request: {
|
||||
hello: 'there',
|
||||
},
|
||||
embedProperties: {
|
||||
foo: 'bar',
|
||||
},
|
||||
creatorUid: user.uid,
|
||||
createdOn: new Date(),
|
||||
updatedOn: createdOn,
|
||||
User: user,
|
||||
},
|
||||
];
|
||||
|
||||
describe('ShortcodeService', () => {
|
||||
describe('getShortCode', () => {
|
||||
test('should return a valid Shortcode with valid Shortcode ID', async () => {
|
||||
mockPrisma.shortcode.findFirstOrThrow.mockResolvedValueOnce(mockEmbed);
|
||||
test('should return a valid shortcode with valid shortcode ID', async () => {
|
||||
mockPrisma.shortcode.findFirstOrThrow.mockResolvedValueOnce(
|
||||
shortCodeWithOutUser,
|
||||
);
|
||||
|
||||
const result = await shortcodeService.getShortCode(mockEmbed.id);
|
||||
const result = await shortcodeService.getShortCode(
|
||||
shortCodeWithOutUser.id,
|
||||
);
|
||||
expect(result).toEqualRight(<Shortcode>{
|
||||
id: mockEmbed.id,
|
||||
createdOn: mockEmbed.createdOn,
|
||||
request: JSON.stringify(mockEmbed.request),
|
||||
properties: JSON.stringify(mockEmbed.embedProperties),
|
||||
id: shortCodeWithOutUser.id,
|
||||
createdOn: shortCodeWithOutUser.createdOn,
|
||||
request: JSON.stringify(shortCodeWithOutUser.request),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -152,10 +99,10 @@ describe('ShortcodeService', () => {
|
||||
});
|
||||
|
||||
describe('fetchUserShortCodes', () => {
|
||||
test('should return list of Shortcode with valid inputs and no cursor', async () => {
|
||||
test('should return list of shortcodes with valid inputs and no cursor', async () => {
|
||||
mockPrisma.shortcode.findMany.mockResolvedValueOnce(shortcodes);
|
||||
|
||||
const result = await shortcodeService.fetchUserShortCodes(user.uid, {
|
||||
const result = await shortcodeService.fetchUserShortCodes('testuser', {
|
||||
cursor: null,
|
||||
take: 10,
|
||||
});
|
||||
@@ -163,22 +110,20 @@ describe('ShortcodeService', () => {
|
||||
{
|
||||
id: shortcodes[0].id,
|
||||
request: JSON.stringify(shortcodes[0].request),
|
||||
properties: JSON.stringify(shortcodes[0].embedProperties),
|
||||
createdOn: shortcodes[0].createdOn,
|
||||
},
|
||||
{
|
||||
id: shortcodes[1].id,
|
||||
request: JSON.stringify(shortcodes[1].request),
|
||||
properties: JSON.stringify(shortcodes[1].embedProperties),
|
||||
createdOn: shortcodes[1].createdOn,
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
test('should return list of Shortcode with valid inputs and cursor', async () => {
|
||||
test('should return list of shortcodes with valid inputs and cursor', async () => {
|
||||
mockPrisma.shortcode.findMany.mockResolvedValue([shortcodes[1]]);
|
||||
|
||||
const result = await shortcodeService.fetchUserShortCodes(user.uid, {
|
||||
const result = await shortcodeService.fetchUserShortCodes('testuser', {
|
||||
cursor: 'blablabla',
|
||||
take: 10,
|
||||
});
|
||||
@@ -186,7 +131,6 @@ describe('ShortcodeService', () => {
|
||||
{
|
||||
id: shortcodes[1].id,
|
||||
request: JSON.stringify(shortcodes[1].request),
|
||||
properties: JSON.stringify(shortcodes[1].embedProperties),
|
||||
createdOn: shortcodes[1].createdOn,
|
||||
},
|
||||
]);
|
||||
@@ -195,7 +139,7 @@ describe('ShortcodeService', () => {
|
||||
test('should return an empty array for an invalid cursor', async () => {
|
||||
mockPrisma.shortcode.findMany.mockResolvedValue([]);
|
||||
|
||||
const result = await shortcodeService.fetchUserShortCodes(user.uid, {
|
||||
const result = await shortcodeService.fetchUserShortCodes('testuser', {
|
||||
cursor: 'invalidcursor',
|
||||
take: 10,
|
||||
});
|
||||
@@ -227,111 +171,77 @@ describe('ShortcodeService', () => {
|
||||
});
|
||||
|
||||
describe('createShortcode', () => {
|
||||
test('should throw SHORTCODE_INVALID_REQUEST_JSON error if incoming request data is invalid', async () => {
|
||||
test('should throw SHORTCODE_INVALID_JSON error if incoming request data is invalid', async () => {
|
||||
const result = await shortcodeService.createShortcode(
|
||||
'invalidRequest',
|
||||
null,
|
||||
user,
|
||||
'user_uid_1',
|
||||
);
|
||||
expect(result).toEqualLeft(SHORTCODE_INVALID_REQUEST_JSON);
|
||||
expect(result).toEqualLeft(SHORTCODE_INVALID_JSON);
|
||||
});
|
||||
|
||||
test('should throw SHORTCODE_INVALID_PROPERTIES_JSON error if incoming properties data is invalid', async () => {
|
||||
const result = await shortcodeService.createShortcode(
|
||||
'{}',
|
||||
'invalid_data',
|
||||
user,
|
||||
);
|
||||
expect(result).toEqualLeft(SHORTCODE_INVALID_PROPERTIES_JSON);
|
||||
});
|
||||
|
||||
test('should successfully create a new Embed with valid user uid', async () => {
|
||||
// generateUniqueShortCodeID --> getShortcode
|
||||
test('should successfully create a new shortcode with valid user uid', async () => {
|
||||
// generateUniqueShortCodeID --> getShortCode
|
||||
mockPrisma.shortcode.findFirstOrThrow.mockRejectedValueOnce(
|
||||
'NotFoundError',
|
||||
);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(mockEmbed);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(shortCodeWithUser);
|
||||
|
||||
const result = await shortcodeService.createShortcode('{}', '{}', user);
|
||||
expect(result).toEqualRight(<Shortcode>{
|
||||
id: mockEmbed.id,
|
||||
createdOn: mockEmbed.createdOn,
|
||||
request: JSON.stringify(mockEmbed.request),
|
||||
properties: JSON.stringify(mockEmbed.embedProperties),
|
||||
const result = await shortcodeService.createShortcode('{}', 'user_uid_1');
|
||||
expect(result).toEqualRight({
|
||||
id: shortCodeWithUser.id,
|
||||
createdOn: shortCodeWithUser.createdOn,
|
||||
request: JSON.stringify(shortCodeWithUser.request),
|
||||
});
|
||||
});
|
||||
|
||||
test('should successfully create a new ShortCode with valid user uid', async () => {
|
||||
// generateUniqueShortCodeID --> getShortcode
|
||||
test('should successfully create a new shortcode with null user uid', async () => {
|
||||
// generateUniqueShortCodeID --> getShortCode
|
||||
mockPrisma.shortcode.findFirstOrThrow.mockRejectedValueOnce(
|
||||
'NotFoundError',
|
||||
);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(mockShortcode);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(shortCodeWithUser);
|
||||
|
||||
const result = await shortcodeService.createShortcode('{}', null, user);
|
||||
expect(result).toEqualRight(<Shortcode>{
|
||||
id: mockShortcode.id,
|
||||
createdOn: mockShortcode.createdOn,
|
||||
request: JSON.stringify(mockShortcode.request),
|
||||
properties: mockShortcode.embedProperties,
|
||||
const result = await shortcodeService.createShortcode('{}', null);
|
||||
expect(result).toEqualRight({
|
||||
id: shortCodeWithUser.id,
|
||||
createdOn: shortCodeWithUser.createdOn,
|
||||
request: JSON.stringify(shortCodeWithOutUser.request),
|
||||
});
|
||||
});
|
||||
|
||||
test('should send pubsub message to `shortcode/{uid}/created` on successful creation of a Shortcode', async () => {
|
||||
// generateUniqueShortCodeID --> getShortcode
|
||||
test('should send pubsub message to `shortcode/{uid}/created` on successful creation of shortcode', async () => {
|
||||
// generateUniqueShortCodeID --> getShortCode
|
||||
mockPrisma.shortcode.findFirstOrThrow.mockRejectedValueOnce(
|
||||
'NotFoundError',
|
||||
);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(mockShortcode);
|
||||
|
||||
const result = await shortcodeService.createShortcode('{}', null, user);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(shortCodeWithUser);
|
||||
|
||||
const result = await shortcodeService.createShortcode('{}', 'user_uid_1');
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`shortcode/${mockShortcode.creatorUid}/created`,
|
||||
<Shortcode>{
|
||||
id: mockShortcode.id,
|
||||
createdOn: mockShortcode.createdOn,
|
||||
request: JSON.stringify(mockShortcode.request),
|
||||
properties: mockShortcode.embedProperties,
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
test('should send pubsub message to `shortcode/{uid}/created` on successful creation of an Embed', async () => {
|
||||
// generateUniqueShortCodeID --> getShortcode
|
||||
mockPrisma.shortcode.findFirstOrThrow.mockRejectedValueOnce(
|
||||
'NotFoundError',
|
||||
);
|
||||
mockPrisma.shortcode.create.mockResolvedValueOnce(mockEmbed);
|
||||
|
||||
const result = await shortcodeService.createShortcode('{}', '{}', user);
|
||||
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`shortcode/${mockEmbed.creatorUid}/created`,
|
||||
<Shortcode>{
|
||||
id: mockEmbed.id,
|
||||
createdOn: mockEmbed.createdOn,
|
||||
request: JSON.stringify(mockEmbed.request),
|
||||
properties: JSON.stringify(mockEmbed.embedProperties),
|
||||
`shortcode/${shortCodeWithUser.creatorUid}/created`,
|
||||
{
|
||||
id: shortCodeWithUser.id,
|
||||
createdOn: shortCodeWithUser.createdOn,
|
||||
request: JSON.stringify(shortCodeWithUser.request),
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('revokeShortCode', () => {
|
||||
test('should return true on successful deletion of Shortcode with valid inputs', async () => {
|
||||
mockPrisma.shortcode.delete.mockResolvedValueOnce(mockEmbed);
|
||||
test('should return true on successful deletion of shortcode with valid inputs', async () => {
|
||||
mockPrisma.shortcode.delete.mockResolvedValueOnce(shortCodeWithUser);
|
||||
|
||||
const result = await shortcodeService.revokeShortCode(
|
||||
mockEmbed.id,
|
||||
mockEmbed.creatorUid,
|
||||
shortCodeWithUser.id,
|
||||
shortCodeWithUser.creatorUid,
|
||||
);
|
||||
|
||||
expect(mockPrisma.shortcode.delete).toHaveBeenCalledWith({
|
||||
where: {
|
||||
creator_uid_shortcode_unique: {
|
||||
creatorUid: mockEmbed.creatorUid,
|
||||
id: mockEmbed.id,
|
||||
creatorUid: shortCodeWithUser.creatorUid,
|
||||
id: shortCodeWithUser.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -339,53 +249,52 @@ describe('ShortcodeService', () => {
|
||||
expect(result).toEqualRight(true);
|
||||
});
|
||||
|
||||
test('should return SHORTCODE_NOT_FOUND error when Shortcode is invalid and user uid is valid', async () => {
|
||||
test('should return SHORTCODE_NOT_FOUND error when shortcode is invalid and user uid is valid', async () => {
|
||||
mockPrisma.shortcode.delete.mockRejectedValue('RecordNotFound');
|
||||
expect(
|
||||
shortcodeService.revokeShortCode('invalid', 'testuser'),
|
||||
).resolves.toEqualLeft(SHORTCODE_NOT_FOUND);
|
||||
});
|
||||
|
||||
test('should return SHORTCODE_NOT_FOUND error when Shortcode is valid and user uid is invalid', async () => {
|
||||
test('should return SHORTCODE_NOT_FOUND error when shortcode is valid and user uid is invalid', async () => {
|
||||
mockPrisma.shortcode.delete.mockRejectedValue('RecordNotFound');
|
||||
expect(
|
||||
shortcodeService.revokeShortCode('blablablabla', 'invalidUser'),
|
||||
).resolves.toEqualLeft(SHORTCODE_NOT_FOUND);
|
||||
});
|
||||
|
||||
test('should return SHORTCODE_NOT_FOUND error when both Shortcode and user uid are invalid', async () => {
|
||||
test('should return SHORTCODE_NOT_FOUND error when both shortcode and user uid are invalid', async () => {
|
||||
mockPrisma.shortcode.delete.mockRejectedValue('RecordNotFound');
|
||||
expect(
|
||||
shortcodeService.revokeShortCode('invalid', 'invalid'),
|
||||
).resolves.toEqualLeft(SHORTCODE_NOT_FOUND);
|
||||
});
|
||||
|
||||
test('should send pubsub message to `shortcode/{uid}/revoked` on successful deletion of Shortcode', async () => {
|
||||
mockPrisma.shortcode.delete.mockResolvedValueOnce(mockEmbed);
|
||||
test('should send pubsub message to `shortcode/{uid}/revoked` on successful deletion of shortcode', async () => {
|
||||
mockPrisma.shortcode.delete.mockResolvedValueOnce(shortCodeWithUser);
|
||||
|
||||
const result = await shortcodeService.revokeShortCode(
|
||||
mockEmbed.id,
|
||||
mockEmbed.creatorUid,
|
||||
shortCodeWithUser.id,
|
||||
shortCodeWithUser.creatorUid,
|
||||
);
|
||||
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`shortcode/${mockEmbed.creatorUid}/revoked`,
|
||||
`shortcode/${shortCodeWithUser.creatorUid}/revoked`,
|
||||
{
|
||||
id: mockEmbed.id,
|
||||
createdOn: mockEmbed.createdOn,
|
||||
request: JSON.stringify(mockEmbed.request),
|
||||
properties: JSON.stringify(mockEmbed.embedProperties),
|
||||
id: shortCodeWithUser.id,
|
||||
createdOn: shortCodeWithUser.createdOn,
|
||||
request: JSON.stringify(shortCodeWithUser.request),
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('deleteUserShortCodes', () => {
|
||||
test('should successfully delete all users Shortcodes with valid user uid', async () => {
|
||||
test('should successfully delete all users shortcodes with valid user uid', async () => {
|
||||
mockPrisma.shortcode.deleteMany.mockResolvedValueOnce({ count: 1 });
|
||||
|
||||
const result = await shortcodeService.deleteUserShortCodes(
|
||||
mockEmbed.creatorUid,
|
||||
shortCodeWithUser.creatorUid,
|
||||
);
|
||||
expect(result).toEqual(1);
|
||||
});
|
||||
@@ -394,176 +303,9 @@ describe('ShortcodeService', () => {
|
||||
mockPrisma.shortcode.deleteMany.mockResolvedValueOnce({ count: 0 });
|
||||
|
||||
const result = await shortcodeService.deleteUserShortCodes(
|
||||
mockEmbed.creatorUid,
|
||||
shortCodeWithUser.creatorUid,
|
||||
);
|
||||
expect(result).toEqual(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('updateShortcode', () => {
|
||||
test('should return SHORTCODE_PROPERTIES_NOT_FOUND error when updatedProps in invalid', async () => {
|
||||
const result = await shortcodeService.updateEmbedProperties(
|
||||
mockEmbed.id,
|
||||
user.uid,
|
||||
'',
|
||||
);
|
||||
expect(result).toEqualLeft(SHORTCODE_PROPERTIES_NOT_FOUND);
|
||||
});
|
||||
|
||||
test('should return SHORTCODE_PROPERTIES_NOT_FOUND error when updatedProps in invalid JSON format', async () => {
|
||||
const result = await shortcodeService.updateEmbedProperties(
|
||||
mockEmbed.id,
|
||||
user.uid,
|
||||
'{kk',
|
||||
);
|
||||
expect(result).toEqualLeft(SHORTCODE_INVALID_PROPERTIES_JSON);
|
||||
});
|
||||
|
||||
test('should return SHORTCODE_NOT_FOUND error when Shortcode ID is invalid', async () => {
|
||||
mockPrisma.shortcode.update.mockRejectedValue('RecordNotFound');
|
||||
const result = await shortcodeService.updateEmbedProperties(
|
||||
'invalidID',
|
||||
user.uid,
|
||||
'{}',
|
||||
);
|
||||
expect(result).toEqualLeft(SHORTCODE_NOT_FOUND);
|
||||
});
|
||||
|
||||
test('should successfully update a Shortcodes with valid inputs', async () => {
|
||||
mockPrisma.shortcode.update.mockResolvedValueOnce({
|
||||
...mockEmbed,
|
||||
embedProperties: '{"foo":"bar"}',
|
||||
});
|
||||
|
||||
const result = await shortcodeService.updateEmbedProperties(
|
||||
mockEmbed.id,
|
||||
user.uid,
|
||||
'{"foo":"bar"}',
|
||||
);
|
||||
expect(result).toEqualRight({
|
||||
id: mockEmbed.id,
|
||||
createdOn: mockEmbed.createdOn,
|
||||
request: JSON.stringify(mockEmbed.request),
|
||||
properties: JSON.stringify('{"foo":"bar"}'),
|
||||
});
|
||||
});
|
||||
|
||||
test('should send pubsub message to `shortcode/{uid}/updated` on successful Update of Shortcode', async () => {
|
||||
mockPrisma.shortcode.update.mockResolvedValueOnce({
|
||||
...mockEmbed,
|
||||
embedProperties: '{"foo":"bar"}',
|
||||
});
|
||||
|
||||
const result = await shortcodeService.updateEmbedProperties(
|
||||
mockEmbed.id,
|
||||
user.uid,
|
||||
'{"foo":"bar"}',
|
||||
);
|
||||
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`shortcode/${mockEmbed.creatorUid}/updated`,
|
||||
{
|
||||
id: mockEmbed.id,
|
||||
createdOn: mockEmbed.createdOn,
|
||||
request: JSON.stringify(mockEmbed.request),
|
||||
properties: JSON.stringify('{"foo":"bar"}'),
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('deleteShortcode', () => {
|
||||
test('should return true on successful deletion of Shortcode with valid inputs', async () => {
|
||||
mockPrisma.shortcode.delete.mockResolvedValueOnce(mockEmbed);
|
||||
|
||||
const result = await shortcodeService.deleteShortcode(mockEmbed.id);
|
||||
expect(result).toEqualRight(true);
|
||||
});
|
||||
|
||||
test('should return SHORTCODE_NOT_FOUND error when Shortcode is invalid', async () => {
|
||||
mockPrisma.shortcode.delete.mockRejectedValue('RecordNotFound');
|
||||
|
||||
expect(shortcodeService.deleteShortcode('invalid')).resolves.toEqualLeft(
|
||||
SHORTCODE_NOT_FOUND,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('fetchAllShortcodes', () => {
|
||||
test('should return list of Shortcodes with valid inputs and no cursor', async () => {
|
||||
mockPrisma.shortcode.findMany.mockResolvedValueOnce(
|
||||
shortcodesWithUserEmail,
|
||||
);
|
||||
|
||||
const result = await shortcodeService.fetchAllShortcodes(
|
||||
{
|
||||
cursor: null,
|
||||
take: 10,
|
||||
},
|
||||
user.email,
|
||||
);
|
||||
expect(result).toEqual(<ShortcodeWithUserEmail[]>[
|
||||
{
|
||||
id: shortcodes[0].id,
|
||||
request: JSON.stringify(shortcodes[0].request),
|
||||
properties: JSON.stringify(shortcodes[0].embedProperties),
|
||||
createdOn: shortcodes[0].createdOn,
|
||||
creator: {
|
||||
uid: user.uid,
|
||||
email: user.email,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: shortcodes[1].id,
|
||||
request: JSON.stringify(shortcodes[1].request),
|
||||
properties: JSON.stringify(shortcodes[1].embedProperties),
|
||||
createdOn: shortcodes[1].createdOn,
|
||||
creator: {
|
||||
uid: user.uid,
|
||||
email: user.email,
|
||||
},
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
test('should return list of Shortcode with valid inputs and cursor', async () => {
|
||||
mockPrisma.shortcode.findMany.mockResolvedValue([
|
||||
shortcodesWithUserEmail[1],
|
||||
]);
|
||||
|
||||
const result = await shortcodeService.fetchAllShortcodes(
|
||||
{
|
||||
cursor: 'blablabla',
|
||||
take: 10,
|
||||
},
|
||||
user.email,
|
||||
);
|
||||
expect(result).toEqual(<ShortcodeWithUserEmail[]>[
|
||||
{
|
||||
id: shortcodes[1].id,
|
||||
request: JSON.stringify(shortcodes[1].request),
|
||||
properties: JSON.stringify(shortcodes[1].embedProperties),
|
||||
createdOn: shortcodes[1].createdOn,
|
||||
creator: {
|
||||
uid: user.uid,
|
||||
email: user.email,
|
||||
},
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
test('should return an empty array for an invalid cursor', async () => {
|
||||
mockPrisma.shortcode.findMany.mockResolvedValue([]);
|
||||
|
||||
const result = await shortcodeService.fetchAllShortcodes(
|
||||
{
|
||||
cursor: 'invalidcursor',
|
||||
take: 10,
|
||||
},
|
||||
user.email,
|
||||
);
|
||||
|
||||
expect(result).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||
import * as T from 'fp-ts/Task';
|
||||
import * as O from 'fp-ts/Option';
|
||||
import * as TO from 'fp-ts/TaskOption';
|
||||
import * as E from 'fp-ts/Either';
|
||||
import { PrismaService } from 'src/prisma/prisma.service';
|
||||
import {
|
||||
SHORTCODE_INVALID_PROPERTIES_JSON,
|
||||
SHORTCODE_INVALID_REQUEST_JSON,
|
||||
SHORTCODE_NOT_FOUND,
|
||||
SHORTCODE_PROPERTIES_NOT_FOUND,
|
||||
} from 'src/errors';
|
||||
import { SHORTCODE_INVALID_JSON, SHORTCODE_NOT_FOUND } from 'src/errors';
|
||||
import { UserDataHandler } from 'src/user/user.data.handler';
|
||||
import { Shortcode, ShortcodeWithUserEmail } from './shortcode.model';
|
||||
import { Shortcode } from './shortcode.model';
|
||||
import { Shortcode as DBShortCode } from '@prisma/client';
|
||||
import { PubSubService } from 'src/pubsub/pubsub.service';
|
||||
import { UserService } from 'src/user/user.service';
|
||||
@@ -50,14 +46,10 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
* @param shortcodeInfo Prisma Shortcode type
|
||||
* @returns GQL Shortcode
|
||||
*/
|
||||
private cast(shortcodeInfo: DBShortCode): Shortcode {
|
||||
private returnShortCode(shortcodeInfo: DBShortCode): Shortcode {
|
||||
return <Shortcode>{
|
||||
id: shortcodeInfo.id,
|
||||
request: JSON.stringify(shortcodeInfo.request),
|
||||
properties:
|
||||
shortcodeInfo.embedProperties != null
|
||||
? JSON.stringify(shortcodeInfo.embedProperties)
|
||||
: null,
|
||||
createdOn: shortcodeInfo.createdOn,
|
||||
};
|
||||
}
|
||||
@@ -102,7 +94,7 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
const shortcodeInfo = await this.prisma.shortcode.findFirstOrThrow({
|
||||
where: { id: shortcode },
|
||||
});
|
||||
return E.right(this.cast(shortcodeInfo));
|
||||
return E.right(this.returnShortCode(shortcodeInfo));
|
||||
} catch (error) {
|
||||
return E.left(SHORTCODE_NOT_FOUND);
|
||||
}
|
||||
@@ -112,22 +104,14 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
* Create a new ShortCode
|
||||
*
|
||||
* @param request JSON string of request details
|
||||
* @param userInfo user UI
|
||||
* @param properties JSON string of embed properties, if present
|
||||
* @param userUID user UID, if present
|
||||
* @returns Either of ShortCode or error
|
||||
*/
|
||||
async createShortcode(
|
||||
request: string,
|
||||
properties: string | null = null,
|
||||
userInfo: AuthUser,
|
||||
) {
|
||||
const requestData = stringToJson(request);
|
||||
if (E.isLeft(requestData) || !requestData.right)
|
||||
return E.left(SHORTCODE_INVALID_REQUEST_JSON);
|
||||
async createShortcode(request: string, userUID: string | null) {
|
||||
const shortcodeData = stringToJson(request);
|
||||
if (E.isLeft(shortcodeData)) return E.left(SHORTCODE_INVALID_JSON);
|
||||
|
||||
const parsedProperties = stringToJson(properties);
|
||||
if (E.isLeft(parsedProperties))
|
||||
return E.left(SHORTCODE_INVALID_PROPERTIES_JSON);
|
||||
const user = await this.userService.findUserById(userUID);
|
||||
|
||||
const generatedShortCode = await this.generateUniqueShortCodeID();
|
||||
if (E.isLeft(generatedShortCode)) return E.left(generatedShortCode.left);
|
||||
@@ -135,9 +119,8 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
const createdShortCode = await this.prisma.shortcode.create({
|
||||
data: {
|
||||
id: generatedShortCode.right,
|
||||
request: requestData.right,
|
||||
embedProperties: parsedProperties.right ?? undefined,
|
||||
creatorUid: userInfo.uid,
|
||||
request: shortcodeData.right,
|
||||
creatorUid: O.isNone(user) ? null : user.value.uid,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -145,11 +128,11 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
if (createdShortCode.creatorUid) {
|
||||
this.pubsub.publish(
|
||||
`shortcode/${createdShortCode.creatorUid}/created`,
|
||||
this.cast(createdShortCode),
|
||||
this.returnShortCode(createdShortCode),
|
||||
);
|
||||
}
|
||||
|
||||
return E.right(this.cast(createdShortCode));
|
||||
return E.right(this.returnShortCode(createdShortCode));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -173,14 +156,14 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
});
|
||||
|
||||
const fetchedShortCodes: Shortcode[] = shortCodes.map((code) =>
|
||||
this.cast(code),
|
||||
this.returnShortCode(code),
|
||||
);
|
||||
|
||||
return fetchedShortCodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a ShortCode created by User of uid
|
||||
* Delete a ShortCode
|
||||
*
|
||||
* @param shortcode ShortCode
|
||||
* @param uid User Uid
|
||||
@@ -199,7 +182,7 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
|
||||
this.pubsub.publish(
|
||||
`shortcode/${deletedShortCodes.creatorUid}/revoked`,
|
||||
this.cast(deletedShortCodes),
|
||||
this.returnShortCode(deletedShortCodes),
|
||||
);
|
||||
|
||||
return E.right(true);
|
||||
@@ -222,118 +205,4 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
|
||||
|
||||
return deletedShortCodes.count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a Shortcode
|
||||
*
|
||||
* @param shortcodeID ID of Shortcode being deleted
|
||||
* @returns Boolean on successful deletion
|
||||
*/
|
||||
async deleteShortcode(shortcodeID: string) {
|
||||
try {
|
||||
await this.prisma.shortcode.delete({
|
||||
where: {
|
||||
id: shortcodeID,
|
||||
},
|
||||
});
|
||||
|
||||
return E.right(true);
|
||||
} catch (error) {
|
||||
return E.left(SHORTCODE_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a created Shortcode
|
||||
* @param shortcodeID Shortcode ID
|
||||
* @param uid User Uid
|
||||
* @returns Updated Shortcode
|
||||
*/
|
||||
async updateEmbedProperties(
|
||||
shortcodeID: string,
|
||||
uid: string,
|
||||
updatedProps: string,
|
||||
) {
|
||||
if (!updatedProps) return E.left(SHORTCODE_PROPERTIES_NOT_FOUND);
|
||||
|
||||
const parsedProperties = stringToJson(updatedProps);
|
||||
if (E.isLeft(parsedProperties) || !parsedProperties.right)
|
||||
return E.left(SHORTCODE_INVALID_PROPERTIES_JSON);
|
||||
|
||||
try {
|
||||
const updatedShortcode = await this.prisma.shortcode.update({
|
||||
where: {
|
||||
creator_uid_shortcode_unique: {
|
||||
creatorUid: uid,
|
||||
id: shortcodeID,
|
||||
},
|
||||
},
|
||||
data: {
|
||||
embedProperties: parsedProperties.right,
|
||||
},
|
||||
});
|
||||
|
||||
this.pubsub.publish(
|
||||
`shortcode/${updatedShortcode.creatorUid}/updated`,
|
||||
this.cast(updatedShortcode),
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedShortcode));
|
||||
} catch (error) {
|
||||
return E.left(SHORTCODE_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch all created ShortCodes
|
||||
*
|
||||
* @param args Pagination arguments
|
||||
* @param userEmail User email
|
||||
* @returns ShortcodeWithUserEmail
|
||||
*/
|
||||
async fetchAllShortcodes(
|
||||
args: PaginationArgs,
|
||||
userEmail: string | null = null,
|
||||
) {
|
||||
const shortCodes = await this.prisma.shortcode.findMany({
|
||||
where: userEmail
|
||||
? {
|
||||
User: {
|
||||
email: userEmail,
|
||||
},
|
||||
}
|
||||
: undefined,
|
||||
orderBy: {
|
||||
createdOn: 'desc',
|
||||
},
|
||||
skip: args.cursor ? 1 : 0,
|
||||
take: args.take,
|
||||
cursor: args.cursor ? { id: args.cursor } : undefined,
|
||||
include: {
|
||||
User: true,
|
||||
},
|
||||
});
|
||||
|
||||
const fetchedShortCodes: ShortcodeWithUserEmail[] = shortCodes.map(
|
||||
(code) => {
|
||||
return <ShortcodeWithUserEmail>{
|
||||
id: code.id,
|
||||
request: JSON.stringify(code.request),
|
||||
properties:
|
||||
code.embedProperties != null
|
||||
? JSON.stringify(code.embedProperties)
|
||||
: null,
|
||||
createdOn: code.createdOn,
|
||||
creator: code.User
|
||||
? {
|
||||
uid: code.User.uid,
|
||||
email: code.User.email,
|
||||
}
|
||||
: null,
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
return fetchedShortCodes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,13 +14,6 @@ export class CreateRootTeamCollectionArgs {
|
||||
|
||||
@Field({ name: 'title', description: 'Title of the new collection' })
|
||||
title: string;
|
||||
|
||||
@Field({
|
||||
name: 'data',
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
}
|
||||
|
||||
@ArgsType()
|
||||
@@ -33,13 +26,6 @@ export class CreateChildTeamCollectionArgs {
|
||||
|
||||
@Field({ name: 'childTitle', description: 'Title of the new collection' })
|
||||
childTitle: string;
|
||||
|
||||
@Field({
|
||||
name: 'data',
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
}
|
||||
|
||||
@ArgsType()
|
||||
@@ -47,14 +33,12 @@ export class RenameTeamCollectionArgs {
|
||||
@Field(() => ID, {
|
||||
name: 'collectionID',
|
||||
description: 'ID of the collection',
|
||||
deprecationReason: 'Switch to updateTeamCollection mutation instead',
|
||||
})
|
||||
collectionID: string;
|
||||
|
||||
@Field({
|
||||
name: 'newTitle',
|
||||
description: 'The updated title of the collection',
|
||||
deprecationReason: 'Switch to updateTeamCollection mutation instead',
|
||||
})
|
||||
newTitle: string;
|
||||
}
|
||||
@@ -114,26 +98,3 @@ export class ReplaceTeamCollectionArgs {
|
||||
})
|
||||
parentCollectionID?: string;
|
||||
}
|
||||
|
||||
@ArgsType()
|
||||
export class UpdateTeamCollectionArgs {
|
||||
@Field(() => ID, {
|
||||
name: 'collectionID',
|
||||
description: 'ID of the collection',
|
||||
})
|
||||
collectionID: string;
|
||||
|
||||
@Field({
|
||||
name: 'newTitle',
|
||||
description: 'The updated title of the collection',
|
||||
nullable: true,
|
||||
})
|
||||
newTitle: string;
|
||||
|
||||
@Field({
|
||||
name: 'data',
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
}
|
||||
|
||||
@@ -12,17 +12,12 @@ export class TeamCollection {
|
||||
})
|
||||
title: string;
|
||||
|
||||
@Field({
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
|
||||
@Field(() => ID, {
|
||||
description: 'ID of the collection',
|
||||
nullable: true,
|
||||
})
|
||||
parentID: string;
|
||||
teamID: string;
|
||||
}
|
||||
|
||||
@ObjectType()
|
||||
|
||||
@@ -25,7 +25,6 @@ import {
|
||||
MoveTeamCollectionArgs,
|
||||
RenameTeamCollectionArgs,
|
||||
ReplaceTeamCollectionArgs,
|
||||
UpdateTeamCollectionArgs,
|
||||
UpdateTeamCollectionOrderArgs,
|
||||
} from './input-type.args';
|
||||
import * as E from 'fp-ts/Either';
|
||||
@@ -142,14 +141,7 @@ export class TeamCollectionResolver {
|
||||
);
|
||||
|
||||
if (E.isLeft(teamCollections)) throwErr(teamCollections.left);
|
||||
return <TeamCollection>{
|
||||
id: teamCollections.right.id,
|
||||
title: teamCollections.right.title,
|
||||
parentID: teamCollections.right.parentID,
|
||||
data: !teamCollections.right.data
|
||||
? null
|
||||
: JSON.stringify(teamCollections.right.data),
|
||||
};
|
||||
return teamCollections.right;
|
||||
}
|
||||
|
||||
// Mutations
|
||||
@@ -163,7 +155,6 @@ export class TeamCollectionResolver {
|
||||
const teamCollection = await this.teamCollectionService.createCollection(
|
||||
args.teamID,
|
||||
args.title,
|
||||
args.data,
|
||||
null,
|
||||
);
|
||||
|
||||
@@ -239,7 +230,6 @@ export class TeamCollectionResolver {
|
||||
const teamCollection = await this.teamCollectionService.createCollection(
|
||||
team.right.id,
|
||||
args.childTitle,
|
||||
args.data,
|
||||
args.collectionID,
|
||||
);
|
||||
|
||||
@@ -249,7 +239,6 @@ export class TeamCollectionResolver {
|
||||
|
||||
@Mutation(() => TeamCollection, {
|
||||
description: 'Rename a collection',
|
||||
deprecationReason: 'Switch to updateTeamCollection mutation instead',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlCollectionTeamMemberGuard)
|
||||
@RequiresTeamRole(TeamMemberRole.OWNER, TeamMemberRole.EDITOR)
|
||||
@@ -314,23 +303,6 @@ export class TeamCollectionResolver {
|
||||
return request.right;
|
||||
}
|
||||
|
||||
@Mutation(() => TeamCollection, {
|
||||
description: 'Update Team Collection details',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard, GqlCollectionTeamMemberGuard)
|
||||
@RequiresTeamRole(TeamMemberRole.OWNER, TeamMemberRole.EDITOR)
|
||||
async updateTeamCollection(@Args() args: UpdateTeamCollectionArgs) {
|
||||
const updatedTeamCollection =
|
||||
await this.teamCollectionService.updateTeamCollection(
|
||||
args.collectionID,
|
||||
args.data,
|
||||
args.newTitle,
|
||||
);
|
||||
|
||||
if (E.isLeft(updatedTeamCollection)) throwErr(updatedTeamCollection.left);
|
||||
return updatedTeamCollection.right;
|
||||
}
|
||||
|
||||
// Subscriptions
|
||||
|
||||
@Subscription(() => TeamCollection, {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { Team, TeamCollection as DBTeamCollection } from '@prisma/client';
|
||||
import { mockDeep, mockReset } from 'jest-mock-extended';
|
||||
import { mock, mockDeep, mockReset } from 'jest-mock-extended';
|
||||
import {
|
||||
TEAM_COLL_DATA_INVALID,
|
||||
TEAM_COLL_DEST_SAME,
|
||||
TEAM_COLL_INVALID_JSON,
|
||||
TEAM_COLL_IS_PARENT_COLL,
|
||||
@@ -19,6 +18,8 @@ import { PubSubService } from 'src/pubsub/pubsub.service';
|
||||
import { AuthUser } from 'src/types/AuthUser';
|
||||
import { TeamCollectionService } from './team-collection.service';
|
||||
import { TeamCollection } from './team-collection.model';
|
||||
import { TeamCollectionModule } from './team-collection.module';
|
||||
import * as E from 'fp-ts/Either';
|
||||
|
||||
const mockPrisma = mockDeep<PrismaService>();
|
||||
const mockPubSub = mockDeep<PubSubService>();
|
||||
@@ -53,60 +54,35 @@ const rootTeamCollection: DBTeamCollection = {
|
||||
id: '123',
|
||||
orderIndex: 1,
|
||||
parentID: null,
|
||||
data: {},
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
};
|
||||
|
||||
const rootTeamCollectionsCasted: TeamCollection = {
|
||||
id: rootTeamCollection.id,
|
||||
title: rootTeamCollection.title,
|
||||
parentID: rootTeamCollection.parentID,
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
};
|
||||
|
||||
const rootTeamCollection_2: DBTeamCollection = {
|
||||
id: 'erv',
|
||||
orderIndex: 2,
|
||||
parentID: null,
|
||||
data: {},
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
};
|
||||
|
||||
const rootTeamCollection_2Casted: TeamCollection = {
|
||||
id: 'erv',
|
||||
parentID: null,
|
||||
data: JSON.stringify(rootTeamCollection_2.data),
|
||||
title: 'Root Collection 1',
|
||||
};
|
||||
|
||||
const childTeamCollection: DBTeamCollection = {
|
||||
id: 'rfe',
|
||||
orderIndex: 1,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
title: 'Child Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
};
|
||||
|
||||
const childTeamCollectionCasted: TeamCollection = {
|
||||
id: 'rfe',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify(childTeamCollection.data),
|
||||
title: 'Child Collection 1',
|
||||
};
|
||||
|
||||
const childTeamCollection_2: DBTeamCollection = {
|
||||
id: 'bgdz',
|
||||
orderIndex: 1,
|
||||
data: {},
|
||||
parentID: rootTeamCollection_2.id,
|
||||
title: 'Child Collection 1',
|
||||
teamID: team.id,
|
||||
@@ -114,20 +90,11 @@ const childTeamCollection_2: DBTeamCollection = {
|
||||
updatedOn: currentTime,
|
||||
};
|
||||
|
||||
const childTeamCollection_2Casted: TeamCollection = {
|
||||
id: 'bgdz',
|
||||
data: JSON.stringify(childTeamCollection_2.data),
|
||||
parentID: rootTeamCollection_2.id,
|
||||
title: 'Child Collection 1',
|
||||
};
|
||||
|
||||
const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
{
|
||||
id: 'fdv',
|
||||
orderIndex: 1,
|
||||
parentID: null,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -138,8 +105,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 2,
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -149,8 +114,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 3,
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -159,8 +122,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
id: 'bre3',
|
||||
orderIndex: 4,
|
||||
parentID: null,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -171,8 +132,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 5,
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -183,8 +142,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
data: {},
|
||||
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
},
|
||||
@@ -194,8 +151,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
data: {},
|
||||
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
},
|
||||
@@ -204,7 +159,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 8,
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -214,7 +168,6 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 9,
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -225,83 +178,17 @@ const rootTeamCollectionList: DBTeamCollection[] = [
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
data: {},
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
},
|
||||
];
|
||||
|
||||
const rootTeamCollectionListCasted: TeamCollection[] = [
|
||||
{
|
||||
id: 'fdv',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: 'fbbg',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: 'fgbfg',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: 'bre3',
|
||||
parentID: null,
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: 'hghgf',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: '123',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: '54tyh',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: '234re',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: '34rtg',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
{
|
||||
id: '45tgh',
|
||||
parentID: null,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify(rootTeamCollection.data),
|
||||
},
|
||||
];
|
||||
|
||||
const childTeamCollectionList: DBTeamCollection[] = [
|
||||
{
|
||||
id: '123',
|
||||
orderIndex: 1,
|
||||
parentID: rootTeamCollection.id,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -311,8 +198,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 2,
|
||||
parentID: rootTeamCollection.id,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -322,8 +207,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
orderIndex: 3,
|
||||
parentID: rootTeamCollection.id,
|
||||
title: 'Root Collection 1',
|
||||
data: {},
|
||||
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
updatedOn: currentTime,
|
||||
@@ -332,8 +215,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '567',
|
||||
orderIndex: 4,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -343,8 +224,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '123',
|
||||
orderIndex: 5,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -354,8 +233,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '678',
|
||||
orderIndex: 6,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -365,8 +242,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '789',
|
||||
orderIndex: 7,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -376,8 +251,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '890',
|
||||
orderIndex: 8,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -387,7 +260,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '012',
|
||||
orderIndex: 9,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -397,8 +269,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
id: '0bhu',
|
||||
orderIndex: 10,
|
||||
parentID: rootTeamCollection.id,
|
||||
data: {},
|
||||
|
||||
title: 'Root Collection 1',
|
||||
teamID: team.id,
|
||||
createdOn: currentTime,
|
||||
@@ -406,75 +276,6 @@ const childTeamCollectionList: DBTeamCollection[] = [
|
||||
},
|
||||
];
|
||||
|
||||
const childTeamCollectionListCasted: TeamCollection[] = [
|
||||
{
|
||||
id: '123',
|
||||
parentID: rootTeamCollection.id,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify({}),
|
||||
},
|
||||
{
|
||||
id: '345',
|
||||
parentID: rootTeamCollection.id,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify({}),
|
||||
},
|
||||
{
|
||||
id: '456',
|
||||
parentID: rootTeamCollection.id,
|
||||
title: 'Root Collection 1',
|
||||
data: JSON.stringify({}),
|
||||
},
|
||||
{
|
||||
id: '567',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: '123',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: '678',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: '789',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: '890',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: '012',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
{
|
||||
id: '0bhu',
|
||||
parentID: rootTeamCollection.id,
|
||||
data: JSON.stringify({}),
|
||||
|
||||
title: 'Root Collection 1',
|
||||
},
|
||||
];
|
||||
|
||||
beforeEach(() => {
|
||||
mockReset(mockPrisma);
|
||||
mockPubSub.publish.mockClear();
|
||||
@@ -513,7 +314,7 @@ describe('getParentOfCollection', () => {
|
||||
const result = await teamCollectionService.getParentOfCollection(
|
||||
childTeamCollection.id,
|
||||
);
|
||||
expect(result).toEqual(rootTeamCollectionsCasted);
|
||||
expect(result).toEqual(rootTeamCollection);
|
||||
});
|
||||
|
||||
test('should return null successfully for a root collection with valid collectionID', async () => {
|
||||
@@ -549,7 +350,7 @@ describe('getChildrenOfCollection', () => {
|
||||
null,
|
||||
10,
|
||||
);
|
||||
expect(result).toEqual(childTeamCollectionListCasted);
|
||||
expect(result).toEqual(childTeamCollectionList);
|
||||
});
|
||||
|
||||
test('should return a list of 3 child collections successfully with cursor being equal to the 7th item in the list', async () => {
|
||||
@@ -565,9 +366,9 @@ describe('getChildrenOfCollection', () => {
|
||||
10,
|
||||
);
|
||||
expect(result).toEqual([
|
||||
{ ...childTeamCollectionListCasted[7] },
|
||||
{ ...childTeamCollectionListCasted[8] },
|
||||
{ ...childTeamCollectionListCasted[9] },
|
||||
{ ...childTeamCollectionList[7] },
|
||||
{ ...childTeamCollectionList[8] },
|
||||
{ ...childTeamCollectionList[9] },
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -594,7 +395,7 @@ describe('getTeamRootCollections', () => {
|
||||
null,
|
||||
10,
|
||||
);
|
||||
expect(result).toEqual(rootTeamCollectionListCasted);
|
||||
expect(result).toEqual(rootTeamCollectionList);
|
||||
});
|
||||
|
||||
test('should return a list of 3 root collections successfully with cursor being equal to the 7th item in the list', async () => {
|
||||
@@ -610,9 +411,9 @@ describe('getTeamRootCollections', () => {
|
||||
10,
|
||||
);
|
||||
expect(result).toEqual([
|
||||
{ ...rootTeamCollectionListCasted[7] },
|
||||
{ ...rootTeamCollectionListCasted[8] },
|
||||
{ ...rootTeamCollectionListCasted[9] },
|
||||
{ ...rootTeamCollectionList[7] },
|
||||
{ ...rootTeamCollectionList[8] },
|
||||
{ ...rootTeamCollectionList[9] },
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -666,7 +467,6 @@ describe('createCollection', () => {
|
||||
const result = await teamCollectionService.createCollection(
|
||||
rootTeamCollection.teamID,
|
||||
'ab',
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(result).toEqualLeft(TEAM_COLL_SHORT_TITLE);
|
||||
@@ -681,27 +481,11 @@ describe('createCollection', () => {
|
||||
const result = await teamCollectionService.createCollection(
|
||||
rootTeamCollection.teamID,
|
||||
'abcd',
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(result).toEqualLeft(TEAM_NOT_OWNER);
|
||||
});
|
||||
|
||||
test('should throw TEAM_COLL_DATA_INVALID when parent TeamCollection does not belong to the team', async () => {
|
||||
// isOwnerCheck
|
||||
mockPrisma.teamCollection.findFirstOrThrow.mockResolvedValueOnce(
|
||||
rootTeamCollection,
|
||||
);
|
||||
|
||||
const result = await teamCollectionService.createCollection(
|
||||
rootTeamCollection.teamID,
|
||||
'abcd',
|
||||
'{',
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(result).toEqualLeft(TEAM_COLL_DATA_INVALID);
|
||||
});
|
||||
|
||||
test('should successfully create a new root TeamCollection with valid inputs', async () => {
|
||||
// isOwnerCheck
|
||||
mockPrisma.teamCollection.findFirstOrThrow.mockResolvedValueOnce(
|
||||
@@ -715,10 +499,9 @@ describe('createCollection', () => {
|
||||
const result = await teamCollectionService.createCollection(
|
||||
rootTeamCollection.teamID,
|
||||
'abcdefg',
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(result).toEqualRight(rootTeamCollectionsCasted);
|
||||
expect(result).toEqualRight(rootTeamCollection);
|
||||
});
|
||||
|
||||
test('should successfully create a new child TeamCollection with valid inputs', async () => {
|
||||
@@ -734,10 +517,9 @@ describe('createCollection', () => {
|
||||
const result = await teamCollectionService.createCollection(
|
||||
childTeamCollection.teamID,
|
||||
childTeamCollection.title,
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(result).toEqualRight(childTeamCollectionCasted);
|
||||
expect(result).toEqualRight(childTeamCollection);
|
||||
});
|
||||
|
||||
test('should send pubsub message to "team_coll/<teamID>/coll_added" if child TeamCollection is created successfully', async () => {
|
||||
@@ -753,13 +535,11 @@ describe('createCollection', () => {
|
||||
const result = await teamCollectionService.createCollection(
|
||||
childTeamCollection.teamID,
|
||||
childTeamCollection.title,
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${childTeamCollection.teamID}/coll_added`,
|
||||
childTeamCollectionCasted,
|
||||
childTeamCollection,
|
||||
);
|
||||
});
|
||||
|
||||
@@ -776,13 +556,11 @@ describe('createCollection', () => {
|
||||
const result = await teamCollectionService.createCollection(
|
||||
rootTeamCollection.teamID,
|
||||
'abcdefg',
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
|
||||
rootTeamCollection.id,
|
||||
);
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${rootTeamCollection.teamID}/coll_added`,
|
||||
rootTeamCollectionsCasted,
|
||||
rootTeamCollection,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -812,7 +590,7 @@ describe('renameCollection', () => {
|
||||
'NewTitle',
|
||||
);
|
||||
expect(result).toEqualRight({
|
||||
...rootTeamCollectionsCasted,
|
||||
...rootTeamCollection,
|
||||
title: 'NewTitle',
|
||||
});
|
||||
});
|
||||
@@ -850,7 +628,7 @@ describe('renameCollection', () => {
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${rootTeamCollection.teamID}/coll_updated`,
|
||||
{
|
||||
...rootTeamCollectionsCasted,
|
||||
...rootTeamCollection,
|
||||
title: 'NewTitle',
|
||||
},
|
||||
);
|
||||
@@ -1057,8 +835,9 @@ describe('moveCollection', () => {
|
||||
null,
|
||||
);
|
||||
expect(result).toEqualRight({
|
||||
...childTeamCollectionCasted,
|
||||
...childTeamCollection,
|
||||
parentID: null,
|
||||
orderIndex: 2,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1114,8 +893,9 @@ describe('moveCollection', () => {
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${childTeamCollection.teamID}/coll_moved`,
|
||||
{
|
||||
...childTeamCollectionCasted,
|
||||
...childTeamCollection,
|
||||
parentID: null,
|
||||
orderIndex: 2,
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -1154,8 +934,9 @@ describe('moveCollection', () => {
|
||||
childTeamCollection_2.id,
|
||||
);
|
||||
expect(result).toEqualRight({
|
||||
...rootTeamCollectionsCasted,
|
||||
parentID: childTeamCollection_2Casted.id,
|
||||
...rootTeamCollection,
|
||||
parentID: childTeamCollection_2.id,
|
||||
orderIndex: 1,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1195,8 +976,9 @@ describe('moveCollection', () => {
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${childTeamCollection_2.teamID}/coll_moved`,
|
||||
{
|
||||
...rootTeamCollectionsCasted,
|
||||
parentID: childTeamCollection_2Casted.id,
|
||||
...rootTeamCollection,
|
||||
parentID: childTeamCollection_2.id,
|
||||
orderIndex: 1,
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -1235,8 +1017,9 @@ describe('moveCollection', () => {
|
||||
childTeamCollection_2.id,
|
||||
);
|
||||
expect(result).toEqualRight({
|
||||
...childTeamCollectionCasted,
|
||||
parentID: childTeamCollection_2Casted.id,
|
||||
...childTeamCollection,
|
||||
parentID: childTeamCollection_2.id,
|
||||
orderIndex: 1,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1276,8 +1059,9 @@ describe('moveCollection', () => {
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${childTeamCollection.teamID}/coll_moved`,
|
||||
{
|
||||
...childTeamCollectionCasted,
|
||||
parentID: childTeamCollection_2Casted.id,
|
||||
...childTeamCollection,
|
||||
parentID: childTeamCollection_2.id,
|
||||
orderIndex: 1,
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -1373,7 +1157,7 @@ describe('updateCollectionOrder', () => {
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${childTeamCollectionList[4].teamID}/coll_order_updated`,
|
||||
{
|
||||
collection: rootTeamCollectionListCasted[4],
|
||||
collection: rootTeamCollectionList[4],
|
||||
nextCollection: null,
|
||||
},
|
||||
);
|
||||
@@ -1454,8 +1238,8 @@ describe('updateCollectionOrder', () => {
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${childTeamCollectionList[2].teamID}/coll_order_updated`,
|
||||
{
|
||||
collection: childTeamCollectionListCasted[4],
|
||||
nextCollection: childTeamCollectionListCasted[2],
|
||||
collection: childTeamCollectionList[4],
|
||||
nextCollection: childTeamCollectionList[2],
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -1521,7 +1305,7 @@ describe('importCollectionsFromJSON', () => {
|
||||
);
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${rootTeamCollection.teamID}/coll_added`,
|
||||
rootTeamCollectionsCasted,
|
||||
rootTeamCollection,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -1640,7 +1424,7 @@ describe('replaceCollectionsWithJSON', () => {
|
||||
);
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${rootTeamCollection.teamID}/coll_added`,
|
||||
rootTeamCollectionsCasted,
|
||||
rootTeamCollection,
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -1677,64 +1461,4 @@ describe('totalCollectionsInTeam', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('updateTeamCollection', () => {
|
||||
test('should throw TEAM_COLL_SHORT_TITLE if title is invalid', async () => {
|
||||
const result = await teamCollectionService.updateTeamCollection(
|
||||
rootTeamCollection.id,
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
'de',
|
||||
);
|
||||
expect(result).toEqualLeft(TEAM_COLL_SHORT_TITLE);
|
||||
});
|
||||
|
||||
test('should throw TEAM_COLL_DATA_INVALID is collection data is invalid', async () => {
|
||||
const result = await teamCollectionService.updateTeamCollection(
|
||||
rootTeamCollection.id,
|
||||
'{',
|
||||
rootTeamCollection.title,
|
||||
);
|
||||
expect(result).toEqualLeft(TEAM_COLL_DATA_INVALID);
|
||||
});
|
||||
|
||||
test('should throw TEAM_COLL_NOT_FOUND is collectionID is invalid', async () => {
|
||||
mockPrisma.teamCollection.update.mockRejectedValueOnce('RecordNotFound');
|
||||
|
||||
const result = await teamCollectionService.updateTeamCollection(
|
||||
'invalid_id',
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
rootTeamCollection.title,
|
||||
);
|
||||
expect(result).toEqualLeft(TEAM_COLL_NOT_FOUND);
|
||||
});
|
||||
|
||||
test('should successfully update a collection', async () => {
|
||||
mockPrisma.teamCollection.update.mockResolvedValueOnce(rootTeamCollection);
|
||||
|
||||
const result = await teamCollectionService.updateTeamCollection(
|
||||
rootTeamCollection.id,
|
||||
JSON.stringify({ foo: 'bar' }),
|
||||
'new_title',
|
||||
);
|
||||
expect(result).toEqualRight({
|
||||
data: JSON.stringify({ foo: 'bar' }),
|
||||
title: 'new_title',
|
||||
...rootTeamCollectionsCasted,
|
||||
});
|
||||
});
|
||||
|
||||
test('should send pubsub message to "team_coll/<teamID>/coll_updated" if TeamCollection is updated successfully', async () => {
|
||||
mockPrisma.teamCollection.update.mockResolvedValueOnce(rootTeamCollection);
|
||||
|
||||
const result = await teamCollectionService.updateTeamCollection(
|
||||
rootTeamCollection.id,
|
||||
JSON.stringify(rootTeamCollection.data),
|
||||
rootTeamCollection.title,
|
||||
);
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`team_coll/${rootTeamCollection.teamID}/coll_updated`,
|
||||
rootTeamCollectionsCasted,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
//ToDo: write test cases for exportCollectionsToJSON
|
||||
|
||||
@@ -13,7 +13,6 @@ import {
|
||||
TEAM_COLL_IS_PARENT_COLL,
|
||||
TEAM_COL_SAME_NEXT_COLL,
|
||||
TEAM_COL_REORDERING_FAILED,
|
||||
TEAM_COLL_DATA_INVALID,
|
||||
} from '../errors';
|
||||
import { PubSubService } from '../pubsub/pubsub.service';
|
||||
import { isValidLength } from 'src/utils';
|
||||
@@ -70,7 +69,6 @@ export class TeamCollectionService {
|
||||
this.generatePrismaQueryObjForFBCollFolder(f, teamID, index + 1),
|
||||
),
|
||||
},
|
||||
data: folder.data ?? undefined,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -120,7 +118,6 @@ export class TeamCollectionService {
|
||||
name: collection.right.title,
|
||||
folders: childrenCollectionObjects,
|
||||
requests: requests.map((x) => x.request),
|
||||
data: JSON.stringify(collection.right.data),
|
||||
};
|
||||
|
||||
return E.right(result);
|
||||
@@ -201,11 +198,8 @@ export class TeamCollectionService {
|
||||
),
|
||||
);
|
||||
|
||||
teamCollections.forEach((collection) =>
|
||||
this.pubsub.publish(
|
||||
`team_coll/${destTeamID}/coll_added`,
|
||||
this.cast(collection),
|
||||
),
|
||||
teamCollections.forEach((x) =>
|
||||
this.pubsub.publish(`team_coll/${destTeamID}/coll_added`, x),
|
||||
);
|
||||
|
||||
return E.right(true);
|
||||
@@ -274,11 +268,8 @@ export class TeamCollectionService {
|
||||
),
|
||||
);
|
||||
|
||||
teamCollections.forEach((collections) =>
|
||||
this.pubsub.publish(
|
||||
`team_coll/${destTeamID}/coll_added`,
|
||||
this.cast(collections),
|
||||
),
|
||||
teamCollections.forEach((x) =>
|
||||
this.pubsub.publish(`team_coll/${destTeamID}/coll_added`, x),
|
||||
);
|
||||
|
||||
return E.right(true);
|
||||
@@ -286,17 +277,11 @@ export class TeamCollectionService {
|
||||
|
||||
/**
|
||||
* Typecast a database TeamCollection to a TeamCollection model
|
||||
*
|
||||
* @param teamCollection database TeamCollection
|
||||
* @returns TeamCollection model
|
||||
*/
|
||||
private cast(teamCollection: DBTeamCollection): TeamCollection {
|
||||
return <TeamCollection>{
|
||||
id: teamCollection.id,
|
||||
title: teamCollection.title,
|
||||
parentID: teamCollection.parentID,
|
||||
data: !teamCollection.data ? null : JSON.stringify(teamCollection.data),
|
||||
};
|
||||
return <TeamCollection>{ ...teamCollection };
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -339,7 +324,7 @@ export class TeamCollectionService {
|
||||
});
|
||||
if (!teamCollection) return null;
|
||||
|
||||
return !teamCollection.parent ? null : this.cast(teamCollection.parent);
|
||||
return teamCollection.parent;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -350,12 +335,12 @@ export class TeamCollectionService {
|
||||
* @param take Number of items we want returned
|
||||
* @returns A list of child collections
|
||||
*/
|
||||
async getChildrenOfCollection(
|
||||
getChildrenOfCollection(
|
||||
collectionID: string,
|
||||
cursor: string | null,
|
||||
take: number,
|
||||
) {
|
||||
const res = await this.prisma.teamCollection.findMany({
|
||||
return this.prisma.teamCollection.findMany({
|
||||
where: {
|
||||
parentID: collectionID,
|
||||
},
|
||||
@@ -366,12 +351,6 @@ export class TeamCollectionService {
|
||||
skip: cursor ? 1 : 0,
|
||||
cursor: cursor ? { id: cursor } : undefined,
|
||||
});
|
||||
|
||||
const childCollections = res.map((teamCollection) =>
|
||||
this.cast(teamCollection),
|
||||
);
|
||||
|
||||
return childCollections;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -387,7 +366,7 @@ export class TeamCollectionService {
|
||||
cursor: string | null,
|
||||
take: number,
|
||||
) {
|
||||
const res = await this.prisma.teamCollection.findMany({
|
||||
return this.prisma.teamCollection.findMany({
|
||||
where: {
|
||||
teamID,
|
||||
parentID: null,
|
||||
@@ -399,12 +378,6 @@ export class TeamCollectionService {
|
||||
skip: cursor ? 1 : 0,
|
||||
cursor: cursor ? { id: cursor } : undefined,
|
||||
});
|
||||
|
||||
const teamCollections = res.map((teamCollection) =>
|
||||
this.cast(teamCollection),
|
||||
);
|
||||
|
||||
return teamCollections;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -497,7 +470,6 @@ export class TeamCollectionService {
|
||||
async createCollection(
|
||||
teamID: string,
|
||||
title: string,
|
||||
data: string | null = null,
|
||||
parentTeamCollectionID: string | null,
|
||||
) {
|
||||
const isTitleValid = isValidLength(title, this.TITLE_LENGTH);
|
||||
@@ -509,13 +481,6 @@ export class TeamCollectionService {
|
||||
if (O.isNone(isOwner)) return E.left(TEAM_NOT_OWNER);
|
||||
}
|
||||
|
||||
if (data === '') return E.left(TEAM_COLL_DATA_INVALID);
|
||||
if (data) {
|
||||
const jsonReq = stringToJson(data);
|
||||
if (E.isLeft(jsonReq)) return E.left(TEAM_COLL_DATA_INVALID);
|
||||
data = jsonReq.right;
|
||||
}
|
||||
|
||||
const isParent = parentTeamCollectionID
|
||||
? {
|
||||
connect: {
|
||||
@@ -533,23 +498,18 @@ export class TeamCollectionService {
|
||||
},
|
||||
},
|
||||
parent: isParent,
|
||||
data: data ?? undefined,
|
||||
orderIndex: !parentTeamCollectionID
|
||||
? (await this.getRootCollectionsCount(teamID)) + 1
|
||||
: (await this.getChildCollectionsCount(parentTeamCollectionID)) + 1,
|
||||
},
|
||||
});
|
||||
|
||||
this.pubsub.publish(
|
||||
`team_coll/${teamID}/coll_added`,
|
||||
this.cast(teamCollection),
|
||||
);
|
||||
this.pubsub.publish(`team_coll/${teamID}/coll_added`, teamCollection);
|
||||
|
||||
return E.right(this.cast(teamCollection));
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use updateTeamCollection method instead
|
||||
* Update the title of a TeamCollection
|
||||
*
|
||||
* @param collectionID The Collection ID
|
||||
@@ -572,10 +532,10 @@ export class TeamCollectionService {
|
||||
|
||||
this.pubsub.publish(
|
||||
`team_coll/${updatedTeamCollection.teamID}/coll_updated`,
|
||||
this.cast(updatedTeamCollection),
|
||||
updatedTeamCollection,
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedTeamCollection));
|
||||
return E.right(updatedTeamCollection);
|
||||
} catch (error) {
|
||||
return E.left(TEAM_COLL_NOT_FOUND);
|
||||
}
|
||||
@@ -734,8 +694,8 @@ export class TeamCollectionService {
|
||||
* @returns An Option of boolean, is parent or not
|
||||
*/
|
||||
private async isParent(
|
||||
collection: DBTeamCollection,
|
||||
destCollection: DBTeamCollection,
|
||||
collection: TeamCollection,
|
||||
destCollection: TeamCollection,
|
||||
): Promise<O.Option<boolean>> {
|
||||
//* Recursively check if collection is a parent by going up the tree of child-parent collections until we reach a root collection i.e parentID === null
|
||||
//* Valid condition, isParent returns false
|
||||
@@ -1011,49 +971,4 @@ export class TeamCollectionService {
|
||||
const teamCollectionsCount = this.prisma.teamCollection.count();
|
||||
return teamCollectionsCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Team Collection details
|
||||
*
|
||||
* @param collectionID Collection ID
|
||||
* @param collectionData new header data in a JSONified string form
|
||||
* @param newTitle New title of the collection
|
||||
* @returns Updated TeamCollection
|
||||
*/
|
||||
async updateTeamCollection(
|
||||
collectionID: string,
|
||||
collectionData: string = null,
|
||||
newTitle: string = null,
|
||||
) {
|
||||
try {
|
||||
if (newTitle != null) {
|
||||
const isTitleValid = isValidLength(newTitle, this.TITLE_LENGTH);
|
||||
if (!isTitleValid) return E.left(TEAM_COLL_SHORT_TITLE);
|
||||
}
|
||||
|
||||
if (collectionData === '') return E.left(TEAM_COLL_DATA_INVALID);
|
||||
if (collectionData) {
|
||||
const jsonReq = stringToJson(collectionData);
|
||||
if (E.isLeft(jsonReq)) return E.left(TEAM_COLL_DATA_INVALID);
|
||||
collectionData = jsonReq.right;
|
||||
}
|
||||
|
||||
const updatedTeamCollection = await this.prisma.teamCollection.update({
|
||||
where: { id: collectionID },
|
||||
data: {
|
||||
data: collectionData ?? undefined,
|
||||
title: newTitle ?? undefined,
|
||||
},
|
||||
});
|
||||
|
||||
this.pubsub.publish(
|
||||
`team_coll/${updatedTeamCollection.teamID}/coll_updated`,
|
||||
this.cast(updatedTeamCollection),
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedTeamCollection));
|
||||
} catch (e) {
|
||||
return E.left(TEAM_COLL_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,7 +301,7 @@ describe('TeamEnvironmentsService', () => {
|
||||
|
||||
describe('createDuplicateEnvironment', () => {
|
||||
test('should successfully duplicate an existing team environment', async () => {
|
||||
mockPrisma.teamEnvironment.findFirstOrThrow.mockResolvedValueOnce(
|
||||
mockPrisma.teamEnvironment.findFirst.mockResolvedValueOnce(
|
||||
teamEnvironment,
|
||||
);
|
||||
|
||||
@@ -322,9 +322,7 @@ describe('TeamEnvironmentsService', () => {
|
||||
});
|
||||
|
||||
test('should throw TEAM_ENVIRONMMENT_NOT_FOUND if provided id is invalid', async () => {
|
||||
mockPrisma.teamEnvironment.findFirstOrThrow.mockRejectedValue(
|
||||
'NotFoundError',
|
||||
);
|
||||
mockPrisma.teamEnvironment.findFirst.mockRejectedValue('NotFoundError');
|
||||
|
||||
const result = await teamEnvironmentsService.createDuplicateEnvironment(
|
||||
teamEnvironment.id,
|
||||
@@ -334,7 +332,7 @@ describe('TeamEnvironmentsService', () => {
|
||||
});
|
||||
|
||||
test('should send pubsub message to "team_environment/<teamID>/created" if team environment is updated successfully', async () => {
|
||||
mockPrisma.teamEnvironment.findFirstOrThrow.mockResolvedValueOnce(
|
||||
mockPrisma.teamEnvironment.findFirst.mockResolvedValueOnce(
|
||||
teamEnvironment,
|
||||
);
|
||||
|
||||
|
||||
@@ -183,10 +183,11 @@ export class TeamEnvironmentsService {
|
||||
*/
|
||||
async createDuplicateEnvironment(id: string) {
|
||||
try {
|
||||
const environment = await this.prisma.teamEnvironment.findFirstOrThrow({
|
||||
const environment = await this.prisma.teamEnvironment.findFirst({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
rejectOnNotFound: true,
|
||||
});
|
||||
|
||||
const result = await this.prisma.teamEnvironment.create({
|
||||
|
||||
@@ -42,7 +42,6 @@ const teamCollection: DbTeamCollection = {
|
||||
id: 'team-coll-1',
|
||||
parentID: null,
|
||||
teamID: team.id,
|
||||
data: {},
|
||||
title: 'Team Collection 1',
|
||||
orderIndex: 1,
|
||||
createdOn: new Date(),
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// This interface defines how data will be received from the app when we are importing Hoppscotch collections
|
||||
export interface CollectionFolder {
|
||||
id?: string;
|
||||
folders: CollectionFolder[];
|
||||
requests: any[];
|
||||
name: string;
|
||||
data?: string;
|
||||
}
|
||||
|
||||
@@ -6,13 +6,6 @@ import { PaginationArgs } from 'src/types/input-types.args';
|
||||
export class CreateRootUserCollectionArgs {
|
||||
@Field({ name: 'title', description: 'Title of the new user collection' })
|
||||
title: string;
|
||||
|
||||
@Field({
|
||||
name: 'data',
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
}
|
||||
@ArgsType()
|
||||
export class CreateChildUserCollectionArgs {
|
||||
@@ -24,13 +17,6 @@ export class CreateChildUserCollectionArgs {
|
||||
description: 'ID of the parent to the new user collection',
|
||||
})
|
||||
parentUserCollectionID: string;
|
||||
|
||||
@Field({
|
||||
name: 'data',
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
}
|
||||
|
||||
@ArgsType()
|
||||
@@ -109,26 +95,3 @@ export class ImportUserCollectionsFromJSONArgs {
|
||||
})
|
||||
parentCollectionID?: string;
|
||||
}
|
||||
|
||||
@ArgsType()
|
||||
export class UpdateUserCollectionsArgs {
|
||||
@Field(() => ID, {
|
||||
name: 'userCollectionID',
|
||||
description: 'ID of the user collection',
|
||||
})
|
||||
userCollectionID: string;
|
||||
|
||||
@Field({
|
||||
name: 'newTitle',
|
||||
description: 'The updated title of the user collection',
|
||||
nullable: true,
|
||||
})
|
||||
newTitle: string;
|
||||
|
||||
@Field({
|
||||
name: 'data',
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import {
|
||||
MoveUserCollectionArgs,
|
||||
RenameUserCollectionsArgs,
|
||||
UpdateUserCollectionArgs,
|
||||
UpdateUserCollectionsArgs,
|
||||
} from './input-type.args';
|
||||
import { ReqType } from 'src/types/RequestTypes';
|
||||
import * as E from 'fp-ts/Either';
|
||||
@@ -143,13 +142,7 @@ export class UserCollectionResolver {
|
||||
);
|
||||
|
||||
if (E.isLeft(userCollection)) throwErr(userCollection.left);
|
||||
return <UserCollection>{
|
||||
...userCollection.right,
|
||||
userID: userCollection.right.userUid,
|
||||
data: !userCollection.right.data
|
||||
? null
|
||||
: JSON.stringify(userCollection.right.data),
|
||||
};
|
||||
return userCollection.right;
|
||||
}
|
||||
|
||||
@Query(() => UserCollectionExportJSONData, {
|
||||
@@ -198,7 +191,6 @@ export class UserCollectionResolver {
|
||||
await this.userCollectionService.createUserCollection(
|
||||
user,
|
||||
args.title,
|
||||
args.data,
|
||||
null,
|
||||
ReqType.REST,
|
||||
);
|
||||
@@ -220,7 +212,6 @@ export class UserCollectionResolver {
|
||||
await this.userCollectionService.createUserCollection(
|
||||
user,
|
||||
args.title,
|
||||
args.data,
|
||||
null,
|
||||
ReqType.GQL,
|
||||
);
|
||||
@@ -241,7 +232,6 @@ export class UserCollectionResolver {
|
||||
await this.userCollectionService.createUserCollection(
|
||||
user,
|
||||
args.title,
|
||||
args.data,
|
||||
args.parentUserCollectionID,
|
||||
ReqType.GQL,
|
||||
);
|
||||
@@ -262,7 +252,6 @@ export class UserCollectionResolver {
|
||||
await this.userCollectionService.createUserCollection(
|
||||
user,
|
||||
args.title,
|
||||
args.data,
|
||||
args.parentUserCollectionID,
|
||||
ReqType.REST,
|
||||
);
|
||||
@@ -370,26 +359,6 @@ export class UserCollectionResolver {
|
||||
return importedCollection.right;
|
||||
}
|
||||
|
||||
@Mutation(() => UserCollection, {
|
||||
description: 'Update a UserCollection',
|
||||
})
|
||||
@UseGuards(GqlAuthGuard)
|
||||
async updateUserCollection(
|
||||
@GqlUser() user: AuthUser,
|
||||
@Args() args: UpdateUserCollectionsArgs,
|
||||
) {
|
||||
const updatedUserCollection =
|
||||
await this.userCollectionService.updateUserCollection(
|
||||
args.newTitle,
|
||||
args.data,
|
||||
args.userCollectionID,
|
||||
user.uid,
|
||||
);
|
||||
|
||||
if (E.isLeft(updatedUserCollection)) throwErr(updatedUserCollection.left);
|
||||
return updatedUserCollection.right;
|
||||
}
|
||||
|
||||
// Subscriptions
|
||||
@Subscription(() => UserCollection, {
|
||||
description: 'Listen for User Collection Creation',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,6 @@ import {
|
||||
USER_NOT_FOUND,
|
||||
USER_NOT_OWNER,
|
||||
USER_COLL_INVALID_JSON,
|
||||
USER_COLL_DATA_INVALID,
|
||||
} from 'src/errors';
|
||||
import { PrismaService } from 'src/prisma/prisma.service';
|
||||
import { AuthUser } from 'src/types/AuthUser';
|
||||
@@ -44,12 +43,8 @@ export class UserCollectionService {
|
||||
*/
|
||||
private cast(collection: UserCollection) {
|
||||
return <UserCollectionModel>{
|
||||
id: collection.id,
|
||||
title: collection.title,
|
||||
type: collection.type,
|
||||
parentID: collection.parentID,
|
||||
...collection,
|
||||
userID: collection.userUid,
|
||||
data: !collection.data ? null : JSON.stringify(collection.data),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -151,7 +146,7 @@ export class UserCollectionService {
|
||||
},
|
||||
});
|
||||
|
||||
return !parent ? null : this.cast(parent);
|
||||
return parent;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -169,7 +164,7 @@ export class UserCollectionService {
|
||||
take: number,
|
||||
type: ReqType,
|
||||
) {
|
||||
const res = await this.prisma.userCollection.findMany({
|
||||
return this.prisma.userCollection.findMany({
|
||||
where: {
|
||||
parentID: collectionID,
|
||||
type: type,
|
||||
@@ -181,12 +176,6 @@ export class UserCollectionService {
|
||||
skip: cursor ? 1 : 0,
|
||||
cursor: cursor ? { id: cursor } : undefined,
|
||||
});
|
||||
|
||||
const childCollections = res.map((childCollection) =>
|
||||
this.cast(childCollection),
|
||||
);
|
||||
|
||||
return childCollections;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -222,20 +211,12 @@ export class UserCollectionService {
|
||||
async createUserCollection(
|
||||
user: AuthUser,
|
||||
title: string,
|
||||
data: string | null = null,
|
||||
parentUserCollectionID: string | null,
|
||||
type: ReqType,
|
||||
) {
|
||||
const isTitleValid = isValidLength(title, this.TITLE_LENGTH);
|
||||
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
|
||||
|
||||
if (data === '') return E.left(USER_COLL_DATA_INVALID);
|
||||
if (data) {
|
||||
const jsonReq = stringToJson(data);
|
||||
if (E.isLeft(jsonReq)) return E.left(USER_COLL_DATA_INVALID);
|
||||
data = jsonReq.right;
|
||||
}
|
||||
|
||||
// If creating a child collection
|
||||
if (parentUserCollectionID !== null) {
|
||||
const parentCollection = await this.getUserCollection(
|
||||
@@ -270,19 +251,15 @@ export class UserCollectionService {
|
||||
},
|
||||
},
|
||||
parent: isParent,
|
||||
data: data ?? undefined,
|
||||
orderIndex: !parentUserCollectionID
|
||||
? (await this.getRootCollectionsCount(user.uid)) + 1
|
||||
: (await this.getChildCollectionsCount(parentUserCollectionID)) + 1,
|
||||
},
|
||||
});
|
||||
|
||||
await this.pubsub.publish(
|
||||
`user_coll/${user.uid}/created`,
|
||||
this.cast(userCollection),
|
||||
);
|
||||
await this.pubsub.publish(`user_coll/${user.uid}/created`, userCollection);
|
||||
|
||||
return E.right(this.cast(userCollection));
|
||||
return E.right(userCollection);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -299,7 +276,7 @@ export class UserCollectionService {
|
||||
take: number,
|
||||
type: ReqType,
|
||||
) {
|
||||
const res = await this.prisma.userCollection.findMany({
|
||||
return this.prisma.userCollection.findMany({
|
||||
where: {
|
||||
userUid: user.uid,
|
||||
parentID: null,
|
||||
@@ -312,12 +289,6 @@ export class UserCollectionService {
|
||||
skip: cursor ? 1 : 0,
|
||||
cursor: cursor ? { id: cursor } : undefined,
|
||||
});
|
||||
|
||||
const userCollections = res.map((childCollection) =>
|
||||
this.cast(childCollection),
|
||||
);
|
||||
|
||||
return userCollections;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -336,7 +307,7 @@ export class UserCollectionService {
|
||||
take: number,
|
||||
type: ReqType,
|
||||
) {
|
||||
const res = await this.prisma.userCollection.findMany({
|
||||
return this.prisma.userCollection.findMany({
|
||||
where: {
|
||||
userUid: user.uid,
|
||||
parentID: userCollectionID,
|
||||
@@ -346,16 +317,9 @@ export class UserCollectionService {
|
||||
skip: cursor ? 1 : 0,
|
||||
cursor: cursor ? { id: cursor } : undefined,
|
||||
});
|
||||
|
||||
const childCollections = res.map((childCollection) =>
|
||||
this.cast(childCollection),
|
||||
);
|
||||
|
||||
return childCollections;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use updateUserCollection method instead
|
||||
* Update the title of a UserCollection
|
||||
*
|
||||
* @param newTitle The new title of collection
|
||||
@@ -387,10 +351,10 @@ export class UserCollectionService {
|
||||
|
||||
this.pubsub.publish(
|
||||
`user_coll/${updatedUserCollection.userUid}/updated`,
|
||||
this.cast(updatedUserCollection),
|
||||
updatedUserCollection,
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedUserCollection));
|
||||
return E.right(updatedUserCollection);
|
||||
} catch (error) {
|
||||
return E.left(USER_COLL_NOT_FOUND);
|
||||
}
|
||||
@@ -627,10 +591,10 @@ export class UserCollectionService {
|
||||
|
||||
this.pubsub.publish(
|
||||
`user_coll/${collection.right.userUid}/moved`,
|
||||
this.cast(updatedCollection.right),
|
||||
updatedCollection.right,
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedCollection.right));
|
||||
return E.right(updatedCollection.right);
|
||||
}
|
||||
|
||||
// destCollectionID != null i.e move into another collection
|
||||
@@ -678,10 +642,10 @@ export class UserCollectionService {
|
||||
|
||||
this.pubsub.publish(
|
||||
`user_coll/${collection.right.userUid}/moved`,
|
||||
this.cast(updatedCollection.right),
|
||||
updatedCollection.right,
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedCollection.right));
|
||||
return E.right(updatedCollection.right);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -882,7 +846,6 @@ export class UserCollectionService {
|
||||
...(x.request as Record<string, unknown>), // type casting x.request of type Prisma.JSONValue to an object to enable spread
|
||||
};
|
||||
}),
|
||||
data: JSON.stringify(collection.right.data),
|
||||
};
|
||||
|
||||
return E.right(result);
|
||||
@@ -955,7 +918,6 @@ export class UserCollectionService {
|
||||
...(x.request as Record<string, unknown>), // type casting x.request of type Prisma.JSONValue to an object to enable spread
|
||||
};
|
||||
}),
|
||||
data: JSON.stringify(parentCollection.right.data),
|
||||
}),
|
||||
collectionType: parentCollection.right.type,
|
||||
});
|
||||
@@ -1009,7 +971,6 @@ export class UserCollectionService {
|
||||
this.generatePrismaQueryObj(f, userID, index + 1, reqType),
|
||||
),
|
||||
},
|
||||
data: folder.data ?? undefined,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1079,63 +1040,10 @@ export class UserCollectionService {
|
||||
),
|
||||
);
|
||||
|
||||
userCollections.forEach((collection) =>
|
||||
this.pubsub.publish(`user_coll/${userID}/created`, this.cast(collection)),
|
||||
userCollections.forEach((x) =>
|
||||
this.pubsub.publish(`user_coll/${userID}/created`, x),
|
||||
);
|
||||
|
||||
return E.right(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a UserCollection
|
||||
*
|
||||
* @param newTitle The new title of collection
|
||||
* @param userCollectionID The Collection Id
|
||||
* @param userID The User UID
|
||||
* @returns An Either of the updated UserCollection
|
||||
*/
|
||||
async updateUserCollection(
|
||||
newTitle: string = null,
|
||||
collectionData: string | null = null,
|
||||
userCollectionID: string,
|
||||
userID: string,
|
||||
) {
|
||||
if (collectionData === '') return E.left(USER_COLL_DATA_INVALID);
|
||||
|
||||
if (collectionData) {
|
||||
const jsonReq = stringToJson(collectionData);
|
||||
if (E.isLeft(jsonReq)) return E.left(USER_COLL_DATA_INVALID);
|
||||
collectionData = jsonReq.right;
|
||||
}
|
||||
|
||||
if (newTitle != null) {
|
||||
const isTitleValid = isValidLength(newTitle, this.TITLE_LENGTH);
|
||||
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
|
||||
}
|
||||
|
||||
// Check to see is the collection belongs to the user
|
||||
const isOwner = await this.isOwnerCheck(userCollectionID, userID);
|
||||
if (O.isNone(isOwner)) return E.left(USER_NOT_OWNER);
|
||||
|
||||
try {
|
||||
const updatedUserCollection = await this.prisma.userCollection.update({
|
||||
where: {
|
||||
id: userCollectionID,
|
||||
},
|
||||
data: {
|
||||
data: collectionData ?? undefined,
|
||||
title: newTitle ?? undefined,
|
||||
},
|
||||
});
|
||||
|
||||
this.pubsub.publish(
|
||||
`user_coll/${updatedUserCollection.userUid}/updated`,
|
||||
this.cast(updatedUserCollection),
|
||||
);
|
||||
|
||||
return E.right(this.cast(updatedUserCollection));
|
||||
} catch (error) {
|
||||
return E.left(USER_COLL_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,12 +13,6 @@ export class UserCollection {
|
||||
})
|
||||
title: string;
|
||||
|
||||
@Field({
|
||||
description: 'JSON string representing the collection data',
|
||||
nullable: true,
|
||||
})
|
||||
data: string;
|
||||
|
||||
@Field(() => ReqType, {
|
||||
description: 'Type of the user collection',
|
||||
})
|
||||
|
||||
@@ -142,15 +142,13 @@ describe('UserHistoryService', () => {
|
||||
});
|
||||
describe('createUserHistory', () => {
|
||||
test('Should resolve right and create a REST request to users history and return a `UserHistory` object', async () => {
|
||||
const executedOn = new Date();
|
||||
|
||||
mockPrisma.userHistory.create.mockResolvedValueOnce({
|
||||
userUid: 'abc',
|
||||
id: '1',
|
||||
request: [{}],
|
||||
responseMetadata: [{}],
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
});
|
||||
|
||||
@@ -160,7 +158,7 @@ describe('UserHistoryService', () => {
|
||||
request: JSON.stringify([{}]),
|
||||
responseMetadata: JSON.stringify([{}]),
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
};
|
||||
|
||||
@@ -174,15 +172,13 @@ describe('UserHistoryService', () => {
|
||||
).toEqualRight(userHistory);
|
||||
});
|
||||
test('Should resolve right and create a GQL request to users history and return a `UserHistory` object', async () => {
|
||||
const executedOn = new Date();
|
||||
|
||||
mockPrisma.userHistory.create.mockResolvedValueOnce({
|
||||
userUid: 'abc',
|
||||
id: '1',
|
||||
request: [{}],
|
||||
responseMetadata: [{}],
|
||||
reqType: ReqType.GQL,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
});
|
||||
|
||||
@@ -192,7 +188,7 @@ describe('UserHistoryService', () => {
|
||||
request: JSON.stringify([{}]),
|
||||
responseMetadata: JSON.stringify([{}]),
|
||||
reqType: ReqType.GQL,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
};
|
||||
|
||||
@@ -216,15 +212,13 @@ describe('UserHistoryService', () => {
|
||||
).toEqualLeft(USER_HISTORY_INVALID_REQ_TYPE);
|
||||
});
|
||||
test('Should create a GQL request to users history and publish a created subscription', async () => {
|
||||
const executedOn = new Date();
|
||||
|
||||
mockPrisma.userHistory.create.mockResolvedValueOnce({
|
||||
userUid: 'abc',
|
||||
id: '1',
|
||||
request: [{}],
|
||||
responseMetadata: [{}],
|
||||
reqType: ReqType.GQL,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
});
|
||||
|
||||
@@ -234,7 +228,7 @@ describe('UserHistoryService', () => {
|
||||
request: JSON.stringify([{}]),
|
||||
responseMetadata: JSON.stringify([{}]),
|
||||
reqType: ReqType.GQL,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
};
|
||||
|
||||
@@ -251,15 +245,13 @@ describe('UserHistoryService', () => {
|
||||
);
|
||||
});
|
||||
test('Should create a REST request to users history and publish a created subscription', async () => {
|
||||
const executedOn = new Date();
|
||||
|
||||
mockPrisma.userHistory.create.mockResolvedValueOnce({
|
||||
userUid: 'abc',
|
||||
id: '1',
|
||||
request: [{}],
|
||||
responseMetadata: [{}],
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
});
|
||||
|
||||
@@ -269,7 +261,7 @@ describe('UserHistoryService', () => {
|
||||
request: JSON.stringify([{}]),
|
||||
responseMetadata: JSON.stringify([{}]),
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
};
|
||||
|
||||
@@ -331,15 +323,13 @@ describe('UserHistoryService', () => {
|
||||
).toEqualLeft(USER_HISTORY_NOT_FOUND);
|
||||
});
|
||||
test('Should star/unstar a request in the history and publish a updated subscription', async () => {
|
||||
const executedOn = new Date();
|
||||
|
||||
mockPrisma.userHistory.findFirst.mockResolvedValueOnce({
|
||||
userUid: 'abc',
|
||||
id: '1',
|
||||
request: [{}],
|
||||
responseMetadata: [{}],
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: false,
|
||||
});
|
||||
|
||||
@@ -349,7 +339,7 @@ describe('UserHistoryService', () => {
|
||||
request: [{}],
|
||||
responseMetadata: [{}],
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: true,
|
||||
});
|
||||
|
||||
@@ -359,7 +349,7 @@ describe('UserHistoryService', () => {
|
||||
request: JSON.stringify([{}]),
|
||||
responseMetadata: JSON.stringify([{}]),
|
||||
reqType: ReqType.REST,
|
||||
executedOn,
|
||||
executedOn: new Date(),
|
||||
isStarred: true,
|
||||
};
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ module.exports = {
|
||||
// The glob patterns Jest uses to detect test files
|
||||
testMatch: [
|
||||
// "**/__tests__/**/*.[jt]s?(x)",
|
||||
"**/src/__tests__/commands/**/*.*.ts",
|
||||
"**/src/__tests__/**/*.*.ts",
|
||||
],
|
||||
|
||||
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hoppscotch/cli",
|
||||
"version": "0.4.0",
|
||||
"version": "0.3.1",
|
||||
"description": "A CLI to run Hoppscotch test scripts in CI environments.",
|
||||
"homepage": "https://hoppscotch.io",
|
||||
"main": "dist/index.js",
|
||||
@@ -10,18 +10,14 @@
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "pnpm exec tsup",
|
||||
"dev": "pnpm exec tsup --watch",
|
||||
"debugger": "node debugger.js 9999",
|
||||
"prepublish": "pnpm exec tsup",
|
||||
"prettier-format": "prettier --config .prettierrc 'src/**/*.ts' --write",
|
||||
"test": "pnpm run build && jest && rm -rf dist",
|
||||
"do-typecheck": "pnpm exec tsc --noEmit",
|
||||
"do-test": "pnpm test"
|
||||
"test": "pnpm run build && jest && rm -rf dist"
|
||||
},
|
||||
"keywords": [
|
||||
"cli",
|
||||
@@ -42,24 +38,26 @@
|
||||
"devDependencies": {
|
||||
"@hoppscotch/data": "workspace:^",
|
||||
"@hoppscotch/js-sandbox": "workspace:^",
|
||||
"@relmify/jest-fp-ts": "^2.1.1",
|
||||
"@swc/core": "^1.3.92",
|
||||
"@types/jest": "^29.5.5",
|
||||
"@types/lodash": "^4.14.199",
|
||||
"@types/qs": "^6.9.8",
|
||||
"@relmify/jest-fp-ts": "^2.0.2",
|
||||
"@swc/core": "^1.2.181",
|
||||
"@types/axios": "^0.14.0",
|
||||
"@types/chalk": "^2.2.0",
|
||||
"@types/commander": "^2.12.2",
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/lodash": "^4.14.181",
|
||||
"@types/qs": "^6.9.7",
|
||||
"axios": "^0.21.4",
|
||||
"chalk": "^4.1.2",
|
||||
"commander": "^11.0.0",
|
||||
"chalk": "^4.1.1",
|
||||
"commander": "^8.0.0",
|
||||
"esm": "^3.2.25",
|
||||
"fp-ts": "^2.16.1",
|
||||
"io-ts": "^2.2.20",
|
||||
"jest": "^29.7.0",
|
||||
"fp-ts": "^2.12.1",
|
||||
"io-ts": "^2.2.16",
|
||||
"jest": "^27.5.1",
|
||||
"lodash": "^4.17.21",
|
||||
"prettier": "^3.0.3",
|
||||
"qs": "^6.11.2",
|
||||
"ts-jest": "^29.1.1",
|
||||
"tsup": "^7.2.0",
|
||||
"typescript": "^5.2.2",
|
||||
"zod": "^3.22.4"
|
||||
"prettier": "^2.8.4",
|
||||
"qs": "^6.10.3",
|
||||
"ts-jest": "^27.1.4",
|
||||
"tsup": "^5.12.7",
|
||||
"typescript": "^4.6.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ describe("Test 'hopp test <file>' command:", () => {
|
||||
|
||||
expect(out).toBe<HoppErrorCode>("UNKNOWN_ERROR");
|
||||
});
|
||||
|
||||
|
||||
test("Malformed collection file.", async () => {
|
||||
const cmd = `node ./bin/hopp test ${getTestJsonFilePath(
|
||||
"malformed-collection2.json"
|
||||
@@ -106,7 +106,7 @@ describe("Test 'hopp test <file> --env <file>' command:", () => {
|
||||
const TESTS_PATH = getTestJsonFilePath("env-flag-tests.json");
|
||||
const ENV_PATH = getTestJsonFilePath("env-flag-envs.json");
|
||||
const cmd = `node ./bin/hopp test ${TESTS_PATH} --env ${ENV_PATH}`;
|
||||
const { error, stdout } = await execAsync(cmd);
|
||||
const { error } = await execAsync(cmd);
|
||||
|
||||
expect(error).toBeNull();
|
||||
});
|
||||
@@ -129,6 +129,7 @@ describe("Test 'hopp test <file> --delay <delay_in_ms>' command:", () => {
|
||||
const cmd = `${VALID_TEST_CMD} --delay 'NaN'`;
|
||||
const { stderr } = await execAsync(cmd);
|
||||
const out = getErrorCode(stderr);
|
||||
console.log("invalid value thing", out)
|
||||
expect(out).toBe<HoppErrorCode>("INVALID_ARGUMENT");
|
||||
});
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"URL": "https://echo.hoppscotch.io",
|
||||
"HOST": "echo.hoppscotch.io",
|
||||
"X-COUNTRY": "IN",
|
||||
"BODY_VALUE": "body_value",
|
||||
"BODY_KEY": "body_key"
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"method": "POST",
|
||||
"auth": { "authType": "none", "authActive": true },
|
||||
"preRequestScript": "",
|
||||
"testScript": "const HOST = pw.env.get(\"HOST\");\nconst UNSET_ENV = pw.env.get(\"UNSET_ENV\");\nconst EXPECTED_URL = \"https://echo.hoppscotch.io\";\nconst URL = pw.env.get(\"URL\");\nconst BODY_VALUE = pw.env.get(\"BODY_VALUE\");\n\n// Check JSON response property\npw.test(\"Check headers properties.\", ()=> {\n pw.expect(pw.response.body.headers.host).toBe(HOST);\n});\n\npw.test(\"Check data properties.\", () => {\n\tconst DATA = pw.response.body.data;\n \n pw.expect(DATA).toBeType(\"string\");\n pw.expect(JSON.parse(DATA).body_key).toBe(BODY_VALUE);\n});\n\npw.test(\"Check request URL.\", () => {\n pw.expect(URL).toBe(EXPECTED_URL);\n})\n\npw.test(\"Check unset ENV.\", () => {\n pw.expect(UNSET_ENV).toBeType(\"undefined\");\n})",
|
||||
"testScript": "const HOST = pw.env.get(\"HOST\");\nconst UNSET_ENV = pw.env.get(\"UNSET_ENV\");\nconst EXPECTED_URL = \"https://echo.hoppscotch.io\";\nconst URL = pw.env.get(\"URL\");\nconst X_COUNTRY = pw.env.get(\"X-COUNTRY\");\nconst BODY_VALUE = pw.env.get(\"BODY_VALUE\");\n\n// Check JSON response property\npw.test(\"Check headers properties.\", ()=> {\n pw.expect(pw.response.body.headers.host).toBe(HOST);\n\t pw.expect(pw.response.body.headers[\"x-country\"]).toBe(X_COUNTRY); \n});\n\npw.test(\"Check data properties.\", () => {\n\tconst DATA = pw.response.body.data;\n \n pw.expect(DATA).toBeType(\"string\");\n pw.expect(JSON.parse(DATA).body_key).toBe(BODY_VALUE);\n});\n\npw.test(\"Check request URL.\", () => {\n pw.expect(URL).toBe(EXPECTED_URL);\n})\n\npw.test(\"Check unset ENV.\", () => {\n pw.expect(UNSET_ENV).toBeType(\"undefined\");\n})",
|
||||
"body": {
|
||||
"contentType": "application/json",
|
||||
"body": "{\n \"<<BODY_KEY>>\":\"<<BODY_VALUE>>\"\n}"
|
||||
|
||||
@@ -42,17 +42,12 @@ export const handleError = <T extends HoppErrorCode>(error: HoppError<T>) => {
|
||||
|
||||
switch (error.code) {
|
||||
case "FILE_NOT_FOUND":
|
||||
ERROR_MSG = `File doesn't exist: ${error.path}`;
|
||||
ERROR_MSG = `File doesn't exists: ${error.path}`;
|
||||
break;
|
||||
case "UNKNOWN_COMMAND":
|
||||
ERROR_MSG = `Unavailable command: ${error.command}`;
|
||||
break;
|
||||
case "MALFORMED_ENV_FILE":
|
||||
ERROR_MSG = `The environment file is not of the correct format.`;
|
||||
break;
|
||||
case "BULK_ENV_FILE":
|
||||
ERROR_MSG = `CLI doesn't support bulk environments export.`;
|
||||
break;
|
||||
case "MALFORMED_COLLECTION":
|
||||
ERROR_MSG = `${error.path}\n${parseErrorData(error.data)}`;
|
||||
break;
|
||||
@@ -87,4 +82,4 @@ export const handleError = <T extends HoppErrorCode>(error: HoppError<T>) => {
|
||||
if (!S.isEmpty(ERROR_MSG)) {
|
||||
console.error(ERROR_CODE, ERROR_MSG);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -1,45 +1,27 @@
|
||||
import { error } from "../../types/errors";
|
||||
import {
|
||||
HoppEnvs,
|
||||
HoppEnvPair,
|
||||
HoppEnvKeyPairObject,
|
||||
HoppEnvExportObject,
|
||||
HoppBulkEnvExportObject,
|
||||
} from "../../types/request";
|
||||
import { HoppEnvs, HoppEnvPair } from "../../types/request";
|
||||
import { readJsonFile } from "../../utils/mutators";
|
||||
|
||||
/**
|
||||
* Parses env json file for given path and validates the parsed env json object.
|
||||
* @param path Path of env.json file to be parsed.
|
||||
* @returns For successful parsing we get HoppEnvs object.
|
||||
*/
|
||||
export async function parseEnvsData(path: string) {
|
||||
const contents = await readJsonFile(path);
|
||||
const envPairs: Array<HoppEnvPair> = [];
|
||||
const HoppEnvKeyPairResult = HoppEnvKeyPairObject.safeParse(contents);
|
||||
const HoppEnvExportObjectResult = HoppEnvExportObject.safeParse(contents);
|
||||
const HoppBulkEnvExportObjectResult =
|
||||
HoppBulkEnvExportObject.safeParse(contents);
|
||||
const contents = await readJsonFile(path)
|
||||
|
||||
// CLI doesnt support bulk environments export.
|
||||
// Hence we check for this case and throw an error if it matches the format.
|
||||
if (HoppBulkEnvExportObjectResult.success) {
|
||||
throw error({ code: "BULK_ENV_FILE", path, data: error });
|
||||
if(!(contents && typeof contents === "object" && !Array.isArray(contents))) {
|
||||
throw error({ code: "MALFORMED_ENV_FILE", path, data: null })
|
||||
}
|
||||
|
||||
// Checks if the environment file is of the correct format.
|
||||
// If it doesnt match either of them, we throw an error.
|
||||
if (!(HoppEnvKeyPairResult.success || HoppEnvExportObjectResult.success)) {
|
||||
throw error({ code: "MALFORMED_ENV_FILE", path, data: error });
|
||||
}
|
||||
const envPairs: Array<HoppEnvPair> = []
|
||||
|
||||
if (HoppEnvKeyPairResult.success) {
|
||||
for (const [key, value] of Object.entries(HoppEnvKeyPairResult.data)) {
|
||||
envPairs.push({ key, value });
|
||||
for( const [key,value] of Object.entries(contents)) {
|
||||
if(typeof value !== "string") {
|
||||
throw error({ code: "MALFORMED_ENV_FILE", path, data: {value: value} })
|
||||
}
|
||||
} else if (HoppEnvExportObjectResult.success) {
|
||||
const { key, value } = HoppEnvExportObjectResult.data.variables[0];
|
||||
envPairs.push({ key, value });
|
||||
}
|
||||
|
||||
return <HoppEnvs>{ global: [], selected: envPairs };
|
||||
envPairs.push({key, value})
|
||||
}
|
||||
return <HoppEnvs>{ global: [], selected: envPairs }
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ type HoppErrors = {
|
||||
REQUEST_ERROR: HoppErrorData;
|
||||
INVALID_ARGUMENT: HoppErrorData;
|
||||
MALFORMED_ENV_FILE: HoppErrorPath & HoppErrorData;
|
||||
BULK_ENV_FILE: HoppErrorPath & HoppErrorData;
|
||||
INVALID_FILE_TYPE: HoppErrorData;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { HoppCollection, HoppRESTRequest } from "@hoppscotch/data";
|
||||
import { TestReport } from "../interfaces/response";
|
||||
import { HoppCLIError } from "./errors";
|
||||
import { z } from "zod";
|
||||
|
||||
export type FormDataEntry = {
|
||||
key: string;
|
||||
@@ -10,22 +9,6 @@ export type FormDataEntry = {
|
||||
|
||||
export type HoppEnvPair = { key: string; value: string };
|
||||
|
||||
export const HoppEnvKeyPairObject = z.record(z.string(), z.string());
|
||||
|
||||
// Shape of the single environment export object that is exported from the app.
|
||||
export const HoppEnvExportObject = z.object({
|
||||
name: z.string(),
|
||||
variables: z.array(
|
||||
z.object({
|
||||
key: z.string(),
|
||||
value: z.string(),
|
||||
})
|
||||
),
|
||||
});
|
||||
|
||||
// Shape of the bulk environment export object that is exported from the app.
|
||||
export const HoppBulkEnvExportObject = z.array(HoppEnvExportObject);
|
||||
|
||||
export type HoppEnvs = {
|
||||
global: HoppEnvPair[];
|
||||
selected: HoppEnvPair[];
|
||||
|
||||
@@ -6,24 +6,23 @@ import {
|
||||
parseTemplateString,
|
||||
parseTemplateStringE,
|
||||
} from "@hoppscotch/data";
|
||||
import { runPreRequestScript } from "@hoppscotch/js-sandbox/node";
|
||||
import * as A from "fp-ts/Array";
|
||||
import * as E from "fp-ts/Either";
|
||||
import * as O from "fp-ts/Option";
|
||||
import * as RA from "fp-ts/ReadonlyArray";
|
||||
import * as TE from "fp-ts/TaskEither";
|
||||
import { runPreRequestScript } from "@hoppscotch/js-sandbox";
|
||||
import { flow, pipe } from "fp-ts/function";
|
||||
import * as TE from "fp-ts/TaskEither";
|
||||
import * as E from "fp-ts/Either";
|
||||
import * as RA from "fp-ts/ReadonlyArray";
|
||||
import * as A from "fp-ts/Array";
|
||||
import * as O from "fp-ts/Option";
|
||||
import * as S from "fp-ts/string";
|
||||
import qs from "qs";
|
||||
|
||||
import { EffectiveHoppRESTRequest } from "../interfaces/request";
|
||||
import { HoppCLIError, error } from "../types/errors";
|
||||
import { error, HoppCLIError } from "../types/errors";
|
||||
import { HoppEnvs } from "../types/request";
|
||||
import { PreRequestMetrics } from "../types/response";
|
||||
import { isHoppCLIError } from "./checks";
|
||||
import { arrayFlatMap, arraySort, tupleToRecord } from "./functions/array";
|
||||
import { getEffectiveFinalMetaData } from "./getters";
|
||||
import { tupleToRecord, arraySort, arrayFlatMap } from "./functions/array";
|
||||
import { toFormData } from "./mutators";
|
||||
import { getEffectiveFinalMetaData } from "./getters";
|
||||
import { PreRequestMetrics } from "../types/response";
|
||||
|
||||
/**
|
||||
* Runs pre-request-script runner over given request which extracts set ENVs and
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
import { HoppRESTRequest } from "@hoppscotch/data";
|
||||
import { TestDescriptor } from "@hoppscotch/js-sandbox";
|
||||
import { runTestScript } from "@hoppscotch/js-sandbox/node";
|
||||
import * as A from "fp-ts/Array";
|
||||
import * as RA from "fp-ts/ReadonlyArray";
|
||||
import * as T from "fp-ts/Task";
|
||||
import * as TE from "fp-ts/TaskEither";
|
||||
import { flow, pipe } from "fp-ts/function";
|
||||
import { execTestScript, TestDescriptor } from "@hoppscotch/js-sandbox";
|
||||
import { hrtime } from "process";
|
||||
|
||||
import { flow, pipe } from "fp-ts/function";
|
||||
import * as RA from "fp-ts/ReadonlyArray";
|
||||
import * as A from "fp-ts/Array";
|
||||
import * as TE from "fp-ts/TaskEither";
|
||||
import * as T from "fp-ts/Task";
|
||||
import {
|
||||
RequestRunnerResponse,
|
||||
TestReport,
|
||||
TestScriptParams,
|
||||
} from "../interfaces/response";
|
||||
import { HoppCLIError, error } from "../types/errors";
|
||||
import { error, HoppCLIError } from "../types/errors";
|
||||
import { HoppEnvs } from "../types/request";
|
||||
import { ExpectResult, TestMetrics, TestRunnerRes } from "../types/response";
|
||||
import { getDurationInSeconds } from "./getters";
|
||||
@@ -38,7 +36,7 @@ export const testRunner = (
|
||||
pipe(
|
||||
TE.of(testScriptData),
|
||||
TE.chain(({ testScript, response, envs }) =>
|
||||
runTestScript(testScript, envs, response)
|
||||
execTestScript(testScript, envs, response)
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
@@ -57,7 +57,7 @@ module.exports = {
|
||||
{
|
||||
name: "localStorage",
|
||||
message:
|
||||
"Do not use 'localStorage' directly. Please use the PersistenceService",
|
||||
"Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
|
||||
},
|
||||
],
|
||||
// window.localStorage block
|
||||
@@ -66,10 +66,8 @@ module.exports = {
|
||||
{
|
||||
selector: "CallExpression[callee.object.property.name='localStorage']",
|
||||
message:
|
||||
"Do not use 'localStorage' directly. Please use the PersistenceService",
|
||||
"Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
|
||||
},
|
||||
],
|
||||
eqeqeq: 1,
|
||||
"no-else-return": 1,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -4,5 +4,5 @@ module.exports = {
|
||||
singleQuote: false,
|
||||
printWidth: 80,
|
||||
useTabs: false,
|
||||
tabWidth: 2,
|
||||
tabWidth: 2
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width=".88em" height="1em" viewBox="0 0 21 24"><path fill="currentColor" d="M12.731 2.751 17.666 5.6a2.138 2.138 0 1 1 2.07 3.548l-.015.003v5.7a2.14 2.14 0 1 1-2.098 3.502l-.002-.002-4.905 2.832a2.14 2.14 0 1 1-4.079.054l-.004.015-4.941-2.844a2.14 2.14 0 1 1-2.067-3.556l.015-.003V9.15a2.14 2.14 0 1 1 1.58-3.926l-.01-.005c.184.106.342.231.479.376l.001.001 4.938-2.85a2.14 2.14 0 1 1 4.096.021l.004-.015zm-.515.877a.766.766 0 0 1-.057.057l-.001.001 6.461 11.19c.026-.009.056-.016.082-.023V9.146a2.14 2.14 0 0 1-1.555-2.603l-.003.015.019-.072zm-3.015.059-.06-.06-4.946 2.852A2.137 2.137 0 0 1 2.749 9.12l-.015.004-.076.021v5.708l.084.023 6.461-11.19zm2.076.507a2.164 2.164 0 0 1-1.207-.004l.015.004-6.46 11.189c.286.276.496.629.597 1.026l.003.015h12.911c.102-.413.313-.768.599-1.043l.001-.001L11.28 4.194zm.986 16.227 4.917-2.838a1.748 1.748 0 0 1-.038-.142H4.222l-.021.083 4.939 2.852c.39-.403.936-.653 1.54-.653.626 0 1.189.268 1.581.696l.001.002z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width=".88em" height="1em" viewBox="0 0 21 24" class="iconify iconify--fontisto"><path fill="currentColor" d="M12.731 2.751 17.666 5.6a2.138 2.138 0 1 1 2.07 3.548l-.015.003v5.7a2.14 2.14 0 1 1-2.098 3.502l-.002-.002-4.905 2.832a2.14 2.14 0 1 1-4.079.054l-.004.015-4.941-2.844a2.14 2.14 0 1 1-2.067-3.556l.015-.003V9.15a2.14 2.14 0 1 1 1.58-3.926l-.01-.005c.184.106.342.231.479.376l.001.001 4.938-2.85a2.14 2.14 0 1 1 4.096.021l.004-.015zm-.515.877a.766.766 0 0 1-.057.057l-.001.001 6.461 11.19c.026-.009.056-.016.082-.023V9.146a2.14 2.14 0 0 1-1.555-2.603l-.003.015.019-.072zm-3.015.059-.06-.06-4.946 2.852A2.137 2.137 0 0 1 2.749 9.12l-.015.004-.076.021v5.708l.084.023 6.461-11.19zm2.076.507a2.164 2.164 0 0 1-1.207-.004l.015.004-6.46 11.189c.286.276.496.629.597 1.026l.003.015h12.911c.102-.413.313-.768.599-1.043l.001-.001L11.28 4.194zm.986 16.227 4.917-2.838a1.748 1.748 0 0 1-.038-.142H4.222l-.021.083 4.939 2.852c.39-.403.936-.653 1.54-.653.626 0 1.189.268 1.581.696l.001.002z"/></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1017 B After Width: | Height: | Size: 1.0 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M10.133 1h4.409a.5.5 0 0 1 .5.5v4.422c0 .026-.035.033-.045.01l-.048-.112a9.095 9.095 0 0 0-4.825-4.776c-.023-.01-.016-.044.01-.044Zm-8.588.275h-.5v1h.5c7.027 0 12.229 5.199 12.229 12.226v.5h1v-.5c0-7.58-5.65-13.226-13.229-13.226Zm.034 4.22h-.5v1h.5c2.361 0 4.348.837 5.744 2.238 1.395 1.401 2.227 3.395 2.227 5.758v.5h1v-.5c0-2.604-.921-4.859-2.52-6.463-1.596-1.605-3.845-2.532-6.45-2.532Zm-.528 8.996v-4.423c0-.041.033-.074.074-.074a4.923 4.923 0 0 1 4.923 4.922.074.074 0 0 1-.074.074H1.551a.5.5 0 0 1-.5-.5Z" clip-rule="evenodd"/></svg>
|
||||
|
Before Width: | Height: | Size: 684 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 16 16"><path fill="currentColor" fill-rule="evenodd" d="M9.277 2.084a.5.5 0 0 1 .185.607l-2.269 5.5a.5.5 0 0 1-.462.309H3.5a.5.5 0 0 1-.354-.854l5.5-5.5a.5.5 0 0 1 .631-.062ZM4.707 7.5h1.69l1.186-2.875L4.707 7.5Zm2.016 6.416a.5.5 0 0 1-.185-.607l2.269-5.5a.5.5 0 0 1 .462-.309H12.5a.5.5 0 0 1 .354.854l-5.5 5.5a.5.5 0 0 1-.631.062Zm4.57-5.416h-1.69l-1.186 2.875L11.293 8.5Z" clip-rule="evenodd"/><path fill="currentColor" fill-rule="evenodd" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0Zm-1 0A7 7 0 1 1 1 8a7 7 0 0 1 14 0Z" clip-rule="evenodd"/></svg>
|
||||
|
Before Width: | Height: | Size: 633 B |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 16 16"><path fill="currentColor" d="M1 2h4.257a2.5 2.5 0 0 1 1.768.732L9.293 5 5 9.293 3.732 8.025A2.5 2.5 0 0 1 3 6.257V4H2v2.257a3.5 3.5 0 0 0 1.025 2.475L5 10.707l1.25-1.25 2.396 2.397.708-.708L6.957 8.75 8.75 6.957l2.396 2.397.708-.708L9.457 6.25 10.707 5 7.732 2.025A3.5 3.5 0 0 0 5.257 1H1v1ZM10.646 2.354l2.622 2.62A2.5 2.5 0 0 1 14 6.744V12h1V6.743a3.5 3.5 0 0 0-1.025-2.475l-2.621-2.622-.707.708ZM4.268 13.975l-2.622-2.621.708-.708 2.62 2.622A2.5 2.5 0 0 0 6.744 14H15v1H6.743a3.5 3.5 0 0 1-2.475-1.025Z"/></svg>
|
||||
|
Before Width: | Height: | Size: 610 B |
@@ -1,25 +1,7 @@
|
||||
/*
|
||||
* Write hoppscotch-common related custom styles in this file.
|
||||
* If styles are sharable across all package then write into hoppscotch-ui/assets/scss/styles.scss file.
|
||||
*/
|
||||
|
||||
* {
|
||||
backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-webkit-backface-visibility: hidden;
|
||||
|
||||
&::before {
|
||||
backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-webkit-backface-visibility: hidden;
|
||||
}
|
||||
|
||||
&::after {
|
||||
backface-visibility: hidden;
|
||||
-moz-backface-visibility: hidden;
|
||||
-webkit-backface-visibility: hidden;
|
||||
}
|
||||
|
||||
@apply backface-hidden;
|
||||
@apply before:backface-hidden;
|
||||
@apply after:backface-hidden;
|
||||
@apply selection:bg-accentDark;
|
||||
@apply selection:text-accentContrast;
|
||||
@apply overscroll-none;
|
||||
@@ -33,13 +15,13 @@
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
@apply bg-transparent;
|
||||
@apply border-b-0 border-l border-r-0 border-t-0 border-solid border-dividerLight;
|
||||
@apply border-solid border-l border-dividerLight border-t-0 border-b-0 border-r-0;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
@apply bg-divider bg-clip-content;
|
||||
@apply rounded-full;
|
||||
@apply border-4 border-solid border-transparent;
|
||||
@apply border-solid border-transparent border-4;
|
||||
@apply hover:bg-dividerDark;
|
||||
@apply hover:bg-clip-content;
|
||||
}
|
||||
@@ -49,15 +31,11 @@
|
||||
@apply h-0;
|
||||
}
|
||||
|
||||
.no-scrollbar {
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
input::placeholder,
|
||||
textarea::placeholder,
|
||||
.cm-placeholder {
|
||||
@apply text-secondary;
|
||||
@apply opacity-50 #{!important};
|
||||
@apply opacity-50;
|
||||
}
|
||||
|
||||
input,
|
||||
@@ -72,11 +50,11 @@ html {
|
||||
|
||||
body {
|
||||
@apply bg-primary;
|
||||
@apply text-body text-secondary;
|
||||
@apply text-secondary text-body;
|
||||
@apply font-medium;
|
||||
@apply select-none;
|
||||
@apply overflow-x-hidden;
|
||||
@apply leading-body #{!important};
|
||||
@apply leading-body;
|
||||
animation: fade 300ms forwards;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-touch-callout: none;
|
||||
@@ -142,8 +120,8 @@ a {
|
||||
|
||||
&.link {
|
||||
@apply items-center;
|
||||
@apply px-1 py-0.5;
|
||||
@apply -mx-1 -my-0.5;
|
||||
@apply py-0.5 px-1;
|
||||
@apply -my-0.5 -mx-1;
|
||||
@apply text-accent;
|
||||
@apply rounded;
|
||||
@apply hover:text-accentDark;
|
||||
@@ -155,7 +133,7 @@ a {
|
||||
|
||||
.cm-tooltip {
|
||||
.tippy-box {
|
||||
@apply shadow-none #{!important};
|
||||
@apply shadow-none;
|
||||
@apply fixed;
|
||||
@apply inline-flex;
|
||||
@apply -mt-8;
|
||||
@@ -172,15 +150,15 @@ a {
|
||||
@apply flex;
|
||||
@apply text-tiny text-primary;
|
||||
@apply font-semibold;
|
||||
@apply px-2 py-1;
|
||||
@apply py-1 px-2;
|
||||
@apply truncate;
|
||||
@apply leading-body;
|
||||
@apply leading-normal;
|
||||
@apply items-center;
|
||||
|
||||
kbd {
|
||||
@apply hidden;
|
||||
@apply font-sans;
|
||||
background-color: rgba(107, 114, 128, 0.45);
|
||||
@apply bg-gray-500/45;
|
||||
@apply text-primaryLight;
|
||||
@apply rounded-sm;
|
||||
@apply px-1;
|
||||
@@ -188,12 +166,6 @@ a {
|
||||
@apply truncate;
|
||||
@apply sm:inline-flex;
|
||||
}
|
||||
|
||||
.env-icon {
|
||||
@apply transition;
|
||||
@apply inline-flex;
|
||||
@apply items-center;
|
||||
}
|
||||
}
|
||||
|
||||
.tippy-svg-arrow {
|
||||
@@ -219,9 +191,9 @@ a {
|
||||
@apply max-h-[45vh];
|
||||
@apply items-stretch;
|
||||
@apply overflow-y-auto;
|
||||
@apply text-body text-secondary;
|
||||
@apply text-secondary text-body;
|
||||
@apply p-2;
|
||||
@apply leading-body;
|
||||
@apply leading-normal;
|
||||
@apply focus:outline-none;
|
||||
scroll-behavior: smooth;
|
||||
|
||||
@@ -253,12 +225,12 @@ a {
|
||||
|
||||
hr {
|
||||
@apply border-b border-dividerLight;
|
||||
@apply my-2 #{!important};
|
||||
@apply my-2;
|
||||
}
|
||||
|
||||
.heading {
|
||||
@apply font-bold;
|
||||
@apply text-lg text-secondaryDark;
|
||||
@apply text-secondaryDark text-lg;
|
||||
@apply tracking-tight;
|
||||
}
|
||||
|
||||
@@ -267,7 +239,7 @@ hr {
|
||||
.textarea {
|
||||
@apply flex;
|
||||
@apply w-full;
|
||||
@apply px-4 py-2;
|
||||
@apply py-2 px-4;
|
||||
@apply bg-transparent;
|
||||
@apply rounded;
|
||||
@apply text-secondaryDark;
|
||||
@@ -308,7 +280,7 @@ button {
|
||||
@apply transform;
|
||||
@apply origin-top-left;
|
||||
@apply scale-75;
|
||||
@apply -translate-y-4 translate-x-1;
|
||||
@apply translate-x-1 -translate-y-4;
|
||||
}
|
||||
|
||||
.floating-input:focus-within ~ label {
|
||||
@@ -317,7 +289,7 @@ button {
|
||||
|
||||
.floating-input ~ .end-actions {
|
||||
@apply absolute;
|
||||
@apply right-[.05rem];
|
||||
@apply right-0.2;
|
||||
@apply inset-y-0;
|
||||
@apply flex;
|
||||
@apply items-center;
|
||||
@@ -342,28 +314,44 @@ pre.ace_editor {
|
||||
}
|
||||
}
|
||||
|
||||
.select-wrapper {
|
||||
@apply flex flex-1;
|
||||
@apply relative;
|
||||
@apply after:absolute;
|
||||
@apply after:flex;
|
||||
@apply after:inset-y-0;
|
||||
@apply after:items-center;
|
||||
@apply after:justify-center;
|
||||
@apply after:pointer-events-none;
|
||||
@apply after:font-icon;
|
||||
@apply after:text-current;
|
||||
@apply after:right-3;
|
||||
@apply after:content-["\e5cf"];
|
||||
@apply after:text-lg;
|
||||
}
|
||||
|
||||
.info-response {
|
||||
color: var(--status-info-color);
|
||||
@apply text-pink-500;
|
||||
}
|
||||
|
||||
.success-response {
|
||||
color: var(--status-success-color);
|
||||
@apply text-green-500;
|
||||
}
|
||||
|
||||
.redirect-response {
|
||||
color: var(--status-redirect-color);
|
||||
.redir-response {
|
||||
@apply text-yellow-500;
|
||||
}
|
||||
|
||||
.critical-error-response {
|
||||
color: var(--status-critical-error-color);
|
||||
.cl-error-response {
|
||||
@apply text-red-500;
|
||||
}
|
||||
|
||||
.server-error-response {
|
||||
color: var(--status-server-error-color);
|
||||
.sv-error-response {
|
||||
@apply text-red-600;
|
||||
}
|
||||
|
||||
.missing-data-response {
|
||||
color: var(--status-missing-data-color);
|
||||
@apply text-secondaryLight;
|
||||
}
|
||||
|
||||
.toasted-container {
|
||||
@@ -374,7 +362,7 @@ pre.ace_editor {
|
||||
@apply px-4 py-2;
|
||||
@apply bg-tooltip;
|
||||
@apply border-secondaryDark;
|
||||
@apply text-body text-primary;
|
||||
@apply text-primary text-body;
|
||||
@apply justify-between;
|
||||
@apply shadow-lg;
|
||||
@apply font-semibold;
|
||||
@@ -402,7 +390,7 @@ pre.ace_editor {
|
||||
@apply before:opacity-10;
|
||||
@apply before:inset-0;
|
||||
@apply before:transition;
|
||||
@apply before:content-[''];
|
||||
@apply before:content-DEFAULT;
|
||||
@apply hover:no-underline;
|
||||
@apply hover:before:opacity-20;
|
||||
}
|
||||
@@ -436,7 +424,7 @@ pre.ace_editor {
|
||||
@apply before:opacity-0;
|
||||
@apply before:z-20;
|
||||
@apply before:transition;
|
||||
@apply before:content-[''];
|
||||
@apply before:content-DEFAULT;
|
||||
@apply hover:before:opacity-100;
|
||||
}
|
||||
|
||||
@@ -513,12 +501,12 @@ pre.ace_editor {
|
||||
@apply inline-flex;
|
||||
@apply font-sans;
|
||||
@apply text-tiny;
|
||||
@apply bg-dividerLight;
|
||||
@apply bg-divider;
|
||||
@apply rounded;
|
||||
@apply ml-2;
|
||||
@apply px-1;
|
||||
@apply min-w-[1.25rem];
|
||||
@apply min-h-[1.25rem];
|
||||
@apply min-w-5;
|
||||
@apply min-h-5;
|
||||
@apply items-center;
|
||||
@apply justify-center;
|
||||
@apply border border-dividerDark;
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
272
packages/hoppscotch-common/assets/scss/themes.scss
Normal file
272
packages/hoppscotch-common/assets/scss/themes.scss
Normal file
@@ -0,0 +1,272 @@
|
||||
@mixin base-theme {
|
||||
--font-sans: "Inter Variable", sans-serif;
|
||||
--font-icon: "Material Symbols Rounded Variable";
|
||||
--font-mono: "Roboto Mono Variable", monospace;
|
||||
--font-size-body: 0.75rem;
|
||||
--font-size-tiny: 0.688rem;
|
||||
--line-height-body: 1rem;
|
||||
--upper-primary-sticky-fold: 4.125rem;
|
||||
--upper-secondary-sticky-fold: 6.188rem;
|
||||
--upper-tertiary-sticky-fold: 8.25rem;
|
||||
--upper-mobile-primary-sticky-fold: 6.625rem;
|
||||
--upper-mobile-secondary-sticky-fold: 8.688rem;
|
||||
--upper-mobile-sticky-fold: 10.75rem;
|
||||
--upper-mobile-tertiary-sticky-fold: 8.25rem;
|
||||
--lower-primary-sticky-fold: 3rem;
|
||||
--lower-secondary-sticky-fold: 5.063rem;
|
||||
--lower-tertiary-sticky-fold: 7.125rem;
|
||||
--sidebar-primary-sticky-fold: 2rem;
|
||||
}
|
||||
|
||||
@mixin dark-theme {
|
||||
--primary-color: theme("colors.dark.800");
|
||||
--primary-light-color: theme("colors.dark.600");
|
||||
--primary-dark-color: theme("colors.neutral.800");
|
||||
--primary-contrast-color: theme("colors.neutral.900");
|
||||
|
||||
--secondary-color: theme("colors.neutral.400");
|
||||
--secondary-light-color: theme("colors.neutral.500");
|
||||
--secondary-dark-color: theme("colors.neutral.50");
|
||||
|
||||
--divider-color: theme("colors.neutral.800");
|
||||
--divider-light-color: theme("colors.dark.500");
|
||||
--divider-dark-color: theme("colors.dark.300");
|
||||
|
||||
--error-color: theme("colors.stone.800");
|
||||
--tooltip-color: theme("colors.neutral.100");
|
||||
--popover-color: theme("colors.dark.700");
|
||||
--editor-theme: "merbivore_soft";
|
||||
}
|
||||
|
||||
@mixin light-theme {
|
||||
--primary-color: theme("colors.white");
|
||||
--primary-light-color: theme("colors.gray.50");
|
||||
--primary-dark-color: theme("colors.gray.100");
|
||||
--primary-contrast-color: theme("colors.light.50");
|
||||
|
||||
--secondary-color: theme("colors.gray.500");
|
||||
--secondary-light-color: theme("colors.gray.400");
|
||||
--secondary-dark-color: theme("colors.gray.900");
|
||||
|
||||
--divider-color: theme("colors.gray.100");
|
||||
--divider-light-color: theme("colors.gray.100");
|
||||
--divider-dark-color: theme("colors.gray.300");
|
||||
|
||||
--error-color: theme("colors.yellow.100");
|
||||
--tooltip-color: theme("colors.neutral.800");
|
||||
--popover-color: theme("colors.white");
|
||||
--editor-theme: "textmate";
|
||||
}
|
||||
|
||||
@mixin black-theme {
|
||||
--primary-color: theme("colors.dark.900");
|
||||
--primary-light-color: theme("colors.neutral.900");
|
||||
--primary-dark-color: theme("colors.dark.800");
|
||||
--primary-contrast-color: theme("colors.dark.900");
|
||||
|
||||
--secondary-color: theme("colors.neutral.400");
|
||||
--secondary-light-color: theme("colors.neutral.500");
|
||||
--secondary-dark-color: theme("colors.neutral.100");
|
||||
|
||||
--divider-color: theme("colors.dark.600");
|
||||
--divider-light-color: theme("colors.dark.800");
|
||||
--divider-dark-color: theme("colors.dark.200");
|
||||
|
||||
--error-color: theme("colors.stone.900");
|
||||
--tooltip-color: theme("colors.neutral.100");
|
||||
--popover-color: theme("colors.dark.900");
|
||||
--editor-theme: "twilight";
|
||||
}
|
||||
|
||||
@mixin dark-editor-theme {
|
||||
--editor-type-color: theme("colors.purple.400");
|
||||
--editor-name-color: theme("colors.blue.400");
|
||||
--editor-operator-color: theme("colors.indigo.400");
|
||||
--editor-invalid-color: theme("colors.red.400");
|
||||
--editor-separator-color: theme("colors.gray.400");
|
||||
--editor-meta-color: theme("colors.gray.400");
|
||||
--editor-variable-color: theme("colors.green.400");
|
||||
--editor-link-color: theme("colors.cyan.400");
|
||||
--editor-process-color: theme("colors.fuchsia.400");
|
||||
--editor-constant-color: theme("colors.violet.400");
|
||||
--editor-keyword-color: theme("colors.pink.400");
|
||||
}
|
||||
|
||||
@mixin light-editor-theme {
|
||||
--editor-type-color: theme("colors.purple.600");
|
||||
--editor-name-color: theme("colors.red.600");
|
||||
--editor-operator-color: theme("colors.indigo.600");
|
||||
--editor-invalid-color: theme("colors.red.600");
|
||||
--editor-separator-color: theme("colors.gray.600");
|
||||
--editor-meta-color: theme("colors.gray.600");
|
||||
--editor-variable-color: theme("colors.green.600");
|
||||
--editor-link-color: theme("colors.cyan.600");
|
||||
--editor-process-color: theme("colors.blue.600");
|
||||
--editor-constant-color: theme("colors.fuchsia.600");
|
||||
--editor-keyword-color: theme("colors.pink.600");
|
||||
}
|
||||
|
||||
@mixin black-editor-theme {
|
||||
--editor-type-color: theme("colors.purple.400");
|
||||
--editor-name-color: theme("colors.fuchsia.400");
|
||||
--editor-operator-color: theme("colors.indigo.400");
|
||||
--editor-invalid-color: theme("colors.red.400");
|
||||
--editor-separator-color: theme("colors.gray.400");
|
||||
--editor-meta-color: theme("colors.gray.400");
|
||||
--editor-variable-color: theme("colors.green.400");
|
||||
--editor-link-color: theme("colors.cyan.400");
|
||||
--editor-process-color: theme("colors.violet.400");
|
||||
--editor-constant-color: theme("colors.blue.400");
|
||||
--editor-keyword-color: theme("colors.pink.400");
|
||||
}
|
||||
|
||||
@mixin green-theme {
|
||||
--accent-color: theme("colors.green.500");
|
||||
--accent-light-color: theme("colors.green.400");
|
||||
--accent-dark-color: theme("colors.green.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.green.200");
|
||||
--gradient-via-color: theme("colors.green.400");
|
||||
--gradient-to-color: theme("colors.green.600");
|
||||
}
|
||||
|
||||
@mixin teal-theme {
|
||||
--accent-color: theme("colors.teal.500");
|
||||
--accent-light-color: theme("colors.teal.400");
|
||||
--accent-dark-color: theme("colors.teal.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.teal.200");
|
||||
--gradient-via-color: theme("colors.teal.400");
|
||||
--gradient-to-color: theme("colors.teal.600");
|
||||
}
|
||||
|
||||
@mixin blue-theme {
|
||||
--accent-color: theme("colors.blue.500");
|
||||
--accent-light-color: theme("colors.blue.400");
|
||||
--accent-dark-color: theme("colors.blue.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.blue.200");
|
||||
--gradient-via-color: theme("colors.blue.400");
|
||||
--gradient-to-color: theme("colors.blue.600");
|
||||
}
|
||||
|
||||
@mixin indigo-theme {
|
||||
--accent-color: theme("colors.indigo.500");
|
||||
--accent-light-color: theme("colors.indigo.400");
|
||||
--accent-dark-color: theme("colors.indigo.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.indigo.200");
|
||||
--gradient-via-color: theme("colors.indigo.400");
|
||||
--gradient-to-color: theme("colors.indigo.600");
|
||||
}
|
||||
|
||||
@mixin purple-theme {
|
||||
--accent-color: theme("colors.purple.500");
|
||||
--accent-light-color: theme("colors.purple.400");
|
||||
--accent-dark-color: theme("colors.purple.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.purple.200");
|
||||
--gradient-via-color: theme("colors.purple.400");
|
||||
--gradient-to-color: theme("colors.purple.600");
|
||||
}
|
||||
|
||||
@mixin yellow-theme {
|
||||
--accent-color: theme("colors.yellow.500");
|
||||
--accent-light-color: theme("colors.yellow.400");
|
||||
--accent-dark-color: theme("colors.yellow.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.yellow.200");
|
||||
--gradient-via-color: theme("colors.yellow.400");
|
||||
--gradient-to-color: theme("colors.yellow.600");
|
||||
}
|
||||
|
||||
@mixin orange-theme {
|
||||
--accent-color: theme("colors.orange.500");
|
||||
--accent-light-color: theme("colors.orange.400");
|
||||
--accent-dark-color: theme("colors.orange.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.orange.200");
|
||||
--gradient-via-color: theme("colors.orange.400");
|
||||
--gradient-to-color: theme("colors.orange.600");
|
||||
}
|
||||
|
||||
@mixin red-theme {
|
||||
--accent-color: theme("colors.red.500");
|
||||
--accent-light-color: theme("colors.red.400");
|
||||
--accent-dark-color: theme("colors.red.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.red.200");
|
||||
--gradient-via-color: theme("colors.red.400");
|
||||
--gradient-to-color: theme("colors.red.600");
|
||||
}
|
||||
|
||||
@mixin pink-theme {
|
||||
--accent-color: theme("colors.pink.500");
|
||||
--accent-light-color: theme("colors.pink.400");
|
||||
--accent-dark-color: theme("colors.pink.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.pink.200");
|
||||
--gradient-via-color: theme("colors.pink.400");
|
||||
--gradient-to-color: theme("colors.pink.600");
|
||||
}
|
||||
|
||||
:root {
|
||||
@include base-theme;
|
||||
@include dark-theme;
|
||||
@include dark-editor-theme;
|
||||
@include green-theme;
|
||||
}
|
||||
|
||||
:root.light {
|
||||
@include light-theme;
|
||||
@include light-editor-theme;
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
:root.dark {
|
||||
@include dark-theme;
|
||||
@include dark-editor-theme;
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
:root.black {
|
||||
@include black-theme;
|
||||
@include black-editor-theme;
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
:root[data-accent="blue"] {
|
||||
@include blue-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="green"] {
|
||||
@include green-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="teal"] {
|
||||
@include teal-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="indigo"] {
|
||||
@include indigo-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="purple"] {
|
||||
@include purple-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="orange"] {
|
||||
@include orange-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="pink"] {
|
||||
@include pink-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="red"] {
|
||||
@include red-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="yellow"] {
|
||||
@include yellow-theme;
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
@mixin green-theme {
|
||||
--accent-color: theme("colors.emerald.500");
|
||||
--accent-light-color: theme("colors.emerald.400");
|
||||
--accent-dark-color: theme("colors.emerald.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.emerald.400");
|
||||
--gradient-via-color: theme("colors.emerald.500");
|
||||
--gradient-to-color: theme("colors.emerald.600");
|
||||
}
|
||||
|
||||
@mixin teal-theme {
|
||||
--accent-color: theme("colors.teal.500");
|
||||
--accent-light-color: theme("colors.teal.400");
|
||||
--accent-dark-color: theme("colors.teal.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.teal.400");
|
||||
--gradient-via-color: theme("colors.teal.500");
|
||||
--gradient-to-color: theme("colors.teal.600");
|
||||
}
|
||||
|
||||
@mixin blue-theme {
|
||||
--accent-color: theme("colors.blue.500");
|
||||
--accent-light-color: theme("colors.blue.400");
|
||||
--accent-dark-color: theme("colors.blue.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.blue.400");
|
||||
--gradient-via-color: theme("colors.blue.500");
|
||||
--gradient-to-color: theme("colors.blue.600");
|
||||
}
|
||||
|
||||
@mixin indigo-theme {
|
||||
--accent-color: theme("colors.indigo.500");
|
||||
--accent-light-color: theme("colors.indigo.400");
|
||||
--accent-dark-color: theme("colors.indigo.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.indigo.400");
|
||||
--gradient-via-color: theme("colors.indigo.500");
|
||||
--gradient-to-color: theme("colors.indigo.600");
|
||||
}
|
||||
|
||||
@mixin purple-theme {
|
||||
--accent-color: theme("colors.purple.500");
|
||||
--accent-light-color: theme("colors.purple.400");
|
||||
--accent-dark-color: theme("colors.purple.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.purple.400");
|
||||
--gradient-via-color: theme("colors.purple.500");
|
||||
--gradient-to-color: theme("colors.purple.600");
|
||||
}
|
||||
|
||||
@mixin yellow-theme {
|
||||
--accent-color: theme("colors.amber.500");
|
||||
--accent-light-color: theme("colors.amber.400");
|
||||
--accent-dark-color: theme("colors.amber.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.amber.400");
|
||||
--gradient-via-color: theme("colors.amber.500");
|
||||
--gradient-to-color: theme("colors.amber.600");
|
||||
}
|
||||
|
||||
@mixin orange-theme {
|
||||
--accent-color: theme("colors.orange.500");
|
||||
--accent-light-color: theme("colors.orange.400");
|
||||
--accent-dark-color: theme("colors.orange.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.orange.400");
|
||||
--gradient-via-color: theme("colors.orange.500");
|
||||
--gradient-to-color: theme("colors.orange.600");
|
||||
}
|
||||
|
||||
@mixin red-theme {
|
||||
--accent-color: theme("colors.red.500");
|
||||
--accent-light-color: theme("colors.red.400");
|
||||
--accent-dark-color: theme("colors.red.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.red.400");
|
||||
--gradient-via-color: theme("colors.red.500");
|
||||
--gradient-to-color: theme("colors.red.600");
|
||||
}
|
||||
|
||||
@mixin pink-theme {
|
||||
--accent-color: theme("colors.pink.500");
|
||||
--accent-light-color: theme("colors.pink.400");
|
||||
--accent-dark-color: theme("colors.pink.600");
|
||||
--accent-contrast-color: theme("colors.white");
|
||||
--gradient-from-color: theme("colors.pink.400");
|
||||
--gradient-via-color: theme("colors.pink.500");
|
||||
--gradient-to-color: theme("colors.pink.600");
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
@mixin base-theme {
|
||||
--font-sans: "Inter Variable", sans-serif;
|
||||
--font-mono: "Roboto Mono Variable", monospace;
|
||||
--font-size-body: 0.75rem;
|
||||
--font-size-tiny: 0.625rem;
|
||||
--line-height-body: 1rem;
|
||||
--upper-primary-sticky-fold: 4.125rem;
|
||||
--upper-secondary-sticky-fold: 6.188rem;
|
||||
--upper-tertiary-sticky-fold: 8.25rem;
|
||||
--upper-fourth-sticky-fold: 10.2rem;
|
||||
--upper-mobile-primary-sticky-fold: 6.75rem;
|
||||
--upper-mobile-secondary-sticky-fold: 8.813rem;
|
||||
--upper-mobile-sticky-fold: 10.875rem;
|
||||
--upper-mobile-tertiary-sticky-fold: 8.25rem;
|
||||
--lower-primary-sticky-fold: 3rem;
|
||||
--lower-secondary-sticky-fold: 5.063rem;
|
||||
--lower-tertiary-sticky-fold: 7.125rem;
|
||||
--lower-fourth-sticky-fold: 9.188rem;
|
||||
--sidebar-primary-sticky-fold: 2rem;
|
||||
}
|
||||
|
||||
@mixin light-theme {
|
||||
--primary-color: theme("colors.white");
|
||||
--primary-light-color: theme("colors.gray.50");
|
||||
--primary-dark-color: theme("colors.gray.100");
|
||||
--primary-contrast-color: #fdfdfd;
|
||||
|
||||
--secondary-color: theme("colors.gray.500");
|
||||
--secondary-light-color: theme("colors.gray.400");
|
||||
--secondary-dark-color: theme("colors.gray.900");
|
||||
|
||||
--divider-color: theme("colors.gray.100");
|
||||
--divider-light-color: theme("colors.gray.100");
|
||||
--divider-dark-color: theme("colors.gray.300");
|
||||
|
||||
--banner-info-color: theme("colors.stone.100");
|
||||
--banner-warning-color: theme("colors.yellow.100");
|
||||
--banner-error-color: theme("colors.red.100");
|
||||
|
||||
--tooltip-color: theme("colors.neutral.800");
|
||||
--popover-color: theme("colors.white");
|
||||
|
||||
--method-get-color: theme("colors.green.500");
|
||||
--method-post-color: theme("colors.amber.500");
|
||||
--method-put-color: theme("colors.blue.500");
|
||||
--method-patch-color: theme("colors.purple.500");
|
||||
--method-delete-color: theme("colors.red.500");
|
||||
--method-head-color: theme("colors.lime.500");
|
||||
--method-options-color: theme("colors.pink.500");
|
||||
--method-default-color: theme("colors.gray.500");
|
||||
|
||||
--status-info-color: theme("colors.blue.500");
|
||||
--status-success-color: theme("colors.green.500");
|
||||
--status-redirect-color: theme("colors.amber.500");
|
||||
--status-critical-error-color: theme("colors.red.500");
|
||||
--status-server-error-color: theme("colors.rose.500");
|
||||
--status-missing-data-color: theme("colors.slate.500");
|
||||
|
||||
--editor-theme: "textmate";
|
||||
}
|
||||
|
||||
@mixin dark-theme {
|
||||
--primary-color: #181818;
|
||||
--primary-light-color: #1c1c1e;
|
||||
--primary-dark-color: theme("colors.neutral.800");
|
||||
--primary-contrast-color: theme("colors.neutral.900");
|
||||
|
||||
--secondary-color: theme("colors.neutral.400");
|
||||
--secondary-light-color: theme("colors.neutral.500");
|
||||
--secondary-dark-color: theme("colors.zinc.50");
|
||||
|
||||
--divider-color: #1f1f1f;
|
||||
--divider-light-color: #1f1f1f;
|
||||
--divider-dark-color: theme("colors.zinc.800");
|
||||
|
||||
--banner-info-color: theme("colors.stone.800");
|
||||
--banner-warning-color: theme("colors.yellow.800");
|
||||
--banner-error-color: theme("colors.red.800");
|
||||
|
||||
--tooltip-color: theme("colors.neutral.100");
|
||||
--popover-color: #1b1b1b;
|
||||
|
||||
--method-get-color: theme("colors.emerald.500");
|
||||
--method-post-color: theme("colors.yellow.500");
|
||||
--method-put-color: theme("colors.sky.500");
|
||||
--method-patch-color: theme("colors.violet.500");
|
||||
--method-delete-color: theme("colors.rose.500");
|
||||
--method-head-color: theme("colors.teal.500");
|
||||
--method-options-color: theme("colors.indigo.500");
|
||||
--method-default-color: theme("colors.neutral.500");
|
||||
|
||||
--status-info-color: theme("colors.blue.500");
|
||||
--status-success-color: theme("colors.green.500");
|
||||
--status-redirect-color: theme("colors.amber.500");
|
||||
--status-critical-error-color: theme("colors.red.500");
|
||||
--status-server-error-color: theme("colors.rose.500");
|
||||
--status-missing-data-color: theme("colors.slate.500");
|
||||
|
||||
--editor-theme: "merbivore_soft";
|
||||
}
|
||||
|
||||
@mixin black-theme {
|
||||
--primary-color: #0f0f0f;
|
||||
--primary-light-color: theme("colors.neutral.900");
|
||||
--primary-dark-color: #181818;
|
||||
--primary-contrast-color: #0f0f0f;
|
||||
|
||||
--secondary-color: theme("colors.neutral.400");
|
||||
--secondary-light-color: theme("colors.neutral.500");
|
||||
--secondary-dark-color: theme("colors.neutral.50");
|
||||
|
||||
--divider-color: theme("colors.neutral.900");
|
||||
--divider-light-color: theme("colors.neutral.900");
|
||||
--divider-dark-color: theme("colors.zinc.800");
|
||||
|
||||
--banner-info-color: theme("colors.stone.900");
|
||||
--banner-warning-color: theme("colors.yellow.900");
|
||||
--banner-error-color: theme("colors.red.900");
|
||||
|
||||
--tooltip-color: theme("colors.neutral.100");
|
||||
--popover-color: theme("colors.stone.950");
|
||||
|
||||
--method-get-color: theme("colors.emerald.500");
|
||||
--method-post-color: theme("colors.yellow.500");
|
||||
--method-put-color: theme("colors.sky.500");
|
||||
--method-patch-color: theme("colors.violet.500");
|
||||
--method-delete-color: theme("colors.rose.500");
|
||||
--method-head-color: theme("colors.teal.500");
|
||||
--method-options-color: theme("colors.indigo.500");
|
||||
--method-default-color: theme("colors.zinc.500");
|
||||
|
||||
--status-info-color: theme("colors.blue.500");
|
||||
--status-success-color: theme("colors.green.500");
|
||||
--status-redirect-color: theme("colors.amber.500");
|
||||
--status-critical-error-color: theme("colors.red.500");
|
||||
--status-server-error-color: theme("colors.rose.500");
|
||||
--status-missing-data-color: theme("colors.slate.500");
|
||||
|
||||
--editor-theme: "twilight";
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
@mixin light-editor-theme {
|
||||
--editor-type-color: theme("colors.violet.600");
|
||||
--editor-name-color: theme("colors.red.600");
|
||||
--editor-operator-color: theme("colors.indigo.600");
|
||||
--editor-invalid-color: theme("colors.red.600");
|
||||
--editor-separator-color: theme("colors.gray.600");
|
||||
--editor-meta-color: theme("colors.gray.600");
|
||||
--editor-variable-color: theme("colors.emerald.600");
|
||||
--editor-link-color: theme("colors.cyan.600");
|
||||
--editor-process-color: theme("colors.blue.600");
|
||||
--editor-constant-color: theme("colors.fuchsia.600");
|
||||
--editor-keyword-color: theme("colors.pink.600");
|
||||
}
|
||||
|
||||
@mixin dark-editor-theme {
|
||||
--editor-type-color: theme("colors.violet.400");
|
||||
--editor-name-color: theme("colors.blue.400");
|
||||
--editor-operator-color: theme("colors.indigo.400");
|
||||
--editor-invalid-color: theme("colors.red.400");
|
||||
--editor-separator-color: theme("colors.gray.400");
|
||||
--editor-meta-color: theme("colors.gray.400");
|
||||
--editor-variable-color: theme("colors.emerald.400");
|
||||
--editor-link-color: theme("colors.cyan.400");
|
||||
--editor-process-color: theme("colors.fuchsia.400");
|
||||
--editor-constant-color: theme("colors.violet.400");
|
||||
--editor-keyword-color: theme("colors.pink.400");
|
||||
}
|
||||
|
||||
@mixin black-editor-theme {
|
||||
--editor-type-color: theme("colors.violet.400");
|
||||
--editor-name-color: theme("colors.fuchsia.400");
|
||||
--editor-operator-color: theme("colors.indigo.400");
|
||||
--editor-invalid-color: theme("colors.red.400");
|
||||
--editor-separator-color: theme("colors.gray.400");
|
||||
--editor-meta-color: theme("colors.gray.400");
|
||||
--editor-variable-color: theme("colors.emerald.400");
|
||||
--editor-link-color: theme("colors.cyan.400");
|
||||
--editor-process-color: theme("colors.violet.400");
|
||||
--editor-constant-color: theme("colors.blue.400");
|
||||
--editor-keyword-color: theme("colors.pink.400");
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
@import "./base-themes.scss";
|
||||
@import "./editor-themes.scss";
|
||||
@import "./accent-themes.scss";
|
||||
|
||||
:root {
|
||||
@include base-theme;
|
||||
@include dark-theme;
|
||||
@include green-theme;
|
||||
@include dark-editor-theme;
|
||||
}
|
||||
|
||||
:root.light {
|
||||
@include light-theme;
|
||||
@include light-editor-theme;
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
:root.dark {
|
||||
@include dark-theme;
|
||||
@include dark-editor-theme;
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
:root.black {
|
||||
@include black-theme;
|
||||
@include black-editor-theme;
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
:root[data-accent="blue"] {
|
||||
@include blue-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="green"] {
|
||||
@include green-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="teal"] {
|
||||
@include teal-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="indigo"] {
|
||||
@include indigo-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="purple"] {
|
||||
@include purple-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="orange"] {
|
||||
@include orange-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="pink"] {
|
||||
@include pink-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="red"] {
|
||||
@include red-theme;
|
||||
}
|
||||
|
||||
:root[data-accent="yellow"] {
|
||||
@include yellow-theme;
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Kies 'n lêer",
|
||||
"clear": "Duidelik",
|
||||
"clear_all": "Maak alles skoon",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Koppel",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Prettify",
|
||||
"remove": "Verwyder",
|
||||
"rename": "Rename",
|
||||
"restore": "Herstel",
|
||||
"save": "Stoor",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Soek",
|
||||
"share": "Deel",
|
||||
"shortcuts": "Kortpaaie",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Kollig",
|
||||
"status": "Status",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Versameling hernoem",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Stoor as",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Kies 'n versameling",
|
||||
"select_location": "Kies ligging",
|
||||
"select_team": "Kies 'n span",
|
||||
"team_collections": "Spanversamelings"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Weet u seker dat u wil afmeld?",
|
||||
"remove_collection": "Weet u seker dat u hierdie versameling permanent wil uitvee?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Is u seker dat u hierdie werkruimte wil sinkroniseer?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Koptekst {count}",
|
||||
"message": "Boodskap {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Skep nuwe omgewing",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Bewerk omgewing",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Gee 'n geldige naam vir die omgewing",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "Nuwe omgewing",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Geen omgewing nie",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Kies omgewing",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Omgewings",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Veranderlike lys"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Geen duur nie",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Kon nie voorafversoekskrip uitvoer nie",
|
||||
"something_went_wrong": "Iets het verkeerd geloop",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Vouer hernoem"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutasies",
|
||||
"schema": "Skema",
|
||||
"subscriptions": "Inskrywings",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Inskrywings"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Invoer"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "Zen -modus"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Nuttingslading",
|
||||
"query": "Navraag",
|
||||
"raw_body": "Rou versoeksliggaam",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Versoek hernoem",
|
||||
"run": "Hardloop",
|
||||
"save": "Stoor",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Versoek gestoor",
|
||||
"share": "Deel",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "Versoek",
|
||||
"type": "Soort versoek",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Dit is u vertoonnaam.",
|
||||
"background": "Agtergrond",
|
||||
"black_mode": "Swart",
|
||||
"change_font_size": "Verander lettergrootte",
|
||||
"choose_language": "Kies taal",
|
||||
"dark_mode": "Donker",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Uitbreidings",
|
||||
"extensions_use_toggle": "Gebruik die blaaieruitbreiding om versoeke te stuur (indien teenwoordig)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Skrifgrootte",
|
||||
"font_size_large": "Groot",
|
||||
"font_size_medium": "Medium",
|
||||
"font_size_small": "Klein",
|
||||
"interceptor": "Onderskepper",
|
||||
"interceptor_description": "Middelware tussen toepassing en API's.",
|
||||
"language": "Taal",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Gaan na die instellingsbladsy",
|
||||
"title": "Navigasie"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Kopieer versoekskakel",
|
||||
"delete_method": "Kies DELETE metode",
|
||||
"get_method": "Kies GET -metode",
|
||||
"head_method": "Kies HOOF metode",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Metode",
|
||||
"next_method": "Kies Volgende metode",
|
||||
"post_method": "Kies POST -metode",
|
||||
"previous_method": "Kies Vorige metode",
|
||||
"put_method": "Kies PUT -metode",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Herstel versoek",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Stoor in versamelings",
|
||||
"send_request": "Stuur versoek",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Versoek"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Meld",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Soort gebeurtenis",
|
||||
"log": "Meld",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Magtiging",
|
||||
"body": "Liggaam",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Versamelings",
|
||||
"documentation": "Dokumentasie",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Opskrifte",
|
||||
"history": "Geskiedenis",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "اختيار ملف",
|
||||
"clear": "امسح",
|
||||
"clear_all": "امسح الكل",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "الاتصال",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "لصق",
|
||||
"prettify": "جمال",
|
||||
"remove": "ازالة",
|
||||
"rename": "Rename",
|
||||
"restore": "اعادة",
|
||||
"save": "حفظ",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "بحث",
|
||||
"share": "يشارك",
|
||||
"shortcuts": "الاختصارات",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "أضواء كاشفة",
|
||||
"status": "حالة",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "تمت إعادة تسمية المجموعة",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "حفظ باسم",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "حدد مجموعة",
|
||||
"select_location": "اختر موقعا",
|
||||
"select_team": "اختر فريقًا",
|
||||
"team_collections": "مجموعات الفريق"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "هل أنت متأكد أنك تريد مغادرة هذا الفريق؟",
|
||||
"logout": "هل أنت متأكد أنك تريد تسجيل الخروج؟",
|
||||
"remove_collection": "هل أنت متأكد أنك تريد حذف هذه المجموعة نهائيًا؟",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "هل أنت متأكد أنك تريد مزامنة مساحة العمل هذه؟"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "رأس {count}",
|
||||
"message": "الرسالة {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "انشاء بيئة جديدة",
|
||||
"created": "Environment created",
|
||||
"deleted": "حذف بيئة العمل",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "تحرير البيئة",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "الرجاء تقديم اسم صالح للبيئة",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "بيئة جديدة",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "لا بيئة",
|
||||
"no_environment_description": "لم يتم اختيار أي بيئة عمل. اختر ما تريد فعله بالمتغيرات التالية.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "حدد البيئة",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "البيئات",
|
||||
"updated": "تحديث بيئة العمل",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "قائمة متغيرة"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "لا مدة",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "تعذر تنفيذ نص الطلب المسبق",
|
||||
"something_went_wrong": "هناك خطأ ما",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "تمت إعادة تسمية المجلد"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "الطفرات",
|
||||
"schema": "مخطط",
|
||||
"subscriptions": "الاشتراكات",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "الاشتراكات"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "استيراد مجموعة من ملفHoppscotch Collections JSON file",
|
||||
"title": "يستورد"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "تصيم عمودي",
|
||||
"name": "Layout",
|
||||
"row": "تصميم افقي"
|
||||
"row": "تصميم افقي",
|
||||
"zen_mode": "وضع Zen"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "الحمولة",
|
||||
"query": "استفسار",
|
||||
"raw_body": "نص طلب خام",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "تمت إعادة تسمية الطلب",
|
||||
"run": "يركض",
|
||||
"save": "يحفظ",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "تم حفظ الطلب",
|
||||
"share": "يشارك",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "طلب",
|
||||
"type": "نوع الطلب",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "هذا هو اسم العرض الخاص بك.",
|
||||
"background": "خلفية",
|
||||
"black_mode": "أسود",
|
||||
"change_font_size": "تغيير حجم الخط",
|
||||
"choose_language": "اختر اللغة",
|
||||
"dark_mode": "داكن",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "ملحقات",
|
||||
"extensions_use_toggle": "استخدم امتداد المتصفح لإرسال الطلبات (إن وجدت)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "حجم الخط",
|
||||
"font_size_large": "كبير",
|
||||
"font_size_medium": "متوسط",
|
||||
"font_size_small": "صغير",
|
||||
"interceptor": "المعترض",
|
||||
"interceptor_description": "البرامج الوسيطة بين التطبيق وواجهات برمجة التطبيقات.",
|
||||
"language": "لغة",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "انتقل إلى صفحة الإعدادات",
|
||||
"title": "التنقل"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "نسخ ارتباط الطلب",
|
||||
"delete_method": "حدد طريقة الحذف",
|
||||
"get_method": "حدد طريقة GET",
|
||||
"head_method": "حدد طريقة HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "طريقة",
|
||||
"next_method": "حدد الطريقة التالية",
|
||||
"post_method": "حدد طريقة POST",
|
||||
"previous_method": "حدد الطريقة السابقة",
|
||||
"put_method": "حدد طريقة PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "طلب إعادة التعيين",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "حفظ في المجموعات",
|
||||
"send_request": "ارسل طلب",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "طلب"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "سجل",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "نوع الحدث",
|
||||
"log": "سجل",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "تفويض",
|
||||
"body": "الجسم",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "المجموعات",
|
||||
"documentation": "توثيق",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "الرؤوس",
|
||||
"history": "تاريخ",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Triar un fitxer",
|
||||
"clear": "Netejar",
|
||||
"clear_all": "Neteja-ho tot",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Connectar",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Enganxar",
|
||||
"prettify": "Fes-ho bonic",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Rename",
|
||||
"restore": "Restaurar",
|
||||
"save": "Guardar",
|
||||
"scroll_to_bottom": "Desplaceu-vos cap avall",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Cercar",
|
||||
"share": "Compartir",
|
||||
"shortcuts": "Dreceres",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Destacar",
|
||||
"status": "Estat",
|
||||
"status_description": "Comproveu l'estat de la web",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "S'ha canviat el nom de la col·lecció",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Guardar com",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Seleccionar una col·lecció",
|
||||
"select_location": "Seleccionar la ubicació",
|
||||
"select_team": "Seleccionar un equip",
|
||||
"team_collections": "Col·leccions per equips"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Està segur que vol deixar aquest equip?",
|
||||
"logout": "Està segur que vol tancar la sessió?",
|
||||
"remove_collection": "Està segur que vol suprimir permanentment aquesta col·lecció?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Està segur que vol sincronitzar aquest espai de treball?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Capçalera {count}",
|
||||
"message": "Missatges {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Crea un entorn nou",
|
||||
"created": "Etorn creat",
|
||||
"deleted": "Entorn eliminat",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Editar l'entorn",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Proporcioneu un nom vàlid per a l'entorn",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "Les variables d'entorn niuades estan limitades a 10 nivells",
|
||||
"new": "Nou entorn",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Sense entorn",
|
||||
"no_environment_description": "No s'ha seleccionat cap entorn. Trieu què voleu fer amb les variables següents.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Seleccioneu un entorn",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Entorns",
|
||||
"updated": "Entorn actualitzat",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Llista de variables"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Sense durada",
|
||||
"no_results_found": "No s'ha trobat cap coincidència",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "No s'ha pogut executar l'script de sol·licitud prèvia",
|
||||
"something_went_wrong": "Alguna cosa ha anat malament",
|
||||
"test_script_fail": "No s'ha pogut executar l'script posterior a la sol·licitud"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "S'ha canviat el nom de la carpeta"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutacions",
|
||||
"schema": "Esquema",
|
||||
"subscriptions": "Subscripcions",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Subscripcions"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Importar col·leccions des d'un fitxer JSON de col·leccions Hoppscotch",
|
||||
"title": "Importació"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Amagar o Ampliar Col·leccions",
|
||||
"collapse_sidebar": "Amagar o Ampliar la barra lateral",
|
||||
"column": "Distribució vertical",
|
||||
"name": "Distribució",
|
||||
"row": "Distribució horitzontal"
|
||||
"row": "Distribució horitzontal",
|
||||
"zen_mode": "Mode Zen"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Payload",
|
||||
"query": "Consulta",
|
||||
"raw_body": "Cos de sol·licitud sense processar",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "S'ha canviat el nom de la sol·licitud",
|
||||
"run": "Executar",
|
||||
"save": "Guardar",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "S'ha desat la sol·licitud",
|
||||
"share": "Compartir",
|
||||
"share_description": "Comparteix Hoppscotch amb els teus amics",
|
||||
"stop": "Stop",
|
||||
"title": "Sol·licitud",
|
||||
"type": "Tipus de sol·licitud",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Aquest és el vostre nom d'exposició",
|
||||
"background": "Fons",
|
||||
"black_mode": "Negre",
|
||||
"change_font_size": "Canvia la mida de la lletra",
|
||||
"choose_language": "Tria l'idioma",
|
||||
"dark_mode": "Fosc",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Extensions",
|
||||
"extensions_use_toggle": "Utilitzeu l'extensió del navegador per enviar sol·licituds (si n'hi ha)",
|
||||
"follow": "Segueix-nos",
|
||||
"font_size": "Mida de la font",
|
||||
"font_size_large": "Gran",
|
||||
"font_size_medium": "Mitjà",
|
||||
"font_size_small": "Petit",
|
||||
"interceptor": "Interceptor",
|
||||
"interceptor_description": "Middleware entre aplicació i APIs.",
|
||||
"language": "Llenguatge",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Anar a la pàgina de Configuració",
|
||||
"title": "Navegació"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Copiar l'enllaç de la sol·licitud",
|
||||
"delete_method": "Seleccionar el mètode DELETE",
|
||||
"get_method": "Seleccionar el mètode GET",
|
||||
"head_method": "Seleccionar el mètode HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Mètode",
|
||||
"next_method": "Seleccionar mètode Següent",
|
||||
"post_method": "Seleccionar mètode POST",
|
||||
"previous_method": "Seleccionar mètode Anterior",
|
||||
"put_method": "Seleccionar mètode PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Sol·licitud de restabliment",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Guardar a les col·leccions",
|
||||
"send_request": "Enviar sol.licitud",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Sol·licitud"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Registre",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Tipus d'esdeveniment",
|
||||
"log": "Registre",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Autorització",
|
||||
"body": "Cos",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Col·leccions",
|
||||
"documentation": "Documentació",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Capçaleres",
|
||||
"history": "Historial",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "选择文件",
|
||||
"clear": "清除",
|
||||
"clear_all": "全部清除",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "关闭",
|
||||
"connect": "连接",
|
||||
"connecting": "连接中",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "粘贴",
|
||||
"prettify": "美化",
|
||||
"remove": "移除",
|
||||
"rename": "Rename",
|
||||
"restore": "恢复",
|
||||
"save": "保存",
|
||||
"scroll_to_bottom": "滚动至底部",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "搜索",
|
||||
"share": "分享",
|
||||
"shortcuts": "快捷方式",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "聚光灯",
|
||||
"status": "状态",
|
||||
"status_description": "检查网站状态",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "集合已更名",
|
||||
"request_in_use": "请求正在使用中",
|
||||
"save_as": "另存为",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "选择一个集合",
|
||||
"select_location": "选择位置",
|
||||
"select_team": "选择一个团队",
|
||||
"team_collections": "团队集合"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "你确定要离开此团队吗?",
|
||||
"logout": "你确定要登出吗?",
|
||||
"remove_collection": "你确定要永久删除该集合吗?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "你想保存在此标签页中所作的修改吗?",
|
||||
"sync": "您确定要同步该工作区吗?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "请求头 {count}",
|
||||
"message": "消息 {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "创建新环境",
|
||||
"created": "环境已创建",
|
||||
"deleted": "环境已删除",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "编辑环境",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "请提供有效的环境名称",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "我的环境",
|
||||
"name": "Name",
|
||||
"nested_overflow": "环境嵌套深度超过限制(10层)",
|
||||
"new": "新建环境",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "无环境",
|
||||
"no_environment_description": "没有选择环境。选择如何处理以下变量。",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "选择环境",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "团队环境",
|
||||
"title": "环境",
|
||||
"updated": "环境已更新",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "变量列表"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "无持续时间",
|
||||
"no_results_found": "找不到结果",
|
||||
"page_not_found": "找不到此頁面",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "无法执行预请求脚本",
|
||||
"something_went_wrong": "发生了一些错误",
|
||||
"test_script_fail": "无法执行请求脚本"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "文件夹已更名"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "变更",
|
||||
"schema": "模式",
|
||||
"subscriptions": "订阅",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "订阅"
|
||||
},
|
||||
"group": {
|
||||
"time": "时间",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "从 Hoppscotch 的集合文件导入(JSON)",
|
||||
"title": "导入"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "折叠/展开集合",
|
||||
"collapse_sidebar": "折叠/展开边栏",
|
||||
"column": "垂直布局",
|
||||
"name": "布局",
|
||||
"row": "水平布局"
|
||||
"row": "水平布局",
|
||||
"zen_mode": "ZEN 模式"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "有未保存的变更",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "负载",
|
||||
"query": "查询",
|
||||
"raw_body": "原始请求体",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "请求重命名",
|
||||
"run": "运行",
|
||||
"save": "保存",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "请求已保存",
|
||||
"share": "分享",
|
||||
"share_description": "分享 Hoppscotch 给你的朋友",
|
||||
"stop": "Stop",
|
||||
"title": "请求",
|
||||
"type": "请求类型",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "这是您的显示名称。",
|
||||
"background": "背景",
|
||||
"black_mode": "黑色",
|
||||
"change_font_size": "更改字体大小",
|
||||
"choose_language": "选择语言",
|
||||
"dark_mode": "暗色",
|
||||
"delete_account": "刪除账号",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "扩展",
|
||||
"extensions_use_toggle": "使用浏览器扩展发送请求(如果存在)",
|
||||
"follow": "关注我们",
|
||||
"font_size": "字体大小",
|
||||
"font_size_large": "大",
|
||||
"font_size_medium": "中",
|
||||
"font_size_small": "小",
|
||||
"interceptor": "拦截器",
|
||||
"interceptor_description": "应用程序和 API 之间的中间件。",
|
||||
"language": "语言",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "前往设置页面",
|
||||
"title": "导航"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "复制请求链接",
|
||||
"delete_method": "选择 DELETE 方法",
|
||||
"get_method": "选择 GET 方法",
|
||||
"head_method": "选择 HEAD 方法",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "方法",
|
||||
"next_method": "选择下一个方法",
|
||||
"post_method": "选择 POST 方法",
|
||||
"previous_method": "选择上一个方法",
|
||||
"put_method": "选择 PUT 方法",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "重置请求",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "保存到集合",
|
||||
"send_request": "发送请求",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "请求"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "日志",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "事件类型",
|
||||
"log": "日志",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "授权",
|
||||
"body": "请求体",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "集合",
|
||||
"documentation": "帮助文档",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "环境",
|
||||
"headers": "请求头",
|
||||
"history": "历史记录",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Vyberte soubor",
|
||||
"clear": "Průhledná",
|
||||
"clear_all": "Vymazat vše",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Připojit",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Prettify",
|
||||
"remove": "Odstranit",
|
||||
"rename": "Rename",
|
||||
"restore": "Obnovit",
|
||||
"save": "Uložit",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Vyhledávání",
|
||||
"share": "Podíl",
|
||||
"shortcuts": "Klávesové zkratky",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Reflektor",
|
||||
"status": "Postavení",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Sbírka přejmenována",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Uložit jako",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Vyberte sbírku",
|
||||
"select_location": "Vyberte umístění",
|
||||
"select_team": "Vyberte tým",
|
||||
"team_collections": "Týmové sbírky"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Opravdu se chcete odhlásit?",
|
||||
"remove_collection": "Opravdu chcete tuto sbírku trvale smazat?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Opravdu chcete synchronizovat tento pracovní prostor?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Záhlaví {count}",
|
||||
"message": "Zpráva {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Vytvořit nové prostředí",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Upravit prostředí",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Zadejte platný název prostředí",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "Nové prostředí",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Žádné prostředí",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Vyberte prostředí",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Prostředí",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Seznam proměnných"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Žádné trvání",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Skript předběžného požadavku nelze spustit",
|
||||
"something_went_wrong": "Něco se pokazilo",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Složka přejmenována"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutace",
|
||||
"schema": "Schéma",
|
||||
"subscriptions": "Předplatné",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Předplatné"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Import"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "Zenový režim"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Užitečné zatížení",
|
||||
"query": "Dotaz",
|
||||
"raw_body": "Raw Request Body",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Žádost přejmenována",
|
||||
"run": "Běh",
|
||||
"save": "Uložit",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Žádost uložena",
|
||||
"share": "Podíl",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "Žádost",
|
||||
"type": "Typ požadavku",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Toto je vaše zobrazované jméno.",
|
||||
"background": "Pozadí",
|
||||
"black_mode": "Černá",
|
||||
"change_font_size": "Změnit velikost písma",
|
||||
"choose_language": "Vyber jazyk",
|
||||
"dark_mode": "Temný",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Rozšíření",
|
||||
"extensions_use_toggle": "K odeslání požadavků použijte rozšíření prohlížeče (je -li k dispozici)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Velikost písma",
|
||||
"font_size_large": "Velký",
|
||||
"font_size_medium": "Střední",
|
||||
"font_size_small": "Malý",
|
||||
"interceptor": "Interceptor",
|
||||
"interceptor_description": "Middleware mezi aplikací a API.",
|
||||
"language": "Jazyk",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Přejděte na stránku Nastavení",
|
||||
"title": "Navigace"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Kopírovat požadavek na odkaz",
|
||||
"delete_method": "Vyberte metodu ODSTRANIT",
|
||||
"get_method": "Vyberte metodu ZÍSKAT",
|
||||
"head_method": "Vyberte metodu HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Metoda",
|
||||
"next_method": "Vyberte Další metoda",
|
||||
"post_method": "Vyberte metodu POST",
|
||||
"previous_method": "Vyberte předchozí metodu",
|
||||
"put_method": "Vyberte metodu PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Resetovat požadavek",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Uložit do sbírek",
|
||||
"send_request": "Poslat žádost",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Žádost"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Záznam",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Typ události",
|
||||
"log": "Záznam",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Povolení",
|
||||
"body": "Tělo",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Sbírky",
|
||||
"documentation": "Dokumentace",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Záhlaví",
|
||||
"history": "Dějiny",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Vælg en fil",
|
||||
"clear": "Klar",
|
||||
"clear_all": "Slet alt",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Opret forbindelse",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Prettify",
|
||||
"remove": "Fjerne",
|
||||
"rename": "Rename",
|
||||
"restore": "Gendan",
|
||||
"save": "Gemme",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Søg",
|
||||
"share": "Del",
|
||||
"shortcuts": "Genveje",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Spotlight",
|
||||
"status": "Status",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Samling omdøbt",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Gem som",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Vælg en samling",
|
||||
"select_location": "Vælg placering",
|
||||
"select_team": "Vælg et hold",
|
||||
"team_collections": "Teamsamlinger"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Er du sikker på, at du vil logge af?",
|
||||
"remove_collection": "Er du sikker på, at du vil slette denne samling permanent?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Er du sikker på, at du vil synkronisere dette arbejdsområde?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Overskrift {count}",
|
||||
"message": "Besked {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Skab nyt miljø",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Rediger miljø",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Angiv et gyldigt navn på miljøet",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "Nyt miljø",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Intet miljø",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Vælg miljø",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Miljøer",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Variabel liste"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Ingen varighed",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Kunne ikke udføre pre-request script",
|
||||
"something_went_wrong": "Noget gik galt",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Mappen omdøbt"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutationer",
|
||||
"schema": "Skema",
|
||||
"subscriptions": "Abonnementer",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Abonnementer"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Importere"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "Zen -tilstand"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Nyttelast",
|
||||
"query": "Forespørgsel",
|
||||
"raw_body": "Raw Request Body",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Anmodning omdøbt",
|
||||
"run": "Løb",
|
||||
"save": "Gemme",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Anmodning gemt",
|
||||
"share": "Del",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "Anmodning",
|
||||
"type": "Anmodningstype",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Dette er dit visningsnavn.",
|
||||
"background": "Baggrund",
|
||||
"black_mode": "Sort",
|
||||
"change_font_size": "Skift skriftstørrelse",
|
||||
"choose_language": "Vælg sprog",
|
||||
"dark_mode": "Mørk",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Udvidelser",
|
||||
"extensions_use_toggle": "Brug browserudvidelsen til at sende anmodninger (hvis de findes)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Skriftstørrelse",
|
||||
"font_size_large": "Stor",
|
||||
"font_size_medium": "Medium",
|
||||
"font_size_small": "Lille",
|
||||
"interceptor": "Aflytter",
|
||||
"interceptor_description": "Middleware mellem applikation og API'er.",
|
||||
"language": "Sprog",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Gå til siden Indstillinger",
|
||||
"title": "Navigation"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Kopiér anmodningslink",
|
||||
"delete_method": "Vælg SLET metode",
|
||||
"get_method": "Vælg GET -metode",
|
||||
"head_method": "Vælg HEAD -metode",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Metode",
|
||||
"next_method": "Vælg Næste metode",
|
||||
"post_method": "Vælg POST -metode",
|
||||
"previous_method": "Vælg Forrige metode",
|
||||
"put_method": "Vælg PUT -metode",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Nulstil anmodning",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Gem i samlinger",
|
||||
"send_request": "Send anmodning",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Anmodning"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Log",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Begivenhedstype",
|
||||
"log": "Log",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Bemyndigelse",
|
||||
"body": "Legeme",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Samlinger",
|
||||
"documentation": "Dokumentation",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Overskrifter",
|
||||
"history": "Historie",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Datei auswählen",
|
||||
"clear": "Zurücksetzen",
|
||||
"clear_all": "Alles zurücksetzen",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Verbinden",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Einfügen",
|
||||
"prettify": "Verschönern",
|
||||
"remove": "Entfernen",
|
||||
"rename": "Rename",
|
||||
"restore": "Wiederherstellen",
|
||||
"save": "Speichern",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Suche",
|
||||
"share": "Teilen",
|
||||
"shortcuts": "Verknüpfungen",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Scheinwerfer",
|
||||
"status": "Status",
|
||||
"status_description": "Überprüfe den Status der Webseite",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Sammlung umbenannt",
|
||||
"request_in_use": "Anfrage wird ausgeführt",
|
||||
"save_as": "Speichern als",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Wähle eine Sammlung",
|
||||
"select_location": "Ort auswählen",
|
||||
"select_team": "Wähle ein Team",
|
||||
"team_collections": "Teamsammlungen"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Möchtest Du dieses Team wirklich verlassen?",
|
||||
"logout": "Möchtest Du Dich wirklich abmelden?",
|
||||
"remove_collection": "Möchtest Du diese Sammlung wirklich endgültig löschen?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Möchtest Du diesen Arbeitsbereich wirklich synchronisieren?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Header {count}",
|
||||
"message": "Nachricht {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Neue Umgebung erstellen",
|
||||
"created": "Umgebung erzeugt",
|
||||
"deleted": "Umgebung löschen",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Umgebung bearbeiten",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Bitte gib einen gültigen Namen für die Umgebung an",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "Verschachtelte Umgebungsvariablen sind limitert auf 10 Unterebenen",
|
||||
"new": "Neue Umgebung",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Keine Umgebung",
|
||||
"no_environment_description": "Es wurden keine Umgebungen ausgewählt. Wähle aus, was mit den untenstehenden Variablen geschehen soll.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Umgebung auswählen",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Umgebungen",
|
||||
"updated": "Umgebung aktualisiert",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Variablenliste"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Keine Dauer",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Pre-Request-Skripte konnte nicht ausgeführt werden",
|
||||
"something_went_wrong": "Etwas ist schief gelaufen",
|
||||
"test_script_fail": "Testskripts konnten nicht ausgeführt werden"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Ordner umbenannt"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutationen",
|
||||
"schema": "Schema",
|
||||
"subscriptions": "Abonnements",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Abonnements"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Hoppscotch Sammlungsdatei (JSON) importieren",
|
||||
"title": "Importieren"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Sammlungen ein- oder ausklappen",
|
||||
"collapse_sidebar": "Seitenleiste ein- oder ausklappen",
|
||||
"column": "Vertikales Layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontales Layout"
|
||||
"row": "Horizontales Layout",
|
||||
"zen_mode": "Zen-Modus"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Nutzlast",
|
||||
"query": "Anfrage",
|
||||
"raw_body": "Roher Anfragetext",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Anfrage umbenannt",
|
||||
"run": "Ausführen",
|
||||
"save": "Speichern",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Anfrage gespeichert",
|
||||
"share": "Teilen",
|
||||
"share_description": "Teile Hoppscotch mit Deinen Freunden",
|
||||
"stop": "Stop",
|
||||
"title": "Anfrage",
|
||||
"type": "Anfragetyp",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Dies ist Dein Anzeigename.",
|
||||
"background": "Hintergrund",
|
||||
"black_mode": "Schwarz",
|
||||
"change_font_size": "Schriftgröße ändern",
|
||||
"choose_language": "Sprache wählen",
|
||||
"dark_mode": "Dunkel",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Erweiterungen",
|
||||
"extensions_use_toggle": "Verwende die Browsererweiterung, um Anfragen zu senden (falls vorhanden)",
|
||||
"follow": "Folge uns",
|
||||
"font_size": "Schriftgröße",
|
||||
"font_size_large": "Groß",
|
||||
"font_size_medium": "Mittel",
|
||||
"font_size_small": "Klein",
|
||||
"interceptor": "Interceptor",
|
||||
"interceptor_description": "Middleware zwischen Anwendung und APIs.",
|
||||
"language": "Sprache",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Einstellungen öffnen",
|
||||
"title": "Navigation"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Anfragelink kopieren",
|
||||
"delete_method": "DELETE-Methode auswählen",
|
||||
"get_method": "GET-Methode auswählen",
|
||||
"head_method": "HEAD-Methode auswählen",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Methode",
|
||||
"next_method": "Nächste Methode auswählen",
|
||||
"post_method": "POST-Methode auswählen",
|
||||
"previous_method": "Vorherige Methode auswählen",
|
||||
"put_method": "PUT-Methode auswählen",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Anfrage zurücksetzen",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "In Sammlungen speichern",
|
||||
"send_request": "Anfrage senden",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Anfrage"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Protokoll",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Ereignistyp",
|
||||
"log": "Protokoll",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Autorisierung",
|
||||
"body": "Anfragekörper",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Sammlungen",
|
||||
"documentation": "Dokumentation",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Header",
|
||||
"history": "Verlauf",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Επιλέξτε ένα αρχείο",
|
||||
"clear": "Σαφή",
|
||||
"clear_all": "Τα καθαρίζω όλα",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Συνδέω-συωδεομαι",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Ωραιοποιώ",
|
||||
"remove": "Αφαιρώ",
|
||||
"rename": "Rename",
|
||||
"restore": "Επαναφέρω",
|
||||
"save": "Αποθηκεύσετε",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Αναζήτηση",
|
||||
"share": "Μερίδιο",
|
||||
"shortcuts": "Συντομεύσεις",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Προβολέας θέατρου",
|
||||
"status": "Κατάσταση",
|
||||
"status_description": "Ελέγξτε το status της Ιστοσελίδας",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Η συλλογή μετονομάστηκε",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Αποθήκευση ως",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Επιλέξτε μια Συλλογή",
|
||||
"select_location": "Επιλέξτε τοποθεσία",
|
||||
"select_team": "Επιλέξτε μια ομάδα",
|
||||
"team_collections": "Συλλογές ομάδων"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε?",
|
||||
"remove_collection": "Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά αυτήν τη συλλογή;",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Είστε βέβαιοι ότι θέλετε να συγχρονίσετε αυτόν τον χώρο εργασίας;"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Κεφαλίδα {count}",
|
||||
"message": "Μήνυμα {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Δημιουργήστε νέο περιβάλλον",
|
||||
"created": "Το Περιβάλλον δημιουργήθηκε",
|
||||
"deleted": "Διαγραφή Περιβάλλοντος",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Επεξεργασία Περιβάλλοντος",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Καταχωρίστε ένα έγκυρο όνομα για το περιβάλλον",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "Τα Περιβάλλοντα μου",
|
||||
"name": "Name",
|
||||
"nested_overflow": "Οι 'φωλιασμένες' μεταβλητές περιβάλλοντος είναι περιορισμένες σε 10 επίπεδα",
|
||||
"new": "Νέο Περιβάλλον",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Χωρίς περιβάλλον",
|
||||
"no_environment_description": "Δέν επιλέχθηκε κάποιο περιβάλλον. Διαλέξτε τι θέλετε να κάνετε με τις παρακάτω μεταβλητές.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Επιλέξτε περιβάλλον",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Περιβάλλοντα Ομάδας",
|
||||
"title": "Περιβάλλοντα",
|
||||
"updated": "Αναβάθμιση Περιβάλλοντος",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Λίστα μεταβλητών"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Χωρίς διάρκεια",
|
||||
"no_results_found": "Δεν βρέθηκαν αντιστοιχίες",
|
||||
"page_not_found": "Αυτή η σελίδα δεν βρέθηκε",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Δεν ήταν δυνατή η εκτέλεση του σεναρίου πριν από το αίτημα",
|
||||
"something_went_wrong": "Κάτι πήγε στραβά",
|
||||
"test_script_fail": "Δεν μπορεσε να εκτελεστεί το post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Ο φάκελος μετονομάστηκε"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Μεταλλάξεις",
|
||||
"schema": "Σχήμα",
|
||||
"subscriptions": "Συνδρομές",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Συνδρομές"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Εισαγωγή συλλογών αρχείο JSON Hoppscotch Collections",
|
||||
"title": "Εισαγωγή"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Σύμπτυξη ή επέκταση Συλλογών",
|
||||
"collapse_sidebar": "Σύμπτυξη ή επέκταση του sidebar",
|
||||
"column": "Κατακόρυφη Διάταξη",
|
||||
"name": "Διάταξη",
|
||||
"row": "Οριζόντια Διάταξη"
|
||||
"row": "Οριζόντια Διάταξη",
|
||||
"zen_mode": "Λειτουργία Zen"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Φορτίο επί πληρωμή",
|
||||
"query": "Ερώτηση",
|
||||
"raw_body": "Σώμα Ακατέργαστου Αιτήματος",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Το αίτημα μετονομάστηκε",
|
||||
"run": "Τρέξιμο",
|
||||
"save": "Σώσει",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Το αίτημα αποθηκεύτηκε",
|
||||
"share": "Μερίδιο",
|
||||
"share_description": "Κοινοποίηση Hoppscotch στους φίλους σου",
|
||||
"stop": "Stop",
|
||||
"title": "Αίτηση",
|
||||
"type": "Τύπος αιτήματος",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Αυτό είναι το εμφανιζόμενο όνομά σας.",
|
||||
"background": "Ιστορικό",
|
||||
"black_mode": "Μαύρος",
|
||||
"change_font_size": "Αλλαγή μεγέθους γραμματοσειράς",
|
||||
"choose_language": "Διάλεξε γλώσσα",
|
||||
"dark_mode": "Σκοτάδι",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Επεκτάσεις",
|
||||
"extensions_use_toggle": "Χρησιμοποιήστε την επέκταση του προγράμματος περιήγησης για να στείλετε αιτήματα (εάν υπάρχουν)",
|
||||
"follow": "Ακολούθησε Μας",
|
||||
"font_size": "Μέγεθος γραμματοσειράς",
|
||||
"font_size_large": "Μεγάλο",
|
||||
"font_size_medium": "Μεσαίο",
|
||||
"font_size_small": "Μικρό",
|
||||
"interceptor": "Αναχαιτιστής",
|
||||
"interceptor_description": "Middleware μεταξύ εφαρμογής και API.",
|
||||
"language": "Γλώσσα",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Μεταβείτε στη σελίδα Ρυθμίσεις",
|
||||
"title": "Πλοήγηση"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Αντιγραφή συνδέσμου αιτήματος",
|
||||
"delete_method": "Επιλέξτε ΔΙΑΓΡΑΦΗ μεθόδου",
|
||||
"get_method": "Επιλέξτε μέθοδο GET",
|
||||
"head_method": "Επιλέξτε μέθοδο HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Μέθοδος",
|
||||
"next_method": "Επιλέξτε Επόμενη μέθοδος",
|
||||
"post_method": "Επιλέξτε μέθοδο POST",
|
||||
"previous_method": "Επιλέξτε Προηγούμενη μέθοδος",
|
||||
"put_method": "Επιλέξτε μέθοδο PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Επαναφορά αιτήματος",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Αποθήκευση στις Συλλογές",
|
||||
"send_request": "Στείλε αίτημα",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Αίτηση"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Logs",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Τύπος συμβάντος",
|
||||
"log": "Logs",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Εξουσιοδότηση",
|
||||
"body": "Σώμα",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Συλλογές",
|
||||
"documentation": "Τεκμηρίωση",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Κεφαλίδες",
|
||||
"history": "Ιστορία",
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
{
|
||||
"action": {
|
||||
"add": "Add",
|
||||
"autoscroll": "Autoscroll",
|
||||
"cancel": "Cancel",
|
||||
"choose_file": "Choose a file",
|
||||
"clear": "Clear",
|
||||
"clear_history": "Clear All History",
|
||||
"clear_all": "Clear all",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Connect",
|
||||
"connecting": "Connecting",
|
||||
"copy": "Copy",
|
||||
"create": "Create",
|
||||
"delete": "Delete",
|
||||
"disconnect": "Disconnect",
|
||||
"dismiss": "Dismiss",
|
||||
@@ -33,15 +31,14 @@
|
||||
"open_workspace": "Open workspace",
|
||||
"paste": "Paste",
|
||||
"prettify": "Prettify",
|
||||
"remove": "Remove",
|
||||
"rename": "Rename",
|
||||
"remove": "Remove",
|
||||
"restore": "Restore",
|
||||
"save": "Save",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
"scroll_to_top": "Scroll to top",
|
||||
"search": "Search",
|
||||
"send": "Send",
|
||||
"share": "Share",
|
||||
"start": "Start",
|
||||
"starting": "Starting",
|
||||
"stop": "Stop",
|
||||
@@ -57,30 +54,10 @@
|
||||
"new": "Add new",
|
||||
"star": "Add star"
|
||||
},
|
||||
"cookies": {
|
||||
"modal": {
|
||||
"new_domain_name": "New domain name",
|
||||
"set": "Set a cookie",
|
||||
"cookie_string": "Cookie string",
|
||||
"enter_cookie_string": "Enter cookie string",
|
||||
"cookie_name": "Name",
|
||||
"cookie_value": "Value",
|
||||
"cookie_path": "Path",
|
||||
"cookie_expires": "Expires",
|
||||
"managed_tab": "Managed",
|
||||
"raw_tab": "Raw",
|
||||
"interceptor_no_support": "Your currently selected interceptor does not support cookies. Select a different Interceptor and try again.",
|
||||
"empty_domains": "Domain list is empty",
|
||||
"empty_domain": "Domain is empty",
|
||||
"no_cookies_in_domain": "No cookies set for this domain"
|
||||
}
|
||||
},
|
||||
"app": {
|
||||
"chat_with_us": "Chat with us",
|
||||
"contact_us": "Contact us",
|
||||
"cookies": "Cookies",
|
||||
"copy": "Copy",
|
||||
"copy_interface_type": "Copy interface type",
|
||||
"copy_user_id": "Copy User Auth Token",
|
||||
"developer_option": "Developer options",
|
||||
"developer_option_description": "Developer tools which helps in development and maintenance of Hoppscotch.",
|
||||
@@ -92,19 +69,18 @@
|
||||
"invite": "Invite",
|
||||
"invite_description": "Hoppscotch is an open source API development ecosystem. We designed a simple and intuitive interface for creating and managing your APIs. Hoppscotch is a tool that helps you build, test, document and share your APIs.",
|
||||
"invite_your_friends": "Invite your friends",
|
||||
"social_links": "Social links",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"join_discord_community": "Join our Discord community",
|
||||
"keyboard_shortcuts": "Keyboard shortcuts",
|
||||
"name": "Hoppscotch",
|
||||
"new_version_found": "New version found. Refresh to update.",
|
||||
"open_in_hoppscotch": "Open in Hoppscotch",
|
||||
"options": "Options",
|
||||
"proxy_privacy_policy": "Proxy privacy policy",
|
||||
"reload": "Reload",
|
||||
"search": "Search",
|
||||
"share": "Share",
|
||||
"shortcuts": "Shortcuts",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Spotlight",
|
||||
"status": "Status",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -136,34 +112,18 @@
|
||||
},
|
||||
"authorization": {
|
||||
"generate_token": "Generate Token",
|
||||
"graphql_headers": "Authorization Headers are sent as part of the payload to connection_init",
|
||||
"include_in_url": "Include in URL",
|
||||
"learn": "Learn how",
|
||||
"pass_key_by": "Pass by",
|
||||
"password": "Password",
|
||||
"token": "Token",
|
||||
"type": "Authorization Type",
|
||||
"username": "Username",
|
||||
"oauth": {
|
||||
"token_generation_oidc_discovery_failed": "Failure on token generation: OpenID Connect Discovery Failed",
|
||||
"something_went_wrong_on_token_generation": "Something went wrong on token generation",
|
||||
"redirect_auth_server_returned_error": "Auth Server returned an error state",
|
||||
"redirect_no_auth_code": "No Authorization Code present in the redirect",
|
||||
"redirect_invalid_state": "Invalid State value present in the redirect",
|
||||
"redirect_no_token_endpoint": "No Token Endpoint Defined",
|
||||
"redirect_no_client_id": "No Client ID defined",
|
||||
"redirect_no_client_secret": "No Client Secret Defined",
|
||||
"redirect_no_code_verifier": "No Code Verifier Defined",
|
||||
"redirect_auth_token_request_failed": "Request to get the auth token failed",
|
||||
"redirect_auth_token_request_invalid_response": "Invalid Response from the Token Endpoint when requesting for an auth token",
|
||||
"something_went_wrong_on_oauth_redirect": "Something went wrong during OAuth Redirect"
|
||||
}
|
||||
"username": "Username"
|
||||
},
|
||||
"collection": {
|
||||
"created": "Collection created",
|
||||
"different_parent": "Cannot reorder collection with different parent",
|
||||
"edit": "Edit Collection",
|
||||
"import_or_create": "Import or create a collection",
|
||||
"invalid_name": "Please provide a name for the collection",
|
||||
"invalid_root_move": "Collection already in the root",
|
||||
"moved": "Moved Successfully",
|
||||
@@ -182,8 +142,6 @@
|
||||
"team_collections": "Team Collections"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Are you sure you want to logout?",
|
||||
"remove_collection": "Are you sure you want to permanently delete this collection?",
|
||||
@@ -191,17 +149,18 @@
|
||||
"remove_folder": "Are you sure you want to permanently delete this folder?",
|
||||
"remove_history": "Are you sure you want to permanently delete all history?",
|
||||
"remove_request": "Are you sure you want to permanently delete this request?",
|
||||
"remove_shared_request": "Are you sure you want to permanently delete this shared request?",
|
||||
"remove_team": "Are you sure you want to delete this team?",
|
||||
"remove_telemetry": "Are you sure you want to opt-out of Telemetry?",
|
||||
"request_change": "Are you sure you want to discard current request, unsaved changes will be lost.",
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"sync": "Would you like to restore your workspace from cloud? This will discard your local progress."
|
||||
},
|
||||
"context_menu": {
|
||||
"set_environment_variable": "Set as variable",
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
"open_request_in_new_tab": "Open request in new tab"
|
||||
},
|
||||
"count": {
|
||||
"header": "Header {count}",
|
||||
@@ -233,8 +192,7 @@
|
||||
"profile": "Login to view your profile",
|
||||
"protocols": "Protocols are empty",
|
||||
"schema": "Connect to a GraphQL endpoint to view schema",
|
||||
"shared_requests_logout": "Login to view your shared requests or create a new one",
|
||||
"shared_requests": "Shared requests are empty",
|
||||
"shortcodes": "Shortcodes are empty",
|
||||
"subscription": "Subscriptions are empty",
|
||||
"team_name": "Team name empty",
|
||||
"teams": "You don't belong to any teams",
|
||||
@@ -248,10 +206,9 @@
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Edit Environment",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"empty_variables": "No variables",
|
||||
"global_variables": "Global variables",
|
||||
"import_or_create": "Import or create a environment",
|
||||
"invalid_name": "Please provide a name for the environment",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
@@ -274,13 +231,9 @@
|
||||
"variable": "Variable",
|
||||
"variable_list": "Variable List"
|
||||
},
|
||||
"graphql_collections": {
|
||||
"title": "GraphQL Collections"
|
||||
},
|
||||
"error": {
|
||||
"browser_support_sse": "This browser doesn't seems to have Server Sent Events support.",
|
||||
"check_console_details": "Check console log for details.",
|
||||
"check_how_to_add_origin": "Check how you can add an origin",
|
||||
"curl_invalid_format": "cURL is not formatted properly",
|
||||
"danger_zone": "Danger zone",
|
||||
"delete_account": "Your account is currently an owner in these teams:",
|
||||
@@ -296,12 +249,9 @@
|
||||
"json_prettify_invalid_body": "Couldn't prettify an invalid body, solve json syntax errors and try again",
|
||||
"network_error": "There seems to be a network error. Please try again.",
|
||||
"network_fail": "Could not send request",
|
||||
"no_collections_to_export": "No collections to export. Please create a collection to get started.",
|
||||
"no_duration": "No duration",
|
||||
"no_environments_to_export": "No environments to export. Please create an environment to get started.",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"please_install_extension": "Please install the extension and add origin to the extension.",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Could not execute pre-request script",
|
||||
"something_went_wrong": "Something went wrong",
|
||||
@@ -312,8 +262,7 @@
|
||||
"create_secret_gist": "Create secret Gist",
|
||||
"gist_created": "Gist created",
|
||||
"require_github": "Login with GitHub to create secret gist",
|
||||
"title": "Export",
|
||||
"failed": "Something went wrong while exporting"
|
||||
"title": "Export"
|
||||
},
|
||||
"filter": {
|
||||
"all": "All",
|
||||
@@ -329,13 +278,13 @@
|
||||
"renamed": "Folder renamed"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutations",
|
||||
"schema": "Schema",
|
||||
"subscriptions": "Subscriptions",
|
||||
"switch_connection": "Switch connection"
|
||||
"switch_connection": "Switch connection",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"subscriptions": "Subscriptions"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -350,8 +299,8 @@
|
||||
"authorization": "The authorization header will be automatically generated when you send the request.",
|
||||
"generate_documentation_first": "Generate documentation first",
|
||||
"network_fail": "Unable to reach the API endpoint. Check your network connection or select a different Interceptor and try again.",
|
||||
"offline": "You're using Hoppscotch offline. Updates will sync when you're online, based on workspace settings.",
|
||||
"offline_short": "You're using Hoppscotch offline.",
|
||||
"offline": "You seem to be offline. Data in this workspace might not be up to date.",
|
||||
"offline_short": "You seem to be offline.",
|
||||
"post_request_tests": "Test scripts are written in JavaScript, and are run after the response is received.",
|
||||
"pre_request_script": "Pre-request scripts are written in JavaScript, and are run before the request is sent.",
|
||||
"script_fail": "It seems there is a glitch in the pre-request script. Check the error below and fix the script accordingly.",
|
||||
@@ -364,6 +313,30 @@
|
||||
"preview": "Hide Preview",
|
||||
"sidebar": "Collapse sidebar"
|
||||
},
|
||||
"inspections": {
|
||||
"title": "Inspector",
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"network_error": "Please check your network connection.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request."
|
||||
},
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extention_not_enabled": "Extension not enabled.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list."
|
||||
}
|
||||
},
|
||||
"import": {
|
||||
"collections": "Import collections",
|
||||
"curl": "Import cURL",
|
||||
@@ -380,7 +353,6 @@
|
||||
"from_openapi_description": "Import from OpenAPI specification file (YML/JSON)",
|
||||
"from_postman": "Import from Postman",
|
||||
"from_postman_description": "Import from Postman collection",
|
||||
"from_file": "Import from File",
|
||||
"from_url": "Import from URL",
|
||||
"gist_url": "Enter Gist URL",
|
||||
"import_from_url_invalid_fetch": "Couldn't get data from the url",
|
||||
@@ -388,53 +360,21 @@
|
||||
"import_from_url_invalid_type": "Unsupported type. accepted values are 'hoppscotch', 'openapi', 'postman', 'insomnia'",
|
||||
"import_from_url_success": "Collections Imported",
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Import",
|
||||
"hoppscotch_environment": "Hoppscotch Environment",
|
||||
"hoppscotch_environment_description": "Import Hoppscotch Environment JSON file",
|
||||
"postman_environment": "Postman Environment",
|
||||
"postman_environment_description": "Import Postman Environment JSON file",
|
||||
"environments_from_gist": "Import From Gist",
|
||||
"environments_from_gist_description": "Import Hoppscotch Environments From Gist",
|
||||
"gql_collections_from_gist_description": "Import GraphQL Collections From Gist"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
"title": "Import"
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "Zen mode"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
"collections": "Collections",
|
||||
"confirm": "Confirm",
|
||||
"customize_request": "Customize Request",
|
||||
"edit_request": "Edit Request",
|
||||
"share_request": "Share Request",
|
||||
"import_export": "Import / Export"
|
||||
},
|
||||
"mqtt": {
|
||||
@@ -510,14 +450,13 @@
|
||||
"structured": "Structured",
|
||||
"text": "Text"
|
||||
},
|
||||
"copy_link": "Copy link",
|
||||
"different_collection": "Cannot reorder requests from different collections",
|
||||
"duplicated": "Request duplicated",
|
||||
"duration": "Duration",
|
||||
"enter_curl": "Enter cURL command",
|
||||
"generate_code": "Generate code",
|
||||
"generated_code": "Generated code",
|
||||
"go_to_authorization_tab": "Go to Authorization tab",
|
||||
"go_to_body_tab": "Go to Body tab",
|
||||
"header_list": "Header List",
|
||||
"invalid_name": "Please provide a name for the request",
|
||||
"method": "Method",
|
||||
@@ -537,13 +476,12 @@
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Request renamed",
|
||||
"run": "Run",
|
||||
"stop": "Stop",
|
||||
"save": "Save",
|
||||
"save_as": "Save as",
|
||||
"saved": "Request saved",
|
||||
"share": "Share",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"share_request": "Share Request",
|
||||
"stop": "Stop",
|
||||
"title": "Request",
|
||||
"type": "Request type",
|
||||
"url": "URL",
|
||||
@@ -578,8 +516,9 @@
|
||||
"account_name_description": "This is your display name.",
|
||||
"background": "Background",
|
||||
"black_mode": "Black",
|
||||
"choose_language": "Choose language",
|
||||
"dark_mode": "Dark",
|
||||
"change_font_size": "Change font size",
|
||||
"choose_language": "Choose language",
|
||||
"delete_account": "Delete account",
|
||||
"delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.",
|
||||
"expand_navigation": "Expand navigation",
|
||||
@@ -590,6 +529,10 @@
|
||||
"extensions": "Browser extension",
|
||||
"extensions_use_toggle": "Use the browser extension to send requests (if present)",
|
||||
"follow": "Follow us",
|
||||
"font_size": "Font size",
|
||||
"font_size_large": "Large",
|
||||
"font_size_medium": "Medium",
|
||||
"font_size_small": "Small",
|
||||
"interceptor": "Interceptor",
|
||||
"interceptor_description": "Middleware between application and APIs.",
|
||||
"language": "Language",
|
||||
@@ -620,34 +563,16 @@
|
||||
"use_experimental_url_bar": "Use experimental URL bar with environment highlighting",
|
||||
"user": "User",
|
||||
"verified_email": "Verified email",
|
||||
"additional": "Additional Settings",
|
||||
"verify_email": "Verify email"
|
||||
},
|
||||
"shared_requests": {
|
||||
"button": "Button",
|
||||
"button_info": "Create a 'Run in Hoppscotch' button for your website, blog or a README.",
|
||||
"customize": "Customize",
|
||||
"creating_widget": "Creating widget",
|
||||
"copy_html": "Copy HTML",
|
||||
"copy_link": "Copy Link",
|
||||
"copy_markdown": "Copy Markdown",
|
||||
"deleted": "Shared request deleted",
|
||||
"description": "Select a widget, you can change and customize this later",
|
||||
"embed": "Embed",
|
||||
"embed_info": "Add a mini 'Hoppscotch API Playground' to your website, blog or documentation.",
|
||||
"link": "Link",
|
||||
"link_info": "Create a shareable link to share with anyone on the internet with view access.",
|
||||
"modified": "Shared request modified",
|
||||
"not_found": "Shared request not found",
|
||||
"open_new_tab": "Open in new tab",
|
||||
"preview": "Preview",
|
||||
"run_in_hoppscotch": "Run in Hoppscotch",
|
||||
"theme": {
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System",
|
||||
"title": "Theme"
|
||||
}
|
||||
"shortcodes": {
|
||||
"actions": "Actions",
|
||||
"created_on": "Created on",
|
||||
"deleted": "Shortcode deleted",
|
||||
"method": "Method",
|
||||
"not_found": "Shortcode not found",
|
||||
"short_code": "Short code",
|
||||
"url": "URL"
|
||||
},
|
||||
"shortcut": {
|
||||
"general": {
|
||||
@@ -657,6 +582,10 @@
|
||||
"show_all": "Keyboard shortcuts",
|
||||
"title": "General"
|
||||
},
|
||||
"others": {
|
||||
"title": "Others",
|
||||
"prettify": "Prettify Editor's Content"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite people to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
@@ -672,27 +601,23 @@
|
||||
"settings": "Go to Settings page",
|
||||
"title": "Navigation"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Copy Request Link",
|
||||
"delete_method": "Select DELETE method",
|
||||
"get_method": "Select GET method",
|
||||
"head_method": "Select HEAD method",
|
||||
"rename": "Rename Request",
|
||||
"import_curl": "Import cURL",
|
||||
"show_code": "Generate code snippet",
|
||||
"method": "Method",
|
||||
"next_method": "Select Next method",
|
||||
"post_method": "Select POST method",
|
||||
"previous_method": "Select Previous method",
|
||||
"put_method": "Select PUT method",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Reset Request",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Save to Collections",
|
||||
"send_request": "Send Request",
|
||||
"show_code": "Generate code snippet",
|
||||
"share_request": "Share Request",
|
||||
"save_request": "Save Request",
|
||||
"title": "Request"
|
||||
},
|
||||
"response": {
|
||||
@@ -723,82 +648,87 @@
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"chat": "Chat with support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"open_github": "Open GitHub repository",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"select_method": "Select method",
|
||||
"save_as_new": "Save as new request",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
"environments": {
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"edit": "Edit current environment",
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"title": "Environments"
|
||||
},
|
||||
"workspace": {
|
||||
"new": "Create new team",
|
||||
"edit": "Edit current team",
|
||||
"delete": "Delete current team",
|
||||
"invite": "Invite people to team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
},
|
||||
"tab": {
|
||||
"duplicate": "Duplicate current tab",
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"section": {
|
||||
"user": "User",
|
||||
"theme": "Theme",
|
||||
"interface": "Interface",
|
||||
"interceptor": "Interceptor"
|
||||
},
|
||||
"change_language": "Change Language",
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
},
|
||||
"font": {
|
||||
"size_sm": "Small",
|
||||
"size_md": "Medium",
|
||||
"size_lg": "Large"
|
||||
},
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
@@ -817,7 +747,6 @@
|
||||
"connection_failed": "Connection failed",
|
||||
"connection_lost": "Connection lost",
|
||||
"copied_to_clipboard": "Copied to clipboard",
|
||||
"copied_interface_to_clipboard": "Copied {language} interface type to clipboard",
|
||||
"deleted": "Deleted",
|
||||
"deprecated": "DEPRECATED",
|
||||
"disabled": "Disabled",
|
||||
@@ -825,11 +754,9 @@
|
||||
"disconnected_from": "Disconnected from {name}",
|
||||
"docs_generated": "Documentation generated",
|
||||
"download_started": "Download started",
|
||||
"download_failed": "Download failed",
|
||||
"enabled": "Enabled",
|
||||
"file_imported": "File imported",
|
||||
"finished_in": "Finished in {duration} ms",
|
||||
"hide": "Hide",
|
||||
"history_deleted": "History deleted",
|
||||
"linewrap": "Wrap lines",
|
||||
"loading": "Loading...",
|
||||
@@ -840,7 +767,6 @@
|
||||
"published_error": "Something went wrong while publishing msg: {topic} to topic: {message}",
|
||||
"published_message": "Published message: {message} to topic: {topic}",
|
||||
"reconnection_error": "Failed to reconnect",
|
||||
"show": "Show",
|
||||
"subscribed_failed": "Failed to subscribe to topic: {topic}",
|
||||
"subscribed_success": "Successfully subscribed to topic: {topic}",
|
||||
"unsubscribed_failed": "Failed to unsubscribe from topic: {topic}",
|
||||
@@ -850,7 +776,7 @@
|
||||
"support": {
|
||||
"changelog": "Read more about latest releases",
|
||||
"chat": "Questions? Chat with us!",
|
||||
"community": "Ask questions and help others",
|
||||
"community": "Ask questions and help others",
|
||||
"documentation": "Read more about Hoppscotch",
|
||||
"forum": "Ask questions and get answers",
|
||||
"github": "Follow us on Github",
|
||||
@@ -876,7 +802,6 @@
|
||||
"queries": "Queries",
|
||||
"query": "Query",
|
||||
"schema": "Schema",
|
||||
"shared_requests": "Shared Requests",
|
||||
"socketio": "Socket.IO",
|
||||
"sse": "SSE",
|
||||
"tests": "Tests",
|
||||
@@ -923,14 +848,12 @@
|
||||
"new": "New Team",
|
||||
"new_created": "New team created",
|
||||
"new_name": "My New Team",
|
||||
"no_access": "You do not have edit access to this team",
|
||||
"no_access": "You do not have edit access to these collections",
|
||||
"no_invite_found": "Invitation not found. Contact your team owner.",
|
||||
"no_request_found": "Request not found.",
|
||||
"not_found": "Team not found. Contact your team owner.",
|
||||
"not_valid_viewer": "You are not a valid viewer. Contact your team owner.",
|
||||
"parent_coll_move": "Cannot move collection to a child collection",
|
||||
"success_invites": "Success invites",
|
||||
"failed_invites": "Failed invites",
|
||||
"pending_invites": "Pending invites",
|
||||
"permissions": "Permissions",
|
||||
"same_target_destination": "Same target and destination",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Seleccionar archivo",
|
||||
"clear": "Limpiar",
|
||||
"clear_all": "Limpiar todo",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Cerrar",
|
||||
"connect": "Conectar",
|
||||
"connecting": "Conectando",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Pegar",
|
||||
"prettify": "Embellecer",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Rename",
|
||||
"restore": "Restaurar",
|
||||
"save": "Guardar",
|
||||
"scroll_to_bottom": "Desplazar hacia abajo",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Buscar",
|
||||
"share": "Compartir",
|
||||
"shortcuts": "Atajos",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Destacar",
|
||||
"status": "Estado",
|
||||
"status_description": "Comprobar el estado del sitio web",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Colección renombrada",
|
||||
"request_in_use": "Solicitud en uso",
|
||||
"save_as": "Guardar como",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Seleccionar colección",
|
||||
"select_location": "Seleccionar ubicación",
|
||||
"select_team": "Seleccionar equipo",
|
||||
"team_collections": "Colecciones de equipos"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "¿Estás seguro de que quieres dejar este equipo?",
|
||||
"logout": "¿Estás seguro de que deseas cerrar la sesión?",
|
||||
"remove_collection": "¿Estás seguro de que deseas eliminar esta colección de forma permanente?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "¿Deseas guardar los cambios realizados en esta pestaña?",
|
||||
"sync": "¿Estás seguro de que deseas sincronizar este espacio de trabajo?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Encabezado {count}",
|
||||
"message": "Mensaje {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Crear un nuevo entorno",
|
||||
"created": "Environment created",
|
||||
"deleted": "Eliminar el entorno",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Editar entorno",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Proporciona un nombre válido para el entorno.",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "Mis entornos",
|
||||
"name": "Name",
|
||||
"nested_overflow": "las variables de entorno anidadas están limitadas a 10 niveles",
|
||||
"new": "Nuevo entorno",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Sin entorno",
|
||||
"no_environment_description": "No se ha seleccionado ningún entorno. Elije qué hacer con las siguientes variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Seleccionar entorno",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Entornos de trabajo en equipo",
|
||||
"title": "Entornos",
|
||||
"updated": "Entorno actualizado",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Lista de variables"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Sin duración",
|
||||
"no_results_found": "No se han encontrado coincidencias",
|
||||
"page_not_found": "No se ha podido encontrar esta página",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "No se pudo ejecutar el script de solicitud previa",
|
||||
"something_went_wrong": "Algo salió mal",
|
||||
"test_script_fail": "No se ha podido ejecutar la secuencia de comandos posterior a la solicitud"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Carpeta renombrada"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutaciones",
|
||||
"schema": "Esquema",
|
||||
"subscriptions": "Suscripciones",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Suscripciones"
|
||||
},
|
||||
"group": {
|
||||
"time": "Tiempo",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Importar colecciones desde un archivo JSON de colecciones de Hoppscotch",
|
||||
"title": "Importar"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Contraer o expandir colecciones",
|
||||
"collapse_sidebar": "Contraer o expandir la barra lateral",
|
||||
"column": "Disposición vertical",
|
||||
"name": "Diseño",
|
||||
"row": "Disposición horizontal"
|
||||
"row": "Disposición horizontal",
|
||||
"zen_mode": "Modo zen"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "Tienes cambios sin guardar",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Carga útil",
|
||||
"query": "Consulta",
|
||||
"raw_body": "Cuerpo de solicitud sin procesar",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Solicitud renombrada",
|
||||
"run": "Ejecutar",
|
||||
"save": "Guardar",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Solicitud guardada",
|
||||
"share": "Compartir",
|
||||
"share_description": "Comparte Hoppscotch con tus amigos",
|
||||
"stop": "Stop",
|
||||
"title": "Solicitud",
|
||||
"type": "Tipo de solicitud",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Este es tu nombre para mostrar.",
|
||||
"background": "Fondo",
|
||||
"black_mode": "Negro",
|
||||
"change_font_size": "Cambiar tamaño de fuente",
|
||||
"choose_language": "Elegir idioma",
|
||||
"dark_mode": "Oscuro",
|
||||
"delete_account": "Eliminar cuenta",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Extensiones",
|
||||
"extensions_use_toggle": "Utilizar la extensión del navegador para enviar peticiones (si está presente)",
|
||||
"follow": "Síguenos",
|
||||
"font_size": "Tamaño de fuente",
|
||||
"font_size_large": "Grande",
|
||||
"font_size_medium": "Mediano",
|
||||
"font_size_small": "Pequeño",
|
||||
"interceptor": "Interceptador",
|
||||
"interceptor_description": "Middleware entre la aplicación y las APIs.",
|
||||
"language": "Idioma",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Ir a la página de configuración",
|
||||
"title": "Navegación"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Copiar enlace de solicitud",
|
||||
"delete_method": "Seleccionar método DELETE",
|
||||
"get_method": "Seleccionar método GET",
|
||||
"head_method": "Seleccionar método HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Método",
|
||||
"next_method": "Seleccionar método siguiente",
|
||||
"post_method": "Seleccionar método POST",
|
||||
"previous_method": "Seleccionar método anterior",
|
||||
"put_method": "Seleccionar método PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Solicitud de reinicio",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Guardar en colecciones",
|
||||
"send_request": "Enviar solicitud",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Solicitud"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Registro",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Tipo de evento",
|
||||
"log": "Registro",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Autorización",
|
||||
"body": "Cuerpo",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Colecciones",
|
||||
"documentation": "Documentación",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Encabezados",
|
||||
"history": "Historial",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Valitse tiedosto",
|
||||
"clear": "Asia selvä",
|
||||
"clear_all": "Tyhjennä",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Kytkeä",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Koristella",
|
||||
"remove": "Poista",
|
||||
"rename": "Rename",
|
||||
"restore": "Palauttaa",
|
||||
"save": "Tallentaa",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Hae",
|
||||
"share": "Jaa",
|
||||
"shortcuts": "Pikanäppäimet",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Valokeila",
|
||||
"status": "Tila",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Kokoelma nimetty uudelleen",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Tallenna nimellä",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Valitse kokoelma",
|
||||
"select_location": "Valitse sijainti",
|
||||
"select_team": "Valitse joukkue",
|
||||
"team_collections": "Joukkuekokoelmat"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Haluatko varmasti kirjautua ulos?",
|
||||
"remove_collection": "Haluatko varmasti poistaa tämän kokoelman pysyvästi?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Haluatko varmasti synkronoida tämän työtilan?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Otsikko {count}",
|
||||
"message": "Viesti {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Luo uusi ympäristö",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Muokkaa ympäristöä",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Anna ympäristölle kelvollinen nimi",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "Uusi ympäristö",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Ei ympäristöä",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Valitse ympäristö",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Ympäristöt",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Muuttujien luettelo"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Ei kestoa",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Ennakkopyyntöskriptiä ei voitu suorittaa",
|
||||
"something_went_wrong": "Jotain meni pieleen",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Kansio nimettiin uudelleen"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutaatiot",
|
||||
"schema": "Kaavio",
|
||||
"subscriptions": "Tilaukset",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Tilaukset"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Tuonti"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "Zen -tila"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Hyötykuorma",
|
||||
"query": "Kysely",
|
||||
"raw_body": "Raaka pyynnön runko",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Pyyntö nimettiin uudelleen",
|
||||
"run": "Juosta",
|
||||
"save": "Tallentaa",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Pyyntö tallennettu",
|
||||
"share": "Jaa",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "Pyyntö",
|
||||
"type": "Pyynnön tyyppi",
|
||||
"url": "URL -osoite",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Tämä on näyttönimesi.",
|
||||
"background": "Tausta",
|
||||
"black_mode": "Musta",
|
||||
"change_font_size": "Vaihda fontin kokoa",
|
||||
"choose_language": "Valitse kieli",
|
||||
"dark_mode": "Tumma",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Laajennukset",
|
||||
"extensions_use_toggle": "Käytä pyyntöjen lähettämiseen selainlaajennusta (jos sellainen on)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Fonttikoko",
|
||||
"font_size_large": "Suuri",
|
||||
"font_size_medium": "Keskikokoinen",
|
||||
"font_size_small": "Pieni",
|
||||
"interceptor": "Torjuntahävittäjä",
|
||||
"interceptor_description": "Sovellusliittymien ja sovellusliittymien välinen väliohjelmisto.",
|
||||
"language": "Kieli",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Siirry Asetukset -sivulle",
|
||||
"title": "Navigointi"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Kopioi pyyntölinkki",
|
||||
"delete_method": "Valitse POISTA menetelmä",
|
||||
"get_method": "Valitse GET -menetelmä",
|
||||
"head_method": "Valitse HEAD -menetelmä",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Menetelmä",
|
||||
"next_method": "Valitse Seuraava menetelmä",
|
||||
"post_method": "Valitse POST -menetelmä",
|
||||
"previous_method": "Valitse Edellinen menetelmä",
|
||||
"put_method": "Valitse PUT -menetelmä",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Nollaa pyyntö",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Tallenna kokoelmiin",
|
||||
"send_request": "Lähetä pyyntö",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Pyyntö"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Hirsi",
|
||||
"url": "URL -osoite"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Tapahtumatyyppi",
|
||||
"log": "Hirsi",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Valtuutus",
|
||||
"body": "Runko",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Kokoelmat",
|
||||
"documentation": "Dokumentointi",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Otsikot",
|
||||
"history": "Historia",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Choisir un fichier",
|
||||
"clear": "Effacer",
|
||||
"clear_all": "Tout effacer",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Connecter",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Coller",
|
||||
"prettify": "Formater",
|
||||
"remove": "Supprimer",
|
||||
"rename": "Rename",
|
||||
"restore": "Restaurer",
|
||||
"save": "Sauvegarder",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Chercher",
|
||||
"share": "Partager",
|
||||
"shortcuts": "Raccourcis",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Projecteur",
|
||||
"status": "Statut",
|
||||
"status_description": "Vérifier l'état du site web",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Collection renommée",
|
||||
"request_in_use": "Demande en cours d'utilisation",
|
||||
"save_as": "Enregistrer sous",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Sélectionnez une collection",
|
||||
"select_location": "Sélectionnez l'emplacement",
|
||||
"select_team": "Sélectionnez une équipe",
|
||||
"team_collections": "Collections de l'équipe"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Êtes-vous sûr de vouloir vous déconnecter?",
|
||||
"remove_collection": "Voulez-vous vraiment supprimer définitivement cette collection ?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Voulez-vous vraiment synchroniser cet espace de travail ?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "En-tête {count}",
|
||||
"message": "Message {compte}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Créer un nouvel environnement",
|
||||
"created": "Environnement créé",
|
||||
"deleted": "Environnement supprimé",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Modifier l'environnement",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Veuillez fournir un nom valide pour l'environnement",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "les variables d'environnement imbriquées sont limitées à 10 niveaux",
|
||||
"new": "Nouvel environnement",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Pas d'environnement",
|
||||
"no_environment_description": "Aucun environnement n'a été sélectionné. Choisissez ce qu'il faut faire avec les variables suivantes.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Sélectionnez l'environnement",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Environnements",
|
||||
"updated": "Mise à jour de l'environnement",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Liste des variables"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Pas de durée",
|
||||
"no_results_found": "Aucune correspondance trouvée",
|
||||
"page_not_found": "Cette page n'a pas pu être trouvée",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Impossible d'exécuter le script de pré-requête",
|
||||
"something_went_wrong": "Quelque chose s'est mal passé",
|
||||
"test_script_fail": "Impossible d'exécuter le script post-requête"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Dossier renommé"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutations",
|
||||
"schema": "Schéma",
|
||||
"subscriptions": "Abonnements",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Abonnements"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Importer des collections depuis un fichier JSON Hoppscotch",
|
||||
"title": "Importer"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Réduire ou développer les collections",
|
||||
"collapse_sidebar": "Réduire ou développer la barre latérale",
|
||||
"column": "Disposition verticale",
|
||||
"name": "Disposition",
|
||||
"row": "Disposition horizontale"
|
||||
"row": "Disposition horizontale",
|
||||
"zen_mode": "Mode Zen"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Charge utile",
|
||||
"query": "Requête",
|
||||
"raw_body": "Corps de requête brut",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Requête renommée",
|
||||
"run": "Lancer",
|
||||
"save": "Sauvegarder",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Requête enregistrée",
|
||||
"share": "Partager",
|
||||
"share_description": "Partagez Hoppscotch avec vos amis",
|
||||
"stop": "Stop",
|
||||
"title": "Requête",
|
||||
"type": "Type de requête",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Ceci est votre nom d'affichage.",
|
||||
"background": "Fond",
|
||||
"black_mode": "Noir",
|
||||
"change_font_size": "Changer la taille de la police",
|
||||
"choose_language": "Choisissez la langue",
|
||||
"dark_mode": "Sombre",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Extensions",
|
||||
"extensions_use_toggle": "Utilisez l'extension de navigateur pour envoyer des requêtes (le cas échéant)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Taille de police",
|
||||
"font_size_large": "Grande",
|
||||
"font_size_medium": "Moyenne",
|
||||
"font_size_small": "Petite",
|
||||
"interceptor": "Intercepteur",
|
||||
"interceptor_description": "Middleware entre l'application et les API.",
|
||||
"language": "Langue",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Aller à la page Paramètres",
|
||||
"title": "Navigation"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Copier le lien de requête",
|
||||
"delete_method": "Sélectionnez la méthode DELETE",
|
||||
"get_method": "Sélectionnez la méthode GET",
|
||||
"head_method": "Sélectionnez la méthode HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Méthode",
|
||||
"next_method": "Sélectionnez la méthode suivante",
|
||||
"post_method": "Sélectionnez la méthode POST",
|
||||
"previous_method": "Sélectionnez la méthode précédente",
|
||||
"put_method": "Sélectionnez la méthode PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Réinitialiser la requête",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Enregistrer dans les collections",
|
||||
"send_request": "Envoyer la requête",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Requête"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Infos",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Type d'événement",
|
||||
"log": "Infos",
|
||||
@@ -727,7 +589,7 @@
|
||||
},
|
||||
"state": {
|
||||
"bulk_mode": "Modification groupée",
|
||||
"bulk_mode_placeholder": "Les entrées sont séparées par une nouvelle ligne\nLes clés et les valeurs sont séparées par :\nAjoutez # à n'importe quelle ligne que vous souhaitez ajouter mais garder désactivée",
|
||||
"bulk_mode_placeholder": "Les entrées sont séparées par une nouvelle ligne\nLes clés et les valeurs sont séparées par :\nAjoutez # à n'importe quelle ligne que vous souhaitez ajouter mais garder désactivée",
|
||||
"cleared": "Effacé",
|
||||
"connected": "Connecté",
|
||||
"connected_to": "Connecté à {nom}",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Autorisation",
|
||||
"body": "Corps",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Collections",
|
||||
"documentation": "Documentation",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "En-têtes",
|
||||
"history": "Histoire",
|
||||
@@ -832,7 +691,7 @@
|
||||
"member_role_updated": "Rôles des utilisateurs mis à jour",
|
||||
"members": "Membres",
|
||||
"more_members": "+{count} more",
|
||||
"name_length_insufficient": "Le nom de l'équipe doit comporter au moins 6 caractères",
|
||||
"name_length_insufficient": "Le nom de l'équipe doit comporter au moins 6 caractères",
|
||||
"name_updated": "Nom de l'équipe mis à jour",
|
||||
"new": "Nouvelle équipe",
|
||||
"new_created": "Nouvelle équipe créée",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "בחר קובץ",
|
||||
"clear": "ברור",
|
||||
"clear_all": "נקה הכל",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "לְחַבֵּר",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "לְיַפּוֹת",
|
||||
"remove": "לְהַסִיר",
|
||||
"rename": "Rename",
|
||||
"restore": "לשחזר",
|
||||
"save": "להציל",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "לחפש",
|
||||
"share": "לַחֲלוֹק",
|
||||
"shortcuts": "קיצורי דרך",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "זַרקוֹר",
|
||||
"status": "סטָטוּס",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "שם האוסף שונה",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "שמור כ",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "בחר אוסף",
|
||||
"select_location": "תבחר מיקום",
|
||||
"select_team": "בחר צוות",
|
||||
"team_collections": "אוספי צוות"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "האם אתה בטוח שאתה רוצה להתנתק?",
|
||||
"remove_collection": "האם אתה בטוח שברצונך למחוק את האוסף הזה לצמיתות?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "האם אתה בטוח שברצונך לסנכרן את סביבת העבודה הזו?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "כותרת {count}",
|
||||
"message": "הודעה {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "צור סביבה חדשה",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "ערוך את הסביבה",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "אנא ספק שם חוקי לסביבה",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "סביבה חדשה",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "אין סביבה",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "בחר סביבה",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "סביבות",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "רשימת משתנים"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "אין משך זמן",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "לא ניתן להפעיל סקריפט של בקשה מראש",
|
||||
"something_went_wrong": "משהו השתבש",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "שם התיקייה שונה"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "מוטציות",
|
||||
"schema": "סכֵימָה",
|
||||
"subscriptions": "מנויים",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "מנויים"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "יְבוּא"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "מצב זן"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "מטען",
|
||||
"query": "שאילתא",
|
||||
"raw_body": "גוף בקשה גולמית",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "שם הבקשה שונה",
|
||||
"run": "לָרוּץ",
|
||||
"save": "להציל",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "הבקשה נשמרה",
|
||||
"share": "לַחֲלוֹק",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "בַּקָשָׁה",
|
||||
"type": "סוג בקשה",
|
||||
"url": "כתובת URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "זהו שם התצוגה שלך.",
|
||||
"background": "רקע כללי",
|
||||
"black_mode": "שָׁחוֹר",
|
||||
"change_font_size": "שנה גודל פונט",
|
||||
"choose_language": "בחר שפה",
|
||||
"dark_mode": "אפל",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "הרחבות",
|
||||
"extensions_use_toggle": "השתמש בתוסף הדפדפן כדי לשלוח בקשות (אם קיימות)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "גודל גופן",
|
||||
"font_size_large": "גָדוֹל",
|
||||
"font_size_medium": "בינוני",
|
||||
"font_size_small": "קָטָן",
|
||||
"interceptor": "מיירט",
|
||||
"interceptor_description": "תוכנת ביניים בין יישום לממשקי API.",
|
||||
"language": "שפה",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "עבור אל דף ההגדרות",
|
||||
"title": "ניווט"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "העתק קישור לבקשה",
|
||||
"delete_method": "בחר שיטת DELETE",
|
||||
"get_method": "בחר שיטת GET",
|
||||
"head_method": "בחר שיטת HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "שיטה",
|
||||
"next_method": "בחר בשיטה הבאה",
|
||||
"post_method": "בחר שיטת POST",
|
||||
"previous_method": "בחר שיטה קודמת",
|
||||
"put_method": "בחר שיטת PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "איפוס הבקשה",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "שמור באוספים",
|
||||
"send_request": "שלח בקשה",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "בַּקָשָׁה"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "עֵץ",
|
||||
"url": "כתובת URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "סוג אירוע",
|
||||
"log": "עֵץ",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "הרשאה",
|
||||
"body": "גוּף",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "אוספים",
|
||||
"documentation": "תיעוד",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "כותרות",
|
||||
"history": "הִיסטוֹרִיָה",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "फ़ाइल चुनें",
|
||||
"clear": "साफ़",
|
||||
"clear_all": "सभी साफ करें",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "बंद करे",
|
||||
"connect": "कनेक्ट करें",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "पेस्ट",
|
||||
"prettify": "सुंदर करे",
|
||||
"remove": "हटाओ",
|
||||
"rename": "Rename",
|
||||
"restore": "पुनर्स्थापित करें",
|
||||
"save": "बचाएं",
|
||||
"scroll_to_bottom": "नीचे स्क्रॉल करें",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "खोज",
|
||||
"share": "बाँट",
|
||||
"shortcuts": "शॉर्टकट",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "स्पॉटलाइट",
|
||||
"status": "स्थिति",
|
||||
"status_description": "वेबसाइट की स्थिति जांचें",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "संग्रह का नाम बदला गया",
|
||||
"request_in_use": "रिक्वेस्ट इन यूज़",
|
||||
"save_as": "इस रूप में सेव करें",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "एक संग्रह का चयन करें",
|
||||
"select_location": "स्थान चुनें",
|
||||
"select_team": "एक टीम चुनें",
|
||||
"team_collections": "टीम संग्रह"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "क्या आप वाकई इस टीम को छोड़ना चाहते हैं?",
|
||||
"logout": "क्या आप वाकई लॉगआउट करना चाहते हैं?",
|
||||
"remove_collection": "क्या आप वाकई इस संग्रह को स्थायी रूप से हटाना चाहते हैं?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "क्या आप अपने कार्यक्षेत्र को क्लाउड से पुनर्स्थापित करना चाहेंगे? यह आपकी स्थानीय प्रगति को त्याग देगा।"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "हेडर {count}",
|
||||
"message": "मैसेज {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": " नया वातावरण बनाएं",
|
||||
"created": " पर्यावरण बनाया",
|
||||
"deleted": " पर्यावरण विलोपन",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": " पर्यावरण संपादित करें",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": " कृपया पर्यावरण के लिए एक नाम प्रदान करें",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": " नेस्टेड पर्यावरण चर 10 स्तरों तक सीमित हैं",
|
||||
"new": " नया वातावरण",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": " कोई वातावरण नहीं",
|
||||
"no_environment_description": " कोई परिवेश नहीं चुना गया था. चुनें कि निम्नलिखित चर के साथ क्या करना है।",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": " पर्यावरण का चयन करें",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": " वातावरण",
|
||||
"updated": " पर्यावरण अद्यतन",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": " परिवर्तनीय सूची"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": " कोई अवधि नहीं",
|
||||
"no_results_found": " कोई मेल नहीं मिले",
|
||||
"page_not_found": " यह पृष्ठ नहीं मिल सका",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": " पूर्व-अनुरोध स्क्रिप्ट निष्पादित नहीं कर सका",
|
||||
"something_went_wrong": " कुछ गलत हो गया",
|
||||
"test_script_fail": " अनुरोध के बाद स्क्रिप्ट निष्पादित नहीं कर सका"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": " फ़ोल्डर का नाम बदला"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": " उत्परिवर्तन",
|
||||
"schema": " योजना",
|
||||
"subscriptions": " सदस्यता",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": " सदस्यता"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -305,7 +274,8 @@
|
||||
"pre_request_script": " पूर्व-अनुरोध स्क्रिप्ट जावास्क्रिप्ट में लिखी जाती हैं, और अनुरोध भेजे जाने से पहले चलाई जाती हैं।",
|
||||
"script_fail": " ऐसा लगता है कि प्री-रिक्वेस्ट स्क्रिप्ट में गड़बड़ है। नीचे दी गई त्रुटि की जाँच करें और उसके अनुसार स्क्रिप्ट को ठीक करें।",
|
||||
"test_script_fail": " ऐसा लगता है कि परीक्षण स्क्रिप्ट में कोई त्रुटि है। कृपया त्रुटियों को ठीक करें और फिर से परीक्षण चलाएं",
|
||||
"tests": "Write a test script to automate debugging."
|
||||
"tests": "Write a test script to automate debugging.",
|
||||
"test": "डिबगिंग को स्वचालित करने के लिए एक परीक्षण स्क्रिप्ट लिखें"
|
||||
},
|
||||
"hide": {
|
||||
"collection": "संग्रह पैनल संक्षिप्त करें",
|
||||
@@ -338,36 +308,13 @@
|
||||
"json_description": "Hoppscotch Collections JSON फ़ाइल से संग्रह आयात करें",
|
||||
"title": "आयात करें"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "संग्रह को संक्षिप्त या विस्तृत करें",
|
||||
"collapse_sidebar": "साइडबार को संक्षिप्त या विस्तृत करें",
|
||||
"column": "लंबवत लेआउट",
|
||||
"name": "लेआउट",
|
||||
"row": "क्षैतिज लेआउट"
|
||||
"row": "क्षैतिज लेआउट",
|
||||
"zen_mode": "ज़ेन मोड"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +419,6 @@
|
||||
"payload": "पेलोड",
|
||||
"query": "सवाल",
|
||||
"raw_body": "कच्चे अनुरोध निकाय",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "अनुरोध नाम दिया गया",
|
||||
"run": "दौड़ना",
|
||||
"save": "बचाना",
|
||||
@@ -480,7 +426,6 @@
|
||||
"saved": "अनुरोध सहेजा गया",
|
||||
"share": "शेयर करना",
|
||||
"share_description": "अपने दोस्तों के साथ hoppscotch साझा करें",
|
||||
"stop": "Stop",
|
||||
"title": "प्रार्थना",
|
||||
"type": "अनुरोध का प्रकार",
|
||||
"url": "यूआरएल",
|
||||
@@ -515,6 +460,7 @@
|
||||
"account_name_description": "यह आपका प्रदर्शन नाम है।",
|
||||
"background": "पार्श्वभूमि",
|
||||
"black_mode": "काला",
|
||||
"change_font_size": "फॉण्ट आकार बदलें",
|
||||
"choose_language": "भाषा चुनें",
|
||||
"dark_mode": "अँधेरा",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +473,10 @@
|
||||
"extensions": "ब्राउज़र विस्तार",
|
||||
"extensions_use_toggle": "अनुरोध भेजने के लिए ब्राउज़र एक्सटेंशन का उपयोग करें (यदि मौजूद है)",
|
||||
"follow": "हमारे पर का पालन करें",
|
||||
"font_size": "फ़ॉन्ट आकार",
|
||||
"font_size_large": "विशाल",
|
||||
"font_size_medium": "मध्यम",
|
||||
"font_size_small": "छोटा",
|
||||
"interceptor": "इंटरसेप्टर",
|
||||
"interceptor_description": "एप्लिकेशन और एपीआई के बीच मिडलवेयर।",
|
||||
"language": "भाषा",
|
||||
@@ -591,27 +541,19 @@
|
||||
"settings": "सेटिंग्स पृष्ठ पर जाएं",
|
||||
"title": "मार्गदर्शन"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "कॉपी अनुरोध लिंक",
|
||||
"delete_method": "हटाएं विधि का चयन करें",
|
||||
"get_method": "गेट विधि का चयन करें",
|
||||
"head_method": "हेड विधि का चयन करें",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "तरीका",
|
||||
"next_method": "अगली विधि का चयन करें",
|
||||
"post_method": "पोस्ट विधि का चयन करें",
|
||||
"previous_method": "पिछली विधि का चयन करें",
|
||||
"put_method": "पुट विधि का चयन करें",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "रीसेट अनुरोध",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "संग्रह के लिए सहेजें",
|
||||
"send_request": "अनुरोध भेजा",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "प्रार्थना"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +583,6 @@
|
||||
"log": "लकड़ी का लट्ठा",
|
||||
"url": "यूआरएल"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "घटना प्रकार",
|
||||
"log": "लकड़ी का लट्ठा",
|
||||
@@ -777,11 +640,8 @@
|
||||
"tab": {
|
||||
"authorization": "प्राधिकार",
|
||||
"body": "शरीर",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "संग्रह",
|
||||
"documentation": "प्रलेखन",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "हेडर",
|
||||
"history": "इतिहास",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Válasszon egy fájlt",
|
||||
"clear": "Törlés",
|
||||
"clear_all": "Összes törlése",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Bezárás",
|
||||
"connect": "Kapcsolódás",
|
||||
"connecting": "Kapcsolódás",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Beillesztés",
|
||||
"prettify": "Csinosítás",
|
||||
"remove": "Eltávolítás",
|
||||
"rename": "Rename",
|
||||
"restore": "Visszaállítás",
|
||||
"save": "Mentés",
|
||||
"scroll_to_bottom": "Görgetés az aljára",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Keresés",
|
||||
"share": "Megosztás",
|
||||
"shortcuts": "Gyorsbillentyűk",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Reflektorfény",
|
||||
"status": "Állapot",
|
||||
"status_description": "A weboldal állapotának ellenőrzése",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Gyűjtemény átnevezve",
|
||||
"request_in_use": "A kérés használatban",
|
||||
"save_as": "Mentés másként",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Gyűjtemény kiválasztása",
|
||||
"select_location": "Hely kiválasztása",
|
||||
"select_team": "Csapat kiválasztása",
|
||||
"team_collections": "Csapat gyűjteményei"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Biztosan el szeretné hagyni ezt a csapatot?",
|
||||
"logout": "Biztosan ki szeretne jelentkezni?",
|
||||
"remove_collection": "Biztosan véglegesen törölni szeretné ezt a gyűjteményt?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Szeretné menteni az ezen a lapon elvégzett változtatásokat?",
|
||||
"sync": "Szeretné visszaállítani a munkaterületét a felhőből? Ez el fogja vetni a helyi folyamatát."
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "{count}. fejléc",
|
||||
"message": "{count}. üzenet",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Új környezet létrehozása",
|
||||
"created": "Környezet létrehozva",
|
||||
"deleted": "Környezet törlése",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Környezet szerkesztése",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Adjon nevet a környezetnek",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "Saját környezetek",
|
||||
"name": "Name",
|
||||
"nested_overflow": "az egymásba ágyazott környezeti változók 10 szintre vannak korlátozva",
|
||||
"new": "Új környezet",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Nincs környezet",
|
||||
"no_environment_description": "Nem lettek környezetek kiválasztva. Válassza ki, hogy mit kell tenni a következő változókkal.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Környezet kiválasztása",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Csapatkörnyezetek",
|
||||
"title": "Környezetek",
|
||||
"updated": "Környezet frissítve",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Változólista"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Nincs időtartam",
|
||||
"no_results_found": "Nincs találat",
|
||||
"page_not_found": "Ez az oldal nem található",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Nem sikerült végrehajtani a kérés előtti parancsfájlt",
|
||||
"something_went_wrong": "Valami elromlott",
|
||||
"test_script_fail": "Nem sikerült végrehajtani a kérés utáni parancsfájlt"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Mappa átnevezve"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutációk",
|
||||
"schema": "Séma",
|
||||
"subscriptions": "Feliratkozások",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Feliratkozások"
|
||||
},
|
||||
"group": {
|
||||
"time": "Idő",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Gyűjtemények importálása Hoppscotch-gyűjtemények JSON-fájlból",
|
||||
"title": "Importálás"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Gyűjtemények összecsukása vagy kinyitása",
|
||||
"collapse_sidebar": "Az oldalsáv összecsukása vagy kinyitása",
|
||||
"column": "Függőleges elrendezés",
|
||||
"name": "Elrendezés",
|
||||
"row": "Vízszintes elrendezés"
|
||||
"row": "Vízszintes elrendezés",
|
||||
"zen_mode": "Zen mód"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "Elmentetlen változtatásai vannak",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Hasznos teher",
|
||||
"query": "Lekérdezés",
|
||||
"raw_body": "Nyers kéréstörzs",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Kérés átnevezve",
|
||||
"run": "Futtatás",
|
||||
"save": "Mentés",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Kérés elmentve",
|
||||
"share": "Megosztás",
|
||||
"share_description": "A Hoppscotch megosztása az ismerőseivel",
|
||||
"stop": "Stop",
|
||||
"title": "Kérés",
|
||||
"type": "Kérés típusa",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Ez a megjelenített neve.",
|
||||
"background": "Háttér",
|
||||
"black_mode": "Fekete",
|
||||
"change_font_size": "Betűméret megváltoztatása",
|
||||
"choose_language": "Nyelv kiválasztása",
|
||||
"dark_mode": "Sötét",
|
||||
"delete_account": "Fiók törlése",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Böngészőkiterjesztés",
|
||||
"extensions_use_toggle": "A böngészőkiterjesztés használata a kérések küldéséhez (ha jelen van)",
|
||||
"follow": "Kövessen minket",
|
||||
"font_size": "Betűméret",
|
||||
"font_size_large": "Nagy",
|
||||
"font_size_medium": "Közepes",
|
||||
"font_size_small": "Kicsi",
|
||||
"interceptor": "Elfogó",
|
||||
"interceptor_description": "Középprogram az alkalmazás és az API-k között.",
|
||||
"language": "Nyelv",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Ugrás a beállítások oldalra",
|
||||
"title": "Navigáció"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Kérés hivatkozásának másolása",
|
||||
"delete_method": "DELETE módszer kiválasztása",
|
||||
"get_method": "GET módszer kiválasztása",
|
||||
"head_method": "HEAD módszer kiválasztása",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Módszer",
|
||||
"next_method": "Következő módszer kiválasztása",
|
||||
"post_method": "POST módszer kiválasztása",
|
||||
"previous_method": "Előző módszer kiválasztása",
|
||||
"put_method": "PUT módszer kiválasztása",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Kérés visszaállítása",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Mentés a gyűjteményekbe",
|
||||
"send_request": "Kérés elküldése",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Kérés"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Napló",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Esemény típusa",
|
||||
"log": "Napló",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Felhatalmazás",
|
||||
"body": "Törzs",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Gyűjtemények",
|
||||
"documentation": "Dokumentáció",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Környezetek",
|
||||
"headers": "Fejlécek",
|
||||
"history": "Előzmények",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Pilih file",
|
||||
"clear": "Bersihkan",
|
||||
"clear_all": "Bersihkan semua",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Tutup",
|
||||
"connect": "Sambungkan",
|
||||
"connecting": "Menyambungkan",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Tempel",
|
||||
"prettify": "Prettify",
|
||||
"remove": "Hapus",
|
||||
"rename": "Rename",
|
||||
"restore": "Pulihkan",
|
||||
"save": "Simpan",
|
||||
"scroll_to_bottom": "Gulir ke bawah",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Mencari",
|
||||
"share": "Membagikan",
|
||||
"shortcuts": "Jalan pintas",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Menyoroti",
|
||||
"status": "Status",
|
||||
"status_description": "Periksa status situs web",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Koleksi berganti nama",
|
||||
"request_in_use": "Permintaan sedang digunakan",
|
||||
"save_as": "Simpan Sebagai",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Pilih Koleksi",
|
||||
"select_location": "Pilih lokasi",
|
||||
"select_team": "Pilih tim",
|
||||
"team_collections": "Koleksi Tim"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Apakah Anda yakin ingin keluar dari tim ini?",
|
||||
"logout": "Apakah Anda yakin ingin keluar?",
|
||||
"remove_collection": "Apakah Anda yakin ingin menghapus koleksi ini secara permanen?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Apakah Anda ingin menyimpan perubahan yang dibuat di tab ini?",
|
||||
"sync": "Apakah Anda ingin memulihkan ruang kerja Anda dari cloud? Ini akan membuang kemajuan lokal Anda."
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Header {count}",
|
||||
"message": "Pesan {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Membuat environment baru",
|
||||
"created": "Environment dibuat",
|
||||
"deleted": "Environment dihapus",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Sunting Environment",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Tolong beri nama untuk environment",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "Environment Saya",
|
||||
"name": "Name",
|
||||
"nested_overflow": "Variabel environment bersarang dibatasi hingga 10 level",
|
||||
"new": "Environment Baru",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "No environment",
|
||||
"no_environment_description": "Tidak ada environment yang dipilih. Pilih apa yang harus dilakukan dengan variabel berikut.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Pilih environment",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Environment Tim",
|
||||
"title": "Environment",
|
||||
"updated": "Environment diperbarui",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Daftar Variable"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Tidak ada durasi",
|
||||
"no_results_found": "Tidak ada kecocokan yang ditemukan",
|
||||
"page_not_found": "Halaman ini tidak dapat ditemukan",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Tidak dapat menjalankan pre-request script",
|
||||
"something_went_wrong": "Ada yang salah",
|
||||
"test_script_fail": "Tidak dapat mengeksekusi post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Folder berganti nama"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutations",
|
||||
"schema": "Schema",
|
||||
"subscriptions": "Subscriptions",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Subscriptions"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Impor Koleksi dari berkas JSON Koleksi Hoppscotch",
|
||||
"title": "Impor"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Ciutkan atau Perluas Collections",
|
||||
"collapse_sidebar": "Ciutkan atau Perluas sidebar",
|
||||
"column": "Vertikal layout",
|
||||
"name": "Layout",
|
||||
"row": "Horisontal layout"
|
||||
"row": "Horisontal layout",
|
||||
"zen_mode": "Zen mode"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "Anda memiliki perubahan yang belum disimpan",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Payload",
|
||||
"query": "Query",
|
||||
"raw_body": "Raw Request Body",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Request berganti nama",
|
||||
"run": "Jalankan",
|
||||
"save": "Menyimpan",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Request disimpan",
|
||||
"share": "Membagikan",
|
||||
"share_description": "Bagikan Hoppscotch dengan teman-teman Anda",
|
||||
"stop": "Stop",
|
||||
"title": "Request",
|
||||
"type": "Tipe Request",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Ini adalah nama tampilan Anda.",
|
||||
"background": "Latar belakang",
|
||||
"black_mode": "Hitam",
|
||||
"change_font_size": "Ubah ukuran font",
|
||||
"choose_language": "Pilih bahasa",
|
||||
"dark_mode": "Gelap",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Ekstensi Peramban",
|
||||
"extensions_use_toggle": "Gunakan ekstensi peramban untuk mengirim permintaan (jika ada)",
|
||||
"follow": "Ikuti kami",
|
||||
"font_size": "Ukuran huruf",
|
||||
"font_size_large": "Besar",
|
||||
"font_size_medium": "Sedang",
|
||||
"font_size_small": "Kecil",
|
||||
"interceptor": "Pencegat",
|
||||
"interceptor_description": "Middleware antara aplikasi dan API.",
|
||||
"language": "Bahasa",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Pergi ke halaman Pengaturan",
|
||||
"title": "Navigasi"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Salin Tautan Permintaan",
|
||||
"delete_method": "Pilih metode DELETE",
|
||||
"get_method": "Pilih metode GET",
|
||||
"head_method": "Pilih metode HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "metode",
|
||||
"next_method": "Pilih metode Next",
|
||||
"post_method": "Pilih metode POST",
|
||||
"previous_method": "Pilih metode Previous",
|
||||
"put_method": "Pilih metode PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Mengatur ulang Request",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Menyimpan ke Collections",
|
||||
"send_request": "Kirim Request",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Request"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Log",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Tipe Event",
|
||||
"log": "Log",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Authorization",
|
||||
"body": "Body",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Collections",
|
||||
"documentation": "Dokumentasi",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Headers",
|
||||
"history": "Riwayat",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Scegli un file",
|
||||
"clear": "Cancella",
|
||||
"clear_all": "Cancella tutto",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Connetti",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Abbellisci",
|
||||
"remove": "Rimuovi",
|
||||
"rename": "Rename",
|
||||
"restore": "Ripristina",
|
||||
"save": "Salva",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Cerca",
|
||||
"share": "Condividi",
|
||||
"shortcuts": "Scorciatoie",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Riflettore",
|
||||
"status": "Stato",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Raccolta rinominata",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Salva come",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Seleziona una raccolta",
|
||||
"select_location": "Seleziona la posizione",
|
||||
"select_team": "Seleziona un team",
|
||||
"team_collections": "Raccolte di team"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Sei sicuro di voler uscire?",
|
||||
"remove_collection": "Sei sicuro di voler eliminare definitivamente questa raccolta?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Vuoi ripristinare il tuo spazio di lavoro con quello del cloud? Questo annullerà le tue modifiche fatte in locale."
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Intestazione {count}",
|
||||
"message": "Messaggio {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Crea un nuovo ambiente",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Modifica ambiente",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Si prega di fornire un nome valido per l'ambiente",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "Nuovo ambiente",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Nessun ambiente",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Seleziona ambiente",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "Ambienti",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Elenco variabili"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Nessuna durata",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Impossibile eseguire lo script di pre-richiesta",
|
||||
"something_went_wrong": "Qualcosa è andato storto",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Cartella rinominata"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutazioni",
|
||||
"schema": "Schema",
|
||||
"subscriptions": "Sottoscrizioni",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Sottoscrizioni"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Importa"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Disposizione verticale",
|
||||
"name": "Layout",
|
||||
"row": "Disposizione orizzontale"
|
||||
"row": "Disposizione orizzontale",
|
||||
"zen_mode": "Modalità zen"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Contenuto (Payload)",
|
||||
"query": "Query",
|
||||
"raw_body": "Corpo della richiesta non formattato",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Richiesta rinominata",
|
||||
"run": "Esegui",
|
||||
"save": "Salva",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Richiesta salvata",
|
||||
"share": "Condividi",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "Richiesta",
|
||||
"type": "Tipo di richiesta",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Questo è il tuo nome mostrato.",
|
||||
"background": "Sfondo",
|
||||
"black_mode": "Nero",
|
||||
"change_font_size": "Cambia la dimensione dei caratteri",
|
||||
"choose_language": "Scegli la lingua",
|
||||
"dark_mode": "Scuro",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Estensioni",
|
||||
"extensions_use_toggle": "Utilizza l'estensione del browser per inviare richieste (se presente)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Dimensione dei caratteri",
|
||||
"font_size_large": "Grande",
|
||||
"font_size_medium": "Medio",
|
||||
"font_size_small": "Piccolo",
|
||||
"interceptor": "Interceptor",
|
||||
"interceptor_description": "Middleware tra applicazione e API.",
|
||||
"language": "Lingua",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Vai alla pagina Impostazioni",
|
||||
"title": "Navigazione"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Copia il link alla richiesta",
|
||||
"delete_method": "Seleziona il metodo DELETE",
|
||||
"get_method": "Seleziona il metodo GET",
|
||||
"head_method": "Seleziona il metodo HEAD",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Metodo",
|
||||
"next_method": "Seleziona il metodo successivo",
|
||||
"post_method": "Seleziona il metodo POST",
|
||||
"previous_method": "Seleziona il metodo precedente",
|
||||
"put_method": "Seleziona il metodo PUT",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Resetta la richiesta",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Salva nelle raccolte",
|
||||
"send_request": "Invia richiesta",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Richiesta"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Log",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Tipo di evento",
|
||||
"log": "Log",
|
||||
@@ -765,7 +627,7 @@
|
||||
"support": {
|
||||
"changelog": "Maggiori informazioni sulle ultime versioni",
|
||||
"chat": "Domande? Chatta con noi!",
|
||||
"community": "Fai domande e aiuta gli altri",
|
||||
"community": "Fai domande e aiuta gli altri",
|
||||
"documentation": "Maggiori informazioni su Hoppscotch",
|
||||
"forum": "Fai domande e ottieni risposte",
|
||||
"github": "Follow us on Github",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Autorizzazione",
|
||||
"body": "Corpo",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Raccolte",
|
||||
"documentation": "Documentazione",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Intestazioni",
|
||||
"history": "Cronologia",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "ファイルを選択してください",
|
||||
"clear": "クリア",
|
||||
"clear_all": "すべてクリア",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "閉じる",
|
||||
"connect": "接続",
|
||||
"connecting": "接続中",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "貼り付け",
|
||||
"prettify": "自動整形",
|
||||
"remove": "削除",
|
||||
"rename": "Rename",
|
||||
"restore": "戻す",
|
||||
"save": "保存",
|
||||
"scroll_to_bottom": "下にスクロール",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "検索",
|
||||
"share": "共有",
|
||||
"shortcuts": "ショートカット",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "スポットライト",
|
||||
"status": "状態",
|
||||
"status_description": "ウェブサイトの状態を確認",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "コレクション名が変更されました",
|
||||
"request_in_use": "使用中のリクエスト",
|
||||
"save_as": "名前を付けて保存",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "コレクションを選択",
|
||||
"select_location": "場所を選択",
|
||||
"select_team": "チームを選択",
|
||||
"team_collections": "チームコレクション"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "本当にこのチームから退出しますか?",
|
||||
"logout": "ログアウトしてもよろしいですか?",
|
||||
"remove_collection": "このコレクションを完全に削除してもよろしいですか?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "クラウドからワークスペースを復元しますか?この場合、ローカルの進行状況は破棄されます。"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "ヘッダー {count}",
|
||||
"message": "メッセージ {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "新しい環境変数を作成",
|
||||
"created": "環境変数を作成しました",
|
||||
"deleted": "環境変数を削除しました",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "環境変数の編集",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "環境変数名を入力してください",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "個人の環境変数",
|
||||
"name": "Name",
|
||||
"nested_overflow": "環境変数の入れ子は10段階までです",
|
||||
"new": "新しい環境変数",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "環境変数が存在しません",
|
||||
"no_environment_description": "環境変数が選択されていません。次の環境変数から選択してください。",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "環境変数を選択",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "チームの環境変数",
|
||||
"title": "環境変数",
|
||||
"updated": "環境変数を更新しました",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "環境変数リスト"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "期間なし",
|
||||
"no_results_found": "該当するものがありませんでした",
|
||||
"page_not_found": "このページは見つかりませんでした",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "リクエスト前のスクリプトを実行できませんでした",
|
||||
"something_went_wrong": "不明なエラーです",
|
||||
"test_script_fail": "リクエスト後のスクリプトを実行できませんでした"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "フォルダ名が変更されました"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "ミューテーション",
|
||||
"schema": "スキーマ",
|
||||
"subscriptions": "サブスクリプション",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "サブスクリプション"
|
||||
},
|
||||
"group": {
|
||||
"time": "時間",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Hoppscotchのコレクション (JSONファイル) からインポート",
|
||||
"title": "インポート"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "コレクションを表示・非表示",
|
||||
"collapse_sidebar": "サイドバーを表示・非表示",
|
||||
"column": "縦型レイアウト",
|
||||
"name": "レイアウト",
|
||||
"row": "横型レイアウト"
|
||||
"row": "横型レイアウト",
|
||||
"zen_mode": "禅モード"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "ペイロード",
|
||||
"query": "クエリ",
|
||||
"raw_body": "生のリクエストボディ",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "リクエストの名前を変更",
|
||||
"run": "実行",
|
||||
"save": "保存",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "保存されたリクエスト",
|
||||
"share": "共有",
|
||||
"share_description": "Hoppscotchを友人に共有",
|
||||
"stop": "Stop",
|
||||
"title": "リクエスト",
|
||||
"type": "リクエストの種類",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "あなたの表示名",
|
||||
"background": "背景",
|
||||
"black_mode": "ブラック",
|
||||
"change_font_size": "フォントの大きさを変更",
|
||||
"choose_language": "言語を選択",
|
||||
"dark_mode": "ダーク",
|
||||
"delete_account": "アカウントの削除",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "拡張機能",
|
||||
"extensions_use_toggle": "ブラウザ拡張機能を使用してリクエストを送信する(利用可能な場合)",
|
||||
"follow": "フォローする",
|
||||
"font_size": "フォントサイズ",
|
||||
"font_size_large": "大きめ",
|
||||
"font_size_medium": "普通",
|
||||
"font_size_small": "小さめ",
|
||||
"interceptor": "インターセプタ",
|
||||
"interceptor_description": "アプリケーションとAPIをつなぐミドルウェア",
|
||||
"language": "言語",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "設定ページに移動",
|
||||
"title": "ナビゲーション"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "コピーリクエストリンク",
|
||||
"delete_method": "DELETEメソッドを選択",
|
||||
"get_method": "GETメソッドを選択",
|
||||
"head_method": "HEADメソッドを選択",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "メソッド",
|
||||
"next_method": "次のメソッドを選択",
|
||||
"post_method": "POSTメソッドを選択",
|
||||
"previous_method": "前のメソッドを選択",
|
||||
"put_method": "PUTメソッドを選択",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "リセットリクエスト",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "コレクションに保存",
|
||||
"send_request": "リクエストを送信",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "リクエスト"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "ログ",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "イベントの種類",
|
||||
"log": "ログ",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "認証",
|
||||
"body": "ボディ",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "コレクション",
|
||||
"documentation": "ドキュメント",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "ヘッダー",
|
||||
"history": "履歴",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "파일 선택",
|
||||
"clear": "지우기",
|
||||
"clear_all": "모두 지우기",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "닫기",
|
||||
"connect": "연결",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "붙여넣기",
|
||||
"prettify": "구문 강조",
|
||||
"remove": "제거",
|
||||
"rename": "Rename",
|
||||
"restore": "복원",
|
||||
"save": "저장",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "찾기",
|
||||
"share": "공유하기",
|
||||
"shortcuts": "바로가기",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "스포트라이트",
|
||||
"status": "상태",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "모음집 이름이 변경됨",
|
||||
"request_in_use": "사용 중인 요청",
|
||||
"save_as": "다른 이름으로 저장",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "모음집 선택",
|
||||
"select_location": "위치 선택",
|
||||
"select_team": "팀 선택",
|
||||
"team_collections": "팀 모음집"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "이 팀을 떠나겠습니까?",
|
||||
"logout": "로그아웃하겠습니까?",
|
||||
"remove_collection": "이 모음집을 영구적으로 삭제하겠습니까?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "이 작업 공간을 동기화하겠습니까?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "헤더 {count}",
|
||||
"message": "메시지 {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "새 환경 만들기",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "환경 편집",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "환경 이름을 바르게 입력하세요.",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "환경 변수는 열 단계까지만 중첩될 수 있습니다.",
|
||||
"new": "새 환경",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "환경 없음",
|
||||
"no_environment_description": "선택한 환경이 없습니다. 선택해주세요.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "환경 선택",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "환경",
|
||||
"updated": "환경 수정됨",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "변수 목록"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "소요 시간 없음",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "해당 페이지를 찾을 수 없습니다.",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "사전 요청 스크립트를 실행할 수 없습니다.",
|
||||
"something_went_wrong": "문제가 발생했습니다.",
|
||||
"test_script_fail": "테스트 스크립트를 실행할 수 없습니다."
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "폴더 이름이 변경됨"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "뮤테이션",
|
||||
"schema": "스키마",
|
||||
"subscriptions": "섭스크립션",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "섭스크립션"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "호프스카치 모음집 JSON 파일을 가져옵니다.",
|
||||
"title": "가져오기"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "가로형 레이아웃",
|
||||
"name": "Layout",
|
||||
"row": "세로형 레이아웃"
|
||||
"row": "세로형 레이아웃",
|
||||
"zen_mode": "전체화면"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "페이로드",
|
||||
"query": "쿼리",
|
||||
"raw_body": "원시 요청 본문",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "요청 이름이 변경됨",
|
||||
"run": "실행",
|
||||
"save": "저장",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "요청이 저장됨",
|
||||
"share": "공유하기",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "제목",
|
||||
"type": "요청 유형",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "디스플레이 이름입니다.",
|
||||
"background": "배경",
|
||||
"black_mode": "검은 테마",
|
||||
"change_font_size": "글자 크기 변경",
|
||||
"choose_language": "언어 선택",
|
||||
"dark_mode": "어두운 테마",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "익스텐션",
|
||||
"extensions_use_toggle": "브라우저 익스텐션을 사용하여 요청 보내기(있는 경우)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "글꼴 크기",
|
||||
"font_size_large": "크게",
|
||||
"font_size_medium": "중간",
|
||||
"font_size_small": "작게",
|
||||
"interceptor": "인터셉터",
|
||||
"interceptor_description": "애플리케이션과 API 간의 미들웨어.",
|
||||
"language": "언어",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "설정 페이지로 이동",
|
||||
"title": "내비게이션"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "요청 링크 복사",
|
||||
"delete_method": "DELETE 메서드 선택",
|
||||
"get_method": "GET 메서드 선택",
|
||||
"head_method": "HEAD 메서드 선택",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "메서드",
|
||||
"next_method": "다음 메서드 선택",
|
||||
"post_method": "POST 메서드 선택",
|
||||
"previous_method": "이전 메서드 선택",
|
||||
"put_method": "PUT 메서드 선택",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "요청 초기화",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "모음집에 저장",
|
||||
"send_request": "요청 보내기",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "요청"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "로그",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "이벤트 유형",
|
||||
"log": "로그",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "인증",
|
||||
"body": "본문",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "모음집",
|
||||
"documentation": "문서",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "헤더",
|
||||
"history": "이력",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"choose_file": "Kies een bestand",
|
||||
"clear": "Wis",
|
||||
"clear_all": "Wis alles",
|
||||
"clear_history": "Clear all History",
|
||||
"close": "Close",
|
||||
"connect": "Verbinden",
|
||||
"connecting": "Connecting",
|
||||
@@ -32,7 +31,6 @@
|
||||
"paste": "Paste",
|
||||
"prettify": "Netter opmaken",
|
||||
"remove": "Verwijderen",
|
||||
"rename": "Rename",
|
||||
"restore": "Herstellen",
|
||||
"save": "Opslaan",
|
||||
"scroll_to_bottom": "Scroll to bottom",
|
||||
@@ -79,8 +77,6 @@
|
||||
"search": "Zoeken",
|
||||
"share": "Deel",
|
||||
"shortcuts": "Sneltoetsen",
|
||||
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
|
||||
"social_links": "Social links",
|
||||
"spotlight": "Spotlight",
|
||||
"status": "Toestand",
|
||||
"status_description": "Check the status of the website",
|
||||
@@ -135,15 +131,12 @@
|
||||
"renamed": "Collectie hernoemd",
|
||||
"request_in_use": "Request in use",
|
||||
"save_as": "Opslaan als",
|
||||
"save_to_collection": "Save to Collection",
|
||||
"select": "Selecteer een collectie",
|
||||
"select_location": "Selecteer een locatie",
|
||||
"select_team": "Selecteer een team",
|
||||
"team_collections": "Teamcollecties"
|
||||
},
|
||||
"confirm": {
|
||||
"close_unsaved_tab": "Are you sure you want to close this tab?",
|
||||
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
|
||||
"exit_team": "Are you sure you want to leave this team?",
|
||||
"logout": "Weet u zeker dat u wilt uitloggen?",
|
||||
"remove_collection": "Weet je zeker dat je deze collectie definitief wilt verwijderen?",
|
||||
@@ -157,11 +150,6 @@
|
||||
"save_unsaved_tab": "Do you want to save changes made in this tab?",
|
||||
"sync": "Weet u zeker dat u deze werkruimte wilt synchroniseren?"
|
||||
},
|
||||
"context_menu": {
|
||||
"add_parameters": "Add to parameters",
|
||||
"open_request_in_new_tab": "Open request in new tab",
|
||||
"set_environment_variable": "Set as variable"
|
||||
},
|
||||
"count": {
|
||||
"header": "Kop {count}",
|
||||
"message": "Bericht {count}",
|
||||
@@ -204,31 +192,17 @@
|
||||
"create_new": "Nieuwe omgeving maken",
|
||||
"created": "Environment created",
|
||||
"deleted": "Environment deletion",
|
||||
"duplicated": "Environment duplicated",
|
||||
"edit": "Omgeving bewerken",
|
||||
"empty_variables": "No variables",
|
||||
"global": "Global",
|
||||
"global_variables": "Global variables",
|
||||
"invalid_name": "Geef een geldige naam op voor de omgeving",
|
||||
"list": "Environment variables",
|
||||
"my_environments": "My Environments",
|
||||
"name": "Name",
|
||||
"nested_overflow": "nested environment variables are limited to 10 levels",
|
||||
"new": "Nieuwe omgeving",
|
||||
"no_active_environment": "No active environment",
|
||||
"no_environment": "Geen omgeving",
|
||||
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
|
||||
"quick_peek": "Environment Quick Peek",
|
||||
"replace_with_variable": "Replace with variable",
|
||||
"scope": "Scope",
|
||||
"select": "Selecteer omgeving",
|
||||
"set": "Set environment",
|
||||
"set_as_environment": "Set as environment",
|
||||
"team_environments": "Team Environments",
|
||||
"title": "omgevingen",
|
||||
"updated": "Environment updation",
|
||||
"value": "Value",
|
||||
"variable": "Variable",
|
||||
"variable_list": "Variabele lijst"
|
||||
},
|
||||
"error": {
|
||||
@@ -252,7 +226,6 @@
|
||||
"no_duration": "Geen duur",
|
||||
"no_results_found": "No matches found",
|
||||
"page_not_found": "This page could not be found",
|
||||
"proxy_error": "Proxy error",
|
||||
"script_fail": "Kon pre-aanvraagscript niet uitvoeren",
|
||||
"something_went_wrong": "Er is iets fout gegaan",
|
||||
"test_script_fail": "Could not execute post-request script"
|
||||
@@ -278,13 +251,9 @@
|
||||
"renamed": "Map hernoemd"
|
||||
},
|
||||
"graphql": {
|
||||
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
|
||||
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
|
||||
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
|
||||
"mutations": "Mutaties",
|
||||
"schema": "Schema",
|
||||
"subscriptions": "Abonnementen",
|
||||
"switch_connection": "Switch connection"
|
||||
"subscriptions": "Abonnementen"
|
||||
},
|
||||
"group": {
|
||||
"time": "Time",
|
||||
@@ -338,36 +307,13 @@
|
||||
"json_description": "Import collections from a Hoppscotch Collections JSON file",
|
||||
"title": "Importeren"
|
||||
},
|
||||
"inspections": {
|
||||
"description": "Inspect possible errors",
|
||||
"environment": {
|
||||
"add_environment": "Add to Environment",
|
||||
"not_found": "Environment variable “{environment}” not found."
|
||||
},
|
||||
"header": {
|
||||
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
|
||||
},
|
||||
"response": {
|
||||
"401_error": "Please check your authentication credentials.",
|
||||
"404_error": "Please check your request URL and method type.",
|
||||
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
|
||||
"default_error": "Please check your request.",
|
||||
"network_error": "Please check your network connection."
|
||||
},
|
||||
"title": "Inspector",
|
||||
"url": {
|
||||
"extension_not_installed": "Extension not installed.",
|
||||
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
|
||||
"extention_enable_action": "Enable Browser Extension",
|
||||
"extention_not_enabled": "Extension not enabled."
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"collapse_collection": "Collapse or Expand Collections",
|
||||
"collapse_sidebar": "Collapse or Expand the sidebar",
|
||||
"column": "Vertical layout",
|
||||
"name": "Layout",
|
||||
"row": "Horizontal layout"
|
||||
"row": "Horizontal layout",
|
||||
"zen_mode": "Zen-modus"
|
||||
},
|
||||
"modal": {
|
||||
"close_unsaved_tab": "You have unsaved changes",
|
||||
@@ -472,7 +418,6 @@
|
||||
"payload": "Payload",
|
||||
"query": "Vraag",
|
||||
"raw_body": "Ruwe body",
|
||||
"rename": "Rename Request",
|
||||
"renamed": "Verzoek hernoemd",
|
||||
"run": "Uitvoeren",
|
||||
"save": "Opslaan",
|
||||
@@ -480,7 +425,6 @@
|
||||
"saved": "Verzoek opgeslagen",
|
||||
"share": "Deel",
|
||||
"share_description": "Share Hoppscotch with your friends",
|
||||
"stop": "Stop",
|
||||
"title": "Verzoek",
|
||||
"type": "Aanvraag type",
|
||||
"url": "URL",
|
||||
@@ -515,6 +459,7 @@
|
||||
"account_name_description": "Dit is uw weergavenaam.",
|
||||
"background": "Achtergrond",
|
||||
"black_mode": "zwart",
|
||||
"change_font_size": "Verander lettergrootte",
|
||||
"choose_language": "Kies een taal",
|
||||
"dark_mode": "Donker",
|
||||
"delete_account": "Delete account",
|
||||
@@ -527,6 +472,10 @@
|
||||
"extensions": "Extensies",
|
||||
"extensions_use_toggle": "Gebruik de browserextensie om verzoeken te versturen (indien aanwezig)",
|
||||
"follow": "Follow Us",
|
||||
"font_size": "Lettergrootte",
|
||||
"font_size_large": "Groot",
|
||||
"font_size_medium": "Medium",
|
||||
"font_size_small": "Klein",
|
||||
"interceptor": "Interceptor",
|
||||
"interceptor_description": "Middleware tussen applicatie en API's.",
|
||||
"language": "Taal",
|
||||
@@ -591,27 +540,19 @@
|
||||
"settings": "Ga naar de pagina Instellingen",
|
||||
"title": "Navigatie"
|
||||
},
|
||||
"others": {
|
||||
"prettify": "Prettify Editor's Content",
|
||||
"title": "Others"
|
||||
},
|
||||
"request": {
|
||||
"copy_request_link": "Kopieer aanvraaglink",
|
||||
"delete_method": "Selecteer DELETE-methode",
|
||||
"get_method": "Selecteer GET-methode",
|
||||
"head_method": "Selecteer HEAD-methode:",
|
||||
"import_curl": "Import cURL",
|
||||
"method": "Methode",
|
||||
"next_method": "Selecteer volgende methode",
|
||||
"post_method": "Selecteer POST-methode",
|
||||
"previous_method": "Selecteer vorige methode",
|
||||
"put_method": "Selecteer PUT-methode",
|
||||
"rename": "Rename Request",
|
||||
"reset_request": "Verzoek resetten",
|
||||
"save_request": "Save Request",
|
||||
"save_to_collections": "Opslaan in collecties",
|
||||
"send_request": "Verstuur verzoek",
|
||||
"show_code": "Generate code snippet",
|
||||
"title": "Verzoek"
|
||||
},
|
||||
"response": {
|
||||
@@ -641,85 +582,6 @@
|
||||
"log": "Logboek",
|
||||
"url": "URL"
|
||||
},
|
||||
"spotlight": {
|
||||
"change_language": "Change Language",
|
||||
"environments": {
|
||||
"delete": "Delete current environment",
|
||||
"duplicate": "Duplicate current environment",
|
||||
"duplicate_global": "Duplicate global environment",
|
||||
"edit": "Edit current environment",
|
||||
"edit_global": "Edit global environment",
|
||||
"new": "Create new environment",
|
||||
"new_variable": "Create a new environment variable",
|
||||
"title": "Environments"
|
||||
},
|
||||
"general": {
|
||||
"chat": "Chat with support",
|
||||
"help_menu": "Help and support",
|
||||
"open_docs": "Read Documentation",
|
||||
"open_github": "Open GitHub repository",
|
||||
"open_keybindings": "Keyboard shortcuts",
|
||||
"social": "Social",
|
||||
"title": "General"
|
||||
},
|
||||
"graphql": {
|
||||
"connect": "Connect to server",
|
||||
"disconnect": "Disconnect from server"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"invite": "Invite your friends to Hoppscotch",
|
||||
"title": "Miscellaneous"
|
||||
},
|
||||
"request": {
|
||||
"save_as_new": "Save as new request",
|
||||
"select_method": "Select method",
|
||||
"switch_to": "Switch to",
|
||||
"tab_authorization": "Authorization tab",
|
||||
"tab_body": "Body tab",
|
||||
"tab_headers": "Headers tab",
|
||||
"tab_parameters": "Parameters tab",
|
||||
"tab_pre_request_script": "Pre-request script tab",
|
||||
"tab_query": "Query tab",
|
||||
"tab_tests": "Tests tab",
|
||||
"tab_variables": "Variables tab"
|
||||
},
|
||||
"response": {
|
||||
"copy": "Copy response",
|
||||
"download": "Download response as file",
|
||||
"title": "Response"
|
||||
},
|
||||
"section": {
|
||||
"interceptor": "Interceptor",
|
||||
"interface": "Interface",
|
||||
"theme": "Theme",
|
||||
"user": "User"
|
||||
},
|
||||
"settings": {
|
||||
"change_interceptor": "Change Interceptor",
|
||||
"change_language": "Change Language",
|
||||
"theme": {
|
||||
"black": "Black",
|
||||
"dark": "Dark",
|
||||
"light": "Light",
|
||||
"system": "System preference"
|
||||
}
|
||||
},
|
||||
"tab": {
|
||||
"close_current": "Close current tab",
|
||||
"close_others": "Close all other tabs",
|
||||
"duplicate": "Duplicate current tab",
|
||||
"new_tab": "Open a new tab",
|
||||
"title": "Tabs"
|
||||
},
|
||||
"workspace": {
|
||||
"delete": "Delete current team",
|
||||
"edit": "Edit current team",
|
||||
"invite": "Invite people to team",
|
||||
"new": "Create new team",
|
||||
"switch_to_personal": "Switch to your personal workspace",
|
||||
"title": "Teams"
|
||||
}
|
||||
},
|
||||
"sse": {
|
||||
"event_type": "Evenementtype",
|
||||
"log": "Logboek",
|
||||
@@ -777,11 +639,8 @@
|
||||
"tab": {
|
||||
"authorization": "Autorisatie",
|
||||
"body": "Inhoud",
|
||||
"close": "Close Tab",
|
||||
"close_others": "Close other Tabs",
|
||||
"collections": "Collecties",
|
||||
"documentation": "Documentatie",
|
||||
"duplicate": "Duplicate Tab",
|
||||
"environments": "Environments",
|
||||
"headers": "Headers",
|
||||
"history": "Geschiedenis",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user