mirror of
https://github.com/openziti/zrok.git
synced 2025-06-24 19:51:32 +02:00
replace legacy api console with ui100 api console (#724)
This commit is contained in:
parent
d13a47d1c0
commit
a88185422a
41
ui/.gitignore
vendored
41
ui/.gitignore
vendored
@ -1,23 +1,24 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
@ -1,6 +0,0 @@
|
||||
|
||||
$blue: #3b2693;
|
||||
$font-family-sans-serif: "Russo One", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
$font-family-monospace: "JetBrains Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1400px );
|
||||
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1440px );
|
@ -2,5 +2,5 @@ package ui
|
||||
|
||||
import "embed"
|
||||
|
||||
//go:embed build
|
||||
var FS embed.FS
|
||||
//go:embed dist
|
||||
var FS embed.FS
|
||||
|
@ -19,7 +19,7 @@ func Middleware(handler http.Handler, healthCheck func(w http.ResponseWriter, r
|
||||
return
|
||||
}
|
||||
|
||||
staticPath := "build"
|
||||
staticPath := "dist"
|
||||
indexPath := "index.html"
|
||||
|
||||
// get the absolute path to prevent directory traversal
|
||||
|
34809
ui/package-lock.json
generated
34809
ui/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,55 +1,42 @@
|
||||
{
|
||||
"name": "ui",
|
||||
"version": "0.1.0",
|
||||
"name": "ui100",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "eslint .",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.10.4",
|
||||
"@emotion/styled": "^11.10.4",
|
||||
"@mdi/js": "^7.0.96",
|
||||
"@mdi/react": "^1.6.1",
|
||||
"@mui/material": "^5.15.18",
|
||||
"bootstrap": "^5.2.3",
|
||||
"dagre": "^0.8.5",
|
||||
"eslint-config-react-app": "^7.0.1",
|
||||
"humanize-duration": "^3.27.3",
|
||||
"moment": "^2.29.4",
|
||||
"@emotion/react": "^11.13.5",
|
||||
"@emotion/styled": "^11.13.5",
|
||||
"@mui/icons-material": "^6.1.8",
|
||||
"@mui/material": "^6.1.8",
|
||||
"@mui/x-charts": "^7.24.1",
|
||||
"@xyflow/react": "^12.3.5",
|
||||
"d3-hierarchy": "^3.1.2",
|
||||
"date-fns": "^4.1.0",
|
||||
"formik": "^2.4.6",
|
||||
"material-react-table": "^3.1.0",
|
||||
"react": "^18.3.1",
|
||||
"react-bootstrap": "^2.10.2",
|
||||
"react-data-table-component": "^7.5.2",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-force-graph": "^1.43.0",
|
||||
"react-router-dom": "^6.23.1",
|
||||
"react-sizeme": "^3.0.2",
|
||||
"recharts": "^2.12.7",
|
||||
"styled-components": "^5.3.5",
|
||||
"svgo": "^3.0.2"
|
||||
"react-router": "^7.0.1",
|
||||
"yup": "^1.6.1",
|
||||
"zustand": "^5.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"react-scripts": "^5.0.1"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"proxy": "http://127.0.0.1:18080"
|
||||
"@eslint/js": "^9.13.0",
|
||||
"@types/d3-hierarchy": "^3.1.7",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"@vitejs/plugin-react": "^4.3.3",
|
||||
"eslint": "^9.13.0",
|
||||
"eslint-plugin-react-hooks": "^5.0.0",
|
||||
"eslint-plugin-react-refresh": "^0.4.14",
|
||||
"globals": "^15.11.0",
|
||||
"typescript-eslint": "^8.11.0",
|
||||
"vite": "^5.4.10"
|
||||
}
|
||||
}
|
||||
|
1
ui/public/bootstrap.min.css
vendored
1
ui/public/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
@ -1,44 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="zrok ui"/>
|
||||
<!--
|
||||
manifest.json provides metadata used when your web app is installed on a
|
||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
||||
-->
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/zrok.png" />
|
||||
<!--
|
||||
Notice the use of %PUBLIC_URL% in the tags above.
|
||||
It will be replaced with the URL of the `public` folder during the build.
|
||||
Only files inside the `public` folder can be referenced from the HTML.
|
||||
|
||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="stylesheet" href="/bootstrap.min.css">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Russo+One&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap" rel="stylesheet">
|
||||
<title>zrok</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start` or `yarn start`.
|
||||
To create a production bundle, use `npm run build` or `yarn build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"short_name": "zrok ui",
|
||||
"name": "zrok ui",
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
@ -1,259 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 26.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 21.9 37.6" style="enable-background:new 0 0 21.9 37.6;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#A3A3A3;}
|
||||
.st3{fill:#00001F;}
|
||||
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#B3B3B3;}
|
||||
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:#E6E6E6;}
|
||||
.st6{fill:#FFFFFF;stroke:#000000;stroke-width:0.3;stroke-miterlimit:10;}
|
||||
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#FF0000;}
|
||||
.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#00FF00;}
|
||||
.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#06B806;}
|
||||
.st10{fill-rule:evenodd;clip-rule:evenodd;}
|
||||
.st11{fill:#B3B3B3;}
|
||||
.st12{opacity:0.25;}
|
||||
.st13{fill:#FEFCF9;}
|
||||
.st14{fill:none;stroke:#FFFFFF;stroke-width:0.4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<rect x="5.5" y="14.9" class="st0" width="10.7" height="5.7"/>
|
||||
<polygon class="st0" points="16.9,35.4 17.3,35 17.2,34.5 17.1,34.2 16.2,26.5 6.1,26.6 5.1,34.2 4.9,34.8 5.4,35.2 7.3,35.1
|
||||
8.4,35.3 9,35.2 9.3,34.8 9.1,34.3 10.8,28.6 11.5,28.6 11.5,29.1 13,34.3 12.9,34.8 13.2,35.2 14,35.6 "/>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st1" d="M16.4,16.1c0.3,0.1,2.8,0.8,3.4,1.7c0.5,0.9,2,4.8,2,5.8c0,0.1,0,2.6-0.2,3.3c-0.1,0.3-1.7,0.2-2.2,0.1
|
||||
c-0.2,0,0.1-1.4,0-2.2c-0.1-1.6-0.5-2.6-0.6-2.4c-0.2,0.6-2.1,1.6-2.1,1.6"/>
|
||||
<path class="st2" d="M21.7,26.4c0,0.2,0,0.3-0.1,0.4c-0.1,0.3-1.7,0.2-2.2,0.1c-0.2,0,0.1-1.4,0-2.2c-0.1-1.6-0.5-2.6-0.6-2.4
|
||||
c-0.2,0.6-1.6,2.1-1.6,2.1l-0.3,0.1c-0.1-0.1,0.1-0.8,0.1-0.9c-0.4-0.8,1.5-2.6,1.7-2.9c0.3-0.3,0.5,0.1,0.5,0.7
|
||||
c0,0.5,0,0.6,0,0.6c0.9,3.7,0.5,4.5,0.5,4.5s0.2,0.1,0.9,0c0.7,0,0.9-0.2,0.9-0.2L21.7,26.4z"/>
|
||||
<path class="st3" d="M16.4,24.8c-1.6-2.7,2-0.6,2.2-1.8c0,0,0,0,0,0c0-0.5,0.1-1.1,0.2-1.5c0-0.2,0.1-0.4,0.1-0.4
|
||||
c0-0.1,0.1-0.1,0.1-0.1s0.1,0.1,0.1,0.1c0,0,0,0.2-0.1,0.4c0,0.2-0.1,0.4-0.1,0.6c0.1,0.1,0.2,0.3,0.2,0.4
|
||||
c0.1,0.3,0.3,0.9,0.4,1.7c0,0.2,0,0.3,0,0.5c0,0.4,0,0.9,0,1.3c0,0.4,0,0.8,0,0.8c0.3,0.1,0.8,0.1,1.4,0.1c0.3,0,0.6,0,0.6-0.1
|
||||
c0.2-0.6,0.2-2.7,0.2-3.1c0,0,0-0.1,0-0.1c0-0.4-0.3-1.4-0.6-2.4c-0.5-1.4-1.1-2.8-1.3-3.3c-0.2-0.3-0.6-0.6-1.1-0.8
|
||||
c-0.9-0.5-2-0.8-2.2-0.8 M16.5,16c0.2,0,1.3,0.4,2.3,0.8c0.5,0.3,1,0.6,1.2,0.9c0.3,0.5,0.9,2,1.4,3.4c0.4,1.1,0.6,2.1,0.6,2.5
|
||||
c0,0,0,0,0,0.1c0,0.4,0,2.6-0.2,3.2c-0.1,0.2-0.4,0.3-0.8,0.3c-0.5,0-1.2,0-1.5-0.1c-0.2,0-0.2-0.5-0.1-1.1c0-0.4,0.1-0.9,0-1.3
|
||||
c-0.1-1-0.2-1.7-0.4-2.1c0,0.1-0.8,0-0.8,0.1 M17.4,23.3l0.8-0.3c-0.1,1.2-1.5,2-1.5,2.2"/>
|
||||
<path class="st1" d="M21.5,27L21.5,27c-0.5,0.1-1.5,0.1-2,0h-0.1v1.3c0,0.4,0.3,0.8,0.8,0.8h0.6c0.4,0,0.8-0.3,0.8-0.8V27z"/>
|
||||
<path class="st2" d="M21.5,27L21.5,27c-0.5,0.1-1.5,0.1-2,0h-0.1v1.3c0,0.2,0.3,0.4,0.4,0.6c0-0.1,0-0.2,0-0.2v-1.2H20
|
||||
c0.4,0.1,1,0.1,1.6,0V27z"/>
|
||||
<path class="st3" d="M21.7,26.8V27v1.3c0,0.2-0.1,0.5-0.3,0.6c-0.2,0.2-0.4,0.3-0.6,0.3h-0.6c-0.2,0-0.5-0.1-0.6-0.3
|
||||
c-0.2-0.2-0.3-0.4-0.3-0.6V27v-0.2h0.2h0.1h0l0,0c0.3,0,0.7,0.1,1.1,0.1c0.3,0,0.6,0,0.8-0.1l0,0h0h0H21.7z M20.6,27.2
|
||||
c-0.4,0-0.8,0-1-0.1v1.1c0,0.2,0.1,0.3,0.2,0.4c0.1,0.1,0.3,0.2,0.4,0.2h0.6c0.2,0,0.3-0.1,0.4-0.2c0.1-0.1,0.2-0.3,0.2-0.4v-1.1
|
||||
C21.2,27.2,20.9,27.2,20.6,27.2L20.6,27.2z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M5.5,16.2c-0.3,0.1-2.8,0.8-3.4,1.7c-0.5,0.9-2,4.8-2,5.8c0,0.1,0,2.6,0.2,3.3C0.4,27.2,2,27.2,2.5,27
|
||||
c0.2,0-0.1-1.4,0-2.2c0.1-1.6,0.5-2.6,0.6-2.4C3.3,23,5.2,24,5.2,24"/>
|
||||
<path class="st2" d="M0.3,26.5c0,0.2,0,0.3,0.1,0.4C0.4,27.2,2,27.2,2.5,27c0.2,0-0.1-1.4,0-2.2c0.1-1.6,0.5-2.6,0.6-2.4
|
||||
c0.2,0.6,1.6,2.1,1.6,2.1L5,24.7c0.1-0.1-0.1-0.8-0.1-0.9c0.4-0.8-1.5-2.6-1.7-2.9c-0.3-0.3-0.5,0.1-0.5,0.7c0,0.5,0,0.6,0,0.6
|
||||
c-0.9,3.7-0.5,4.5-0.5,4.5s-0.2,0.1-0.9,0c-0.7,0-0.9-0.2-0.9-0.2L0.3,26.5z"/>
|
||||
<path class="st3" d="M5.5,16.3c-0.2,0-1.3,0.3-2.2,0.8c-0.5,0.2-0.9,0.5-1.1,0.8c-0.3,0.5-0.9,2-1.3,3.3c-0.4,1-0.6,2-0.6,2.4
|
||||
c0,0,0,0,0,0.1c0,0.4,0,2.6,0.2,3.1c0,0.1,0.3,0.1,0.6,0.1c0.5,0,1.1,0,1.4-0.1c0,0,0-0.4,0-0.8c0-0.4-0.1-0.9,0-1.3
|
||||
c0-0.2,0-0.3,0-0.5c0.1-0.8,0.2-1.4,0.4-1.7c0-0.1,0.1-0.3,0.2-0.4c0-0.2-0.1-0.4-0.1-0.6c0-0.2-0.1-0.4-0.1-0.4
|
||||
C2.8,21.1,2.9,21,3,21c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0.2,0.1,0.4c0.1,0.4,0.1,1,0.2,1.5c0,0,0,0,0,0c0.2,1.3,3.8-0.8,2.2,1.8
|
||||
M3.8,22.8c0-0.1-0.8,0-0.8-0.1c-0.1,0.4-0.3,1.1-0.4,2.1c0,0.4,0,0.9,0,1.3c0,0.6,0.1,1-0.1,1.1c-0.3,0.1-1,0.1-1.5,0.1
|
||||
c-0.4,0-0.8-0.1-0.8-0.3C0,26.4,0,24.2,0,23.8c0,0,0-0.1,0-0.1c0-0.4,0.3-1.4,0.6-2.5c0.5-1.4,1.1-2.9,1.4-3.4
|
||||
c0.2-0.3,0.6-0.7,1.2-0.9c0.9-0.5,2.1-0.8,2.3-0.8 M5.2,25.3c0-0.2-1.3-1-1.5-2.2l0.8,0.3"/>
|
||||
<path class="st1" d="M0.4,27.1L0.4,27.1c0.5,0.1,1.5,0.1,2,0h0.1v1.3c0,0.4-0.3,0.8-0.8,0.8H1.2c-0.4,0-0.8-0.3-0.8-0.8V27.1z"/>
|
||||
<path class="st2" d="M0.4,27.1L0.4,27.1c0.5,0.1,1.5,0.1,2,0h0.1v1.3c0,0.2-0.3,0.4-0.4,0.6c0-0.1,0-0.2,0-0.2v-1.2H2
|
||||
c-0.4,0.1-1,0.1-1.6,0V27.1z"/>
|
||||
<path class="st3" d="M0.4,26.9L0.4,26.9L0.4,26.9L0.4,26.9C0.6,27,1,27,1.3,27c0.4,0,0.8,0,1.1-0.1l0,0h0h0.1h0.2v0.2v1.3
|
||||
c0,0.2-0.1,0.5-0.3,0.6c-0.2,0.2-0.4,0.3-0.6,0.3H1.2c-0.2,0-0.5-0.1-0.6-0.3c-0.2-0.2-0.3-0.4-0.3-0.6v-1.3v-0.2H0.4z M1.3,27.3
|
||||
c-0.3,0-0.5,0-0.7,0v1.1c0,0.2,0.1,0.3,0.2,0.4C0.8,28.9,1,29,1.2,29h0.6c0.2,0,0.3-0.1,0.4-0.2c0.1-0.1,0.2-0.3,0.2-0.4v-1.1
|
||||
C2,27.3,1.7,27.3,1.3,27.3L1.3,27.3z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st2" d="M5.1,34.2h4.1l1.6-5.6c0.1,0,0.4,0,0.5,0l1.7,5.6h4.1l0-0.3c-0.1,0-0.1,0-0.2,0c-0.4,0.1-3.2,0-3.4,0
|
||||
c-0.2,0-1.6-4.9-1.6-5.1c0-0.2,0.3-0.1,0.6-0.6c0.3-0.5-0.4-0.5-0.4-0.5c-1,0.4-2,0-2,0c-0.9,0.6,0.2,1,0.2,1.1
|
||||
c0.1,0.1-1.3,5-1.5,5.1c-0.2,0.1-3.4,0-3.4,0s-0.1,0-0.2,0L5.1,34.2z"/>
|
||||
<path class="st3" d="M16.4,27.9 M6.1,27.3L6.1,27.3L6.1,27.3l-0.9,6.9h3.8l1.5-5.6c-0.4-0.1-0.5-0.3-0.5-0.3
|
||||
c-0.1-0.1-0.1-0.1,0-0.2c0.1-0.1,0.1-0.1,0.2,0c0,0,0.3,0.3,0.8,0.2c0.6,0,0.8-0.3,0.8-0.3c0.1-0.1,0.1,0,0.2,0
|
||||
c0.1,0.1,0.1,0.1,0,0.2c0,0-0.2,0.2-0.6,0.3l1.6,5.6h3.8l-0.7-7 M16.4,27.3l0.8,7.1l0,0.2h-0.2H13h-0.1l0-0.1l-1.6-5.7
|
||||
c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0l-1.6,5.7l0,0.1H9.2H5.1H4.9l0-0.2l0.9-7.1"/>
|
||||
<path class="st4" d="M5.4,35.2h3.5c0.2,0,0.5-0.2,0.5-0.4l0,0c0-0.2-0.2-0.4-0.5-0.4H5.4c-0.2,0-0.5,0.2-0.5,0.4l0,0
|
||||
C4.9,35,5.1,35.2,5.4,35.2L5.4,35.2z"/>
|
||||
<path class="st3" d="M5.4,35.1h3.5C9,35.1,9,35,9.1,35c0.1-0.1,0.1-0.1,0.1-0.2c0-0.1,0-0.2-0.1-0.2C9,34.5,9,34.4,8.9,34.4H5.4
|
||||
c-0.1,0-0.2,0-0.2,0.1c-0.1,0.1-0.1,0.1-0.1,0.2c0,0.1,0,0.2,0.1,0.2C5.2,35,5.3,35.1,5.4,35.1L5.4,35.1z M8.9,35.3H5.4
|
||||
c-0.2,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.3-0.2-0.4c0-0.2,0.1-0.3,0.2-0.4c0.1-0.1,0.3-0.2,0.4-0.2h3.5c0.2,0,0.3,0.1,0.4,0.2
|
||||
c0.1,0.1,0.2,0.3,0.2,0.4c0,0.2-0.1,0.3-0.2,0.4C9.2,35.3,9,35.3,8.9,35.3L8.9,35.3z"/>
|
||||
<path class="st1" d="M4.8,37.5h4.4v-1.3C9.2,35.5,8.7,35,8,35H6.1c-0.7,0-1.3,0.6-1.3,1.3V37.5z"/>
|
||||
<path class="st3" d="M5,37.4h4.1v-1.1c0-0.3-0.1-0.6-0.3-0.8c-0.2-0.2-0.5-0.3-0.8-0.3H6.1c-0.3,0-0.6,0.1-0.8,0.3
|
||||
C5.1,35.6,5,35.9,5,36.2V37.4z M9.2,37.6H4.8H4.7v-0.1v-1.3c0-0.4,0.2-0.7,0.4-1c0.3-0.3,0.6-0.4,1-0.4H8c0.4,0,0.7,0.2,1,0.4
|
||||
c0.3,0.3,0.4,0.6,0.4,1v1.3v0.1H9.2z"/>
|
||||
<path class="st4" d="M13.4,35.2h3.5c0.2,0,0.5-0.2,0.5-0.4l0,0c0-0.2-0.2-0.4-0.5-0.4h-3.5c-0.2,0-0.5,0.2-0.5,0.4l0,0
|
||||
C12.9,35,13.1,35.2,13.4,35.2L13.4,35.2z"/>
|
||||
<path class="st3" d="M13.4,35.1h3.5c0.1,0,0.2,0,0.2-0.1c0.1-0.1,0.1-0.1,0.1-0.2c0-0.1,0-0.2-0.1-0.2c-0.1-0.1-0.1-0.1-0.2-0.1
|
||||
h-3.5c-0.1,0-0.2,0-0.2,0.1c-0.1,0.1-0.1,0.1-0.1,0.2c0,0.1,0,0.2,0.1,0.2C13.2,35,13.3,35.1,13.4,35.1L13.4,35.1z M16.9,35.3
|
||||
h-3.5c-0.2,0-0.3-0.1-0.4-0.2c-0.1-0.1-0.2-0.3-0.2-0.4c0-0.2,0.1-0.3,0.2-0.4c0.1-0.1,0.3-0.2,0.4-0.2h3.5c0.2,0,0.3,0.1,0.4,0.2
|
||||
c0.1,0.1,0.2,0.3,0.2,0.4c0,0.2-0.1,0.3-0.2,0.4C17.2,35.3,17,35.3,16.9,35.3L16.9,35.3z"/>
|
||||
<path class="st1" d="M13,37.5h4.4v-1.3c0-0.7-0.6-1.3-1.3-1.3h-1.8c-0.7,0-1.3,0.6-1.3,1.3V37.5z"/>
|
||||
<path class="st4" d="M17.4,37.5H13v-1.3c0-0.3,0.1-0.7,0.4-0.9c0.1,0,0.2,0,0.2,0c0,0,0,0.2,0,0.4v1.3h3.8V37.5z"/>
|
||||
<path class="st3" d="M13.1,37.4h4.1v-1.1c0-0.3-0.1-0.6-0.3-0.8c-0.2-0.2-0.5-0.3-0.8-0.3h-1.8c-0.3,0-0.6,0.1-0.8,0.3
|
||||
c-0.2,0.2-0.3,0.5-0.3,0.8V37.4z M17.4,37.6H13h-0.1v-0.1v-1.3c0-0.4,0.2-0.7,0.4-1c0.3-0.3,0.6-0.4,1-0.4h1.8
|
||||
c0.4,0,0.7,0.2,1,0.4c0.3,0.3,0.4,0.6,0.4,1v1.3v0.1H17.4z"/>
|
||||
<path class="st4" d="M9.1,37.4H5v-1.2c0-0.3,0.1-0.6,0.4-0.8c0.1,0,0.2,0,0.2,0c0,0,0,0.2,0,0.4v1.2h3.6V37.4z"/>
|
||||
</g>
|
||||
<path class="st5" d="M2.5,15.4C2.3,15.1,2,15,2.1,13.6c0.1-0.9-0.1-2.4,1-2.1l0,5.5l-1.6,2.1c0,0-0.2-2.7,0-3.2
|
||||
C1.8,15.4,2.3,15.4,2.5,15.4L2.5,15.4z"/>
|
||||
<path class="st4" d="M3.1,16.7l0,0.4l-1.6,2c0,0-0.1-1-0.1-1.9c0.3-0.3,0.7-0.5,1.1-0.7c0-0.1,0-0.2,0-0.4v-4.7
|
||||
c0.1-0.1,0.3-0.1,0.5,0L3.1,16.7L3.1,16.7z"/>
|
||||
<path class="st3" d="M2.7,15.3c0-0.1-0.1-0.1-0.1-0.1c-0.2-0.2-0.3-0.4-0.3-1.5l0,0c0-0.1,0-0.3,0-0.5c0-0.4,0-0.8,0.1-1.1
|
||||
c0.1-0.2,0.2-0.4,0.5-0.4l0,5.3l-1.2,1.6c0-0.8-0.1-2.2,0-2.6c0.1-0.2,0.2-0.3,0.3-0.3c0.1,0,0.3,0,0.4,0l0.4,0L2.7,15.3z
|
||||
M1.9,13.6c0,1,0.1,1.4,0.2,1.6c-0.1,0-0.1,0-0.2,0c-0.2,0.1-0.4,0.2-0.6,0.6c-0.2,0.5,0,3.3,0,3.3l0,0.5l0.3-0.4l1.6-2.1l0-0.1V17
|
||||
l0-5.5l0-0.1l-0.1,0c-0.7-0.2-1,0.1-1.1,0.6c-0.1,0.3-0.1,0.8-0.1,1.2C1.9,13.3,1.9,13.4,1.9,13.6L1.9,13.6z"/>
|
||||
<path class="st5" d="M6.1,10.5h-2c-0.6,0-1,0.5-1,1v5.3c0,0.6,0.5,1,1,1h2c0.6,0,1-0.5,1-1v-5.3C7.2,11,6.7,10.5,6.1,10.5L6.1,10.5
|
||||
z"/>
|
||||
<path class="st4" d="M3.1,16.5v0.7c0,0.6,0.5,1,1,1h2c0.6,0,1-0.5,1-1v-0.2c0,0,0,0,0.1,0v-5.2c0-0.6-0.5-1-1-1h-2
|
||||
c-0.6,0-1,0.5-1,1v1.8c0.5,0.8,1.1,1.4,1.8,2C4.4,15.9,3.7,16.2,3.1,16.5L3.1,16.5z"/>
|
||||
<path class="st3" d="M6.2,10.3h-2c-0.3,0-0.7,0.1-0.9,0.4C3.1,10.9,3,11.2,3,11.5v5.3c0,0.3,0.1,0.6,0.4,0.9
|
||||
C3.5,17.9,3.9,18,4.2,18h2c0.3,0,0.7-0.1,0.9-0.4c0.2-0.2,0.4-0.5,0.4-0.9v-5.3c0-0.3-0.1-0.6-0.4-0.9C6.8,10.5,6.5,10.3,6.2,10.3
|
||||
L6.2,10.3z M4.2,10.7h2c0.2,0,0.4,0.1,0.6,0.2C6.9,11.1,7,11.3,7,11.5v5.3c0,0.2-0.1,0.4-0.2,0.6c-0.2,0.1-0.4,0.2-0.6,0.2h-2
|
||||
c-0.2,0-0.4-0.1-0.6-0.2c-0.2-0.1-0.2-0.4-0.2-0.6v-5.3c0-0.2,0.1-0.4,0.2-0.6C3.7,10.8,4,10.7,4.2,10.7L4.2,10.7z"/>
|
||||
<path class="st5" d="M19.4,15.4c0.2-0.3,0.5-0.4,0.4-1.8c-0.1-0.9,0.1-2.4-1-2.1l0,5.5l1.6,2.1c0,0,0.2-2.7,0-3.2
|
||||
C20.2,15.4,19.7,15.4,19.4,15.4L19.4,15.4z"/>
|
||||
<path class="st4" d="M18.8,16.9l0,0.4l1.6,2c0,0,0.1-1,0.1-1.9c-0.3-0.3-0.7-0.5-1.1-0.7c0-0.1,0-0.2,0-0.4v-4.8
|
||||
c-0.1-0.1-0.3-0.1-0.5,0L18.8,16.9L18.8,16.9z"/>
|
||||
<path class="st3" d="M19.3,15.3c0-0.1,0.1-0.1,0.1-0.1c0.2-0.2,0.3-0.4,0.3-1.5l0,0c0-0.1,0-0.3,0-0.5c0-0.4,0-0.8-0.1-1.1
|
||||
c-0.1-0.2-0.2-0.4-0.5-0.4l0,5.3l1.2,1.6c0-0.8,0.1-2.2,0-2.6c-0.1-0.2-0.2-0.3-0.3-0.3c-0.1,0-0.3,0-0.4,0l-0.4,0L19.3,15.3z
|
||||
M20,13.6c0,1-0.1,1.4-0.2,1.6c0.1,0,0.1,0,0.2,0c0.2,0.1,0.4,0.2,0.6,0.6c0.2,0.5,0,3.3,0,3.3l0,0.5l-0.3-0.4l-1.6-2.1l0-0.1
|
||||
l0-0.1l0-5.5l0-0.1l0.1,0c0.7-0.2,1,0.1,1.1,0.6c0.1,0.3,0.1,0.8,0.1,1.2C20,13.3,20,13.4,20,13.6L20,13.6z"/>
|
||||
<path class="st5" d="M15.8,10.5h2c0.6,0,1,0.5,1,1v5.3c0,0.6-0.5,1-1,1h-2c-0.6,0-1-0.5-1-1v-5.3C14.8,11,15.2,10.5,15.8,10.5
|
||||
L15.8,10.5z"/>
|
||||
<path class="st4" d="M18.8,16.5v0.7c0,0.6-0.5,1-1,1h-2c-0.6,0-1-0.5-1-1v-2c0.6,0,1,0,1,0C15.9,15.3,17.4,15.8,18.8,16.5
|
||||
L18.8,16.5z"/>
|
||||
<path class="st3" d="M15.8,10.3h2c0.3,0,0.7,0.1,0.9,0.4c0.2,0.2,0.4,0.5,0.4,0.9v5.3c0,0.3-0.1,0.6-0.4,0.9
|
||||
c-0.2,0.2-0.5,0.4-0.9,0.4h-2c-0.3,0-0.7-0.1-0.9-0.4c-0.2-0.2-0.4-0.5-0.4-0.9v-5.3c0-0.3,0.1-0.6,0.4-0.9
|
||||
C15.1,10.5,15.4,10.3,15.8,10.3L15.8,10.3z M17.7,10.7h-2c-0.2,0-0.4,0.1-0.6,0.2c-0.2,0.1-0.2,0.4-0.2,0.6v5.3
|
||||
c0,0.2,0.1,0.4,0.2,0.6c0.2,0.1,0.4,0.2,0.6,0.2h2c0.2,0,0.4-0.1,0.6-0.2c0.2-0.1,0.2-0.4,0.2-0.6v-5.3c0-0.2-0.1-0.4-0.2-0.6
|
||||
C18.2,10.8,18,10.7,17.7,10.7L17.7,10.7z"/>
|
||||
<g>
|
||||
|
||||
<ellipse transform="matrix(0.9999 -1.050124e-02 1.050124e-02 0.9999 -0.2761 0.1189)" class="st6" cx="11.2" cy="26.4" rx="6.3" ry="2.7"/>
|
||||
</g>
|
||||
<path class="st2" d="M14.4,16.6c-0.3-0.1-0.6-0.2-0.6-0.2c-0.2,0-5.4,0-5.7,0c-0.1,0-0.5,0.1-1.1,0.3C9.2,18,12.2,18,14.4,16.6
|
||||
L14.4,16.6z"/>
|
||||
<path class="st6" d="M3.2,18.6l0.1,6.1c0,1.8,3.6,3.3,7.9,3.2s7.7-1.6,7.8-3.4c0-0.2,0-2.9,0-6.4l-0.1-1.3c0,1.8-3.3,0.9-7.6,0.9
|
||||
s-8.1,0.9-8.1-0.9L3.2,18.6z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st2" d="M15.7,16c-0.7-0.3-1.2-0.5-1.3-0.5c-0.9,1.3-0.7,7.7-0.8,7.9c-0.2,0.2-0.2,0.7-0.1,1.3
|
||||
c0.1,0.6,1.5,1.1,1.8,0c0.4-1.1-0.4-1.4-0.4-1.4C14.6,20.8,15.3,16.8,15.7,16L15.7,16z"/>
|
||||
<path class="st2" d="M7.5,15.6c-0.3,0.1-0.8,0.2-1.3,0.5c0.4,0.5,1.1,4.8,0.9,7.3c0,0-0.7,0.3-0.4,1.4c0.4,1.1,1.7,0.6,1.8,0
|
||||
c0.1-0.6,0-1.1-0.1-1.3C8.2,23.4,8.5,16.8,7.5,15.6L7.5,15.6z"/>
|
||||
<path class="st2" d="M7.6,15.6c-0.3,0.1-0.8,0.2-1.3,0.5c0.4,0.6,1.1,4.8,0.9,7.3c0,0-0.7,0.3-0.4,1.4c0.4,1.1,1.7,0.6,1.8,0
|
||||
c0.1-0.6,0-1.1-0.1-1.3C8.2,23.3,8.5,16.8,7.6,15.6L7.6,15.6z"/>
|
||||
<path class="st2" d="M9.4,23.6h3.2c0.5,0,0.8,0.4,0.8,0.9v1.4c0,0.5-0.4,0.9-0.8,0.9H9.4c-0.5,0-0.8-0.4-0.8-0.9v-1.4
|
||||
C8.5,24,8.9,23.6,9.4,23.6L9.4,23.6z"/>
|
||||
<path class="st1" d="M9.6,23.9h2.7c0.4,0,0.7,0.3,0.7,0.7v1.1c0,0.4-0.3,0.7-0.7,0.7H9.6c-0.4,0-0.7-0.3-0.7-0.7v-1.1
|
||||
C8.9,24.3,9.2,23.9,9.6,23.9L9.6,23.9z"/>
|
||||
<path class="st2" d="M11.5,23.9h0.3c0.5,0.1,0.9,0.5,0.9,1c0,0.6-0.5,1-1,1c-0.6,0-1-0.5-1-1C10.6,24.4,11,24,11.5,23.9
|
||||
L11.5,23.9z"/>
|
||||
<path class="st2" d="M10,24.2c0.4,0,0.8,0.3,0.8,0.8c0,0.4-0.3,0.8-0.8,0.8c-0.4,0-0.8-0.3-0.8-0.8C9.2,24.6,9.5,24.2,10,24.2
|
||||
L10,24.2z"/>
|
||||
<path class="st7" d="M11.6,24.3c0.4,0,0.7,0.3,0.7,0.7c0,0.4-0.3,0.7-0.7,0.7c-0.4,0-0.7-0.3-0.7-0.7
|
||||
C10.9,24.6,11.2,24.3,11.6,24.3L11.6,24.3z"/>
|
||||
<path class="st3" d="M11.6,24.1c0.2,0,0.4,0.1,0.6,0.2c0.1,0.1,0.2,0.4,0.2,0.6c0,0.2-0.1,0.4-0.2,0.6c-0.1,0.1-0.4,0.2-0.6,0.2
|
||||
c-0.2,0-0.4-0.1-0.6-0.2c-0.1-0.1-0.2-0.4-0.2-0.6c0-0.2,0.1-0.4,0.2-0.6C11.1,24.2,11.3,24.1,11.6,24.1L11.6,24.1z M11.9,24.6
|
||||
c-0.1-0.1-0.2-0.2-0.4-0.2c-0.1,0-0.3,0.1-0.4,0.2c-0.1,0.1-0.2,0.2-0.2,0.4c0,0.1,0.1,0.3,0.2,0.4c0.1,0.1,0.2,0.2,0.4,0.2
|
||||
c0.1,0,0.3-0.1,0.4-0.2c0.1-0.1,0.2-0.2,0.2-0.4C12.1,24.8,12,24.7,11.9,24.6L11.9,24.6z"/>
|
||||
<path class="st8" d="M10,24.6c0.2,0,0.4,0.2,0.4,0.4c0,0.2-0.2,0.4-0.4,0.4c-0.2,0-0.4-0.2-0.4-0.4C9.5,24.7,9.7,24.6,10,24.6
|
||||
L10,24.6z"/>
|
||||
<path class="st9" d="M10.3,24.7c0.1,0.1,0.1,0.2,0.1,0.3c0,0.2-0.2,0.4-0.4,0.4c-0.2-0.1-0.3-0.2-0.2-0.2
|
||||
C10,25.2,10.2,25,10.3,24.7C10.2,24.8,10.2,24.7,10.3,24.7L10.3,24.7z"/>
|
||||
<path class="st3" d="M10,24.4c0.2,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.2,0.4c0,0.2-0.1,0.3-0.2,0.4c-0.1,0.1-0.2,0.2-0.4,0.2
|
||||
c-0.2,0-0.3-0.1-0.4-0.2S9.4,25.1,9.4,25c0-0.2,0.1-0.3,0.2-0.4C9.7,24.5,9.8,24.4,10,24.4L10,24.4z M10.2,24.8
|
||||
c0,0-0.1-0.1-0.2-0.1c-0.1,0-0.1,0-0.2,0.1c0,0-0.1,0.1-0.1,0.2c0,0.1,0,0.1,0.1,0.2c0,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2-0.1
|
||||
c0,0,0.1-0.1,0.1-0.2C10.2,24.9,10.2,24.8,10.2,24.8L10.2,24.8z"/>
|
||||
<path class="st3" d="M9.6,23.8h2.7c0.2,0,0.5,0.1,0.6,0.3c0.2,0.2,0.3,0.4,0.3,0.6v1.1c0,0.2-0.1,0.5-0.3,0.6
|
||||
c-0.2,0.2-0.4,0.3-0.6,0.3H9.6c-0.2,0-0.5-0.1-0.6-0.3c-0.2-0.2-0.3-0.4-0.3-0.6v-1.1c0-0.2,0.1-0.5,0.3-0.6
|
||||
C9.1,23.9,9.4,23.8,9.6,23.8L9.6,23.8z M12.3,24.1H9.6c-0.2,0-0.3,0.1-0.4,0.2C9.1,24.4,9,24.5,9,24.7v1.1c0,0.2,0.1,0.3,0.2,0.4
|
||||
c0.1,0.1,0.2,0.2,0.4,0.2h2.7c0.2,0,0.3-0.1,0.4-0.2c0.1-0.1,0.2-0.2,0.2-0.4v-1.1c0-0.2-0.1-0.3-0.2-0.4
|
||||
C12.7,24.2,12.5,24.1,12.3,24.1L12.3,24.1z"/>
|
||||
<path class="st3" d="M7.5,23.6h0.1C8,20.3,7.3,16.8,7.2,16l-0.3,0.1c0.6,1.5,0.8,4.3,0.8,6C7.6,22.6,7.6,23.2,7.5,23.6L7.5,23.6z
|
||||
M7.9,23.7c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.2,0.1,0.3v0.4c0,0.1-0.1,0.2-0.1,0.3c-0.1,0.1-0.2,0.1-0.3,0.1H7.3
|
||||
c-0.1,0-0.2-0.1-0.3-0.1c-0.1-0.1-0.1-0.2-0.1-0.3v-0.4c0-0.1,0.1-0.2,0.1-0.3c0.1-0.1,0.1-0.1,0.2-0.1c0-0.1,0-0.1,0-0.3
|
||||
c0-0.3,0-0.7,0-1.1c0-1.8-0.1-4.6-0.8-6L6.4,16l0.2-0.1l0.6-0.2l0.2-0.1l0,0.2C7.4,15.8,8.3,19.8,7.9,23.7L7.9,23.7z M7.8,23.9
|
||||
L7.8,23.9l-0.4,0c0,0-0.1,0-0.1,0c0,0,0,0.1,0,0.1v0.4c0,0,0,0.1,0,0.1c0,0,0.1,0,0.1,0h0.4c0,0,0.1,0,0.1,0c0,0,0-0.1,0-0.1
|
||||
v-0.4C7.9,24.1,7.9,24,7.8,23.9C7.8,24,7.8,24,7.8,23.9L7.8,23.9z"/>
|
||||
<path class="st3" d="M7.6,23.6h0.1C8,20.2,7.4,16.8,7.2,16l-0.3,0.1c0.6,1.5,0.8,4.3,0.8,6C7.6,22.6,7.6,23.2,7.6,23.6L7.6,23.6z
|
||||
M8,23.7c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.2,0.1,0.3v0.4c0,0.1-0.1,0.2-0.1,0.3c-0.1,0.1-0.2,0.1-0.3,0.1H7.4
|
||||
c-0.1,0-0.2-0.1-0.3-0.1c-0.1-0.1-0.1-0.2-0.1-0.3v-0.4c0-0.1,0.1-0.2,0.1-0.3c0.1-0.1,0.1-0.1,0.2-0.1c0-0.1,0-0.1,0-0.3
|
||||
c0-0.3,0-0.7,0-1.1c0-1.8-0.1-4.6-0.8-6l-0.1-0.1l0.2-0.1l0.6-0.2l0.2-0.1l0,0.2C7.5,15.8,8.4,19.8,8,23.7L8,23.7z M7.8,23.9
|
||||
L7.8,23.9l-0.4,0c0,0-0.1,0-0.1,0c0,0,0,0.1,0,0.1v0.4c0,0,0,0.1,0,0.1c0,0,0.1,0,0.1,0h0.4c0,0,0.1,0,0.1,0c0,0,0-0.1,0-0.1
|
||||
v-0.4C7.9,24,7.9,24,7.8,23.9C7.9,23.9,7.8,23.9,7.8,23.9L7.8,23.9z"/>
|
||||
<path class="st3" d="M14.4,23.5h-0.1c-0.3-3.4,0.3-6.8,0.5-7.6L15,16c-0.6,1.5-0.8,4.3-0.8,6C14.3,22.4,14.3,23,14.4,23.5
|
||||
L14.4,23.5z M13.9,23.5c0,0-0.1,0-0.1,0.1c-0.1,0.1-0.1,0.2-0.1,0.3v0.4c0,0.1,0.1,0.2,0.1,0.3c0.1,0.1,0.2,0.1,0.3,0.1h0.4
|
||||
c0.1,0,0.2-0.1,0.3-0.1c0.1-0.1,0.1-0.2,0.1-0.3v-0.4c0-0.1-0.1-0.2-0.1-0.3c-0.1-0.1-0.1-0.1-0.2-0.1c0-0.1,0-0.1,0-0.3
|
||||
c0-0.3,0-0.7,0-1.1c0-1.8,0.1-4.6,0.8-6l0.1-0.1l-0.2-0.1l-0.6-0.2l-0.2-0.1l0,0.2C14.5,15.6,13.5,19.7,13.9,23.5L13.9,23.5z
|
||||
M14.1,23.8L14.1,23.8l0.4,0c0,0,0.1,0,0.1,0c0,0,0,0.1,0,0.1v0.4c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0h-0.4c0,0-0.1,0-0.1,0
|
||||
c0,0,0-0.1,0-0.1v-0.4C14,23.9,14,23.8,14.1,23.8C14.1,23.8,14.1,23.8,14.1,23.8L14.1,23.8z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path class="st4" d="M15.5,10.6h2c0.6,0,1,0.5,1,1v1.8c-0.6,0.9-1.3,1.7-2.2,2.4c-0.6,0.4,0,0-0.6,0.2l-0.3-4.3
|
||||
C15.4,11.2,15,10.6,15.5,10.6L15.5,10.6z"/>
|
||||
<path class="st10" d="M5.4,2.1c3.7-2.8,9.1-2.1,12,1.5c2.9,3.6,2.2,8.9-1.6,11.7c-3.7,2.8-9.1,2.1-12-1.5C1,10.2,1.7,4.9,5.4,2.1
|
||||
L5.4,2.1z"/>
|
||||
<path class="st1" d="M1.3,10.6l0.9,0C2,9.4,2,8.3,2.3,7.2l0,0l-1,0c-0.6,0-1,0.5-1,1l0,1.4C0.3,10.2,0.8,10.6,1.3,10.6L1.3,10.6z"
|
||||
/>
|
||||
<path class="st1" d="M19.9,10.5l-0.9,0c0.2-1.1,0.2-2.3,0-3.4l0,0l1,0c0.6,0,1,0.5,1,1l0,1.4C20.9,10.1,20.4,10.6,19.9,10.5
|
||||
L19.9,10.5z"/>
|
||||
<path d="M5.3,2c1.9-1.4,4.3-2,6.5-1.7c2.2,0.3,4.4,1.4,5.8,3.3c1.5,1.9,2,4.2,1.7,6.3c-0.3,2.2-1.4,4.2-3.4,5.7
|
||||
c-1.9,1.4-4.3,2-6.5,1.7c-2.2-0.3-4.4-1.4-5.8-3.3c-1.5-1.9-2-4.2-1.7-6.3C2.2,5.5,3.3,3.4,5.3,2L5.3,2z M11.7,0.7
|
||||
C9.6,0.5,7.4,1,5.6,2.3C3.7,3.7,2.7,5.6,2.4,7.7c-0.3,2.1,0.3,4.2,1.7,6c1.4,1.8,3.4,2.8,5.5,3.1c2.1,0.3,4.3-0.2,6.1-1.6
|
||||
c1.8-1.4,2.9-3.3,3.2-5.4c0.3-2.1-0.3-4.2-1.7-6C15.8,2,13.8,1,11.7,0.7L11.7,0.7z"/>
|
||||
<path class="st2" d="M1.3,10.6l0.9,0C2,9.4,2,8.3,2.3,7.2l0,0l-0.8,0C1.4,8.1,1.2,8.9,1.3,9.9l-0.9,0c0,0-0.1,0-0.1,0.1
|
||||
C0.5,10.3,0.9,10.6,1.3,10.6L1.3,10.6z"/>
|
||||
<path class="st2" d="M19.9,10.5l-0.9,0c0.2-1.1,0.2-2.3,0-3.4l0,0l0.8,0C19.8,8,20,8.9,19.8,9.9l0.9,0c0,0,0.1,0,0.1,0.1
|
||||
C20.7,10.3,20.3,10.5,19.9,10.5L19.9,10.5z"/>
|
||||
<path class="st3" d="M1.3,10.8l0.9,0l0.3,0l-0.1-0.3C2.3,10,2.3,9.4,2.3,8.9c0-0.5,0.1-1.1,0.2-1.6l0,0l0,0l0,0l0-0.2l-0.2,0l-1,0
|
||||
l0,0C0.9,7,0.6,7.1,0.3,7.3C0.1,7.6,0,7.9,0,8.2v0l0,1.4c0,0.3,0.2,0.6,0.4,0.9C0.7,10.7,1,10.8,1.3,10.8L1.3,10.8z M1.9,10.3
|
||||
l-0.6,0c-0.2,0-0.4-0.1-0.6-0.2C0.6,10,0.5,9.8,0.5,9.6l0-1.4l0,0c0-0.2,0.1-0.4,0.2-0.5C0.8,7.5,1,7.4,1.2,7.4h0l0.7,0
|
||||
c-0.1,0.5-0.1,1-0.2,1.5C1.8,9.4,1.9,9.8,1.9,10.3L1.9,10.3z"/>
|
||||
<path class="st3" d="M19.9,10.8l-0.9,0l-0.3,0l0.1-0.3c0.1-0.5,0.2-1.1,0.1-1.6c0-0.5-0.1-1.1-0.2-1.6l0,0l0,0l0,0l0-0.2l0.2,0l1,0
|
||||
h0c0.3,0,0.7,0.2,0.9,0.4c0.2,0.2,0.4,0.5,0.3,0.9v0l0,1.4c0,0.3-0.2,0.6-0.4,0.9C20.5,10.6,20.2,10.8,19.9,10.8L19.9,10.8z
|
||||
M19.3,10.3l0.6,0c0.2,0,0.4-0.1,0.6-0.2c0.1-0.1,0.2-0.3,0.2-0.5l0-1.4l0,0c0-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.3-0.2-0.5-0.2l0,0
|
||||
l-0.7,0c0.1,0.5,0.1,1,0.2,1.5C19.4,9.3,19.3,9.8,19.3,10.3L19.3,10.3z"/>
|
||||
<path class="st1" d="M19.1,9.8c-0.3,2.1-1.4,4.2-3.3,5.6c-3.7,2.8-9.1,2.1-12-1.5c-0.6-0.8-1.1-1.7-1.4-2.6
|
||||
C5.7,16.6,14.9,18.9,19.1,9.8L19.1,9.8z"/>
|
||||
<path class="st3" d="M19.4,9.8c-0.1,1.1-0.5,2.2-1.1,3.2c-0.6,1-1.3,1.8-2.3,2.5c-1.9,1.4-4.3,2-6.5,1.7c-2.2-0.3-4.4-1.4-5.8-3.3
|
||||
c-0.3-0.4-0.6-0.8-0.8-1.3c-0.2-0.5-0.4-0.9-0.6-1.4L1.9,9.8l0.7,1.3c1,1.7,2.6,3.1,4.5,3.9c1.2,0.5,2.4,0.8,3.7,0.8
|
||||
c1.3,0,2.5-0.3,3.7-1c1.7-0.9,3.2-2.6,4.3-5.1l0.5-1.4L19.4,9.8z M17.8,12.8c0.2-0.4,0.4-0.8,0.6-1.2c-1,1.7-2.3,2.8-3.6,3.6
|
||||
c-1.3,0.7-2.6,1-4,1.1c-1.3,0-2.7-0.3-3.9-0.8c-1.2-0.5-2.4-1.3-3.3-2.3c0.1,0.2,0.3,0.4,0.4,0.6c1.4,1.8,3.4,2.8,5.5,3.1
|
||||
c2.1,0.3,4.3-0.2,6.1-1.6C16.6,14.5,17.3,13.7,17.8,12.8L17.8,12.8z"/>
|
||||
<path class="st1" d="M5.4,2c3.7-2.8,9.1-2.1,12,1.5c1.4,1.8,2,4,1.7,6.1c-0.8-3.3-2.3-5.1-4.3-6.1c-3.1-1.6-6.3-1.8-9.6,1
|
||||
c-2.4,2-2.7,4.5-2.8,6.6C1.4,7.8,2.5,4.1,5.4,2L5.4,2z"/>
|
||||
<path class="st3" d="M5.3,1.8c1.9-1.4,4.3-2,6.5-1.7c2.2,0.3,4.4,1.4,5.8,3.3c0.7,0.9,1.2,1.9,1.5,3c0.3,1.1,0.4,2.2,0.2,3.3
|
||||
l-0.2,1.3l-0.3-1.3c-0.4-1.6-0.9-2.9-1.6-3.9c-0.7-1-1.6-1.6-2.5-2.1c-1.5-0.8-3-1.2-4.6-1.1C8.6,2.6,7,3.2,5.4,4.6
|
||||
c-1.2,1-1.8,2.1-2.2,3.2C2.9,8.9,2.8,10,2.7,11l-0.1,1.2l-0.4-1.2c-0.5-1.7-0.5-3.5,0-5.1C2.8,4.3,3.8,2.9,5.3,1.8L5.3,1.8z
|
||||
M11.7,0.5C9.6,0.3,7.4,0.8,5.6,2.1c-1.4,1-2.4,2.4-2.9,3.9C2.3,7.2,2.2,8.3,2.4,9.5c0.1-0.6,0.2-1.2,0.4-1.9
|
||||
c0.4-1.2,1.1-2.3,2.3-3.4c1.7-1.4,3.3-2.1,5-2.2c1.6-0.1,3.3,0.4,4.8,1.2c1,0.5,1.9,1.3,2.7,2.3C18.1,6.2,18.6,7,18.9,8
|
||||
c0-0.5-0.1-1.1-0.3-1.6c-0.3-1-0.8-1.9-1.4-2.8C15.8,1.9,13.8,0.8,11.7,0.5L11.7,0.5z"/>
|
||||
<path class="st5" d="M19.2,8.8c0,0.2,0,0.5-0.1,0.7c-0.8-3.3-2.3-5.1-4.3-6.1C11.7,1.8,7.4,1.9,4.7,4.6C3.9,5.4,2.5,7.2,2.4,9.7
|
||||
C2,7.2,3,4.9,5.4,3c3.7-2.8,9.1-2.1,12,1.5C18.5,5.8,19,7.3,19.2,8.8L19.2,8.8z"/>
|
||||
<path class="st3" d="M19.4,8.8c0,0.1,0,0.3,0,0.4c0,0.1,0,0.2,0,0.4l-0.1,1.1l-0.2-1.1C18.5,8,18,6.7,17.3,5.7
|
||||
c-0.7-1-1.6-1.6-2.5-2.1c-1.6-0.8-3.5-1.2-5.3-1C7.7,2.8,6.1,3.5,4.9,4.7C4.4,5.2,3.7,6,3.2,7.1C2.9,7.8,2.6,8.7,2.6,9.7l-0.1,2.1
|
||||
l-0.3-2C2,8.4,2.1,7.2,2.7,6c0.5-1.1,1.4-2.2,2.6-3.1l0,0l0,0c1.9-1.4,4.2-2,6.5-1.7c2.2,0.3,4.3,1.4,5.8,3.2l0,0l0,0
|
||||
c0.5,0.6,0.9,1.3,1.2,2.1C19.1,7.3,19.3,8,19.4,8.8L19.4,8.8L19.4,8.8z M17.6,5.5c0.5,0.7,0.9,1.4,1.2,2.4
|
||||
c-0.1-0.4-0.2-0.8-0.4-1.2c-0.3-0.7-0.7-1.4-1.2-2l0,0c-1.4-1.8-3.4-2.8-5.5-3.1C9.6,1.3,7.4,1.8,5.6,3.2l0,0c-1.2,0.9-2,1.9-2.5,3
|
||||
c-0.2,0.5-0.4,1-0.5,1.5c0.1-0.2,0.2-0.5,0.3-0.7c0.5-1.1,1.3-2,1.8-2.5c1.3-1.3,3-2,4.8-2.2c1.9-0.2,3.9,0.2,5.5,1
|
||||
C16,3.8,16.9,4.5,17.6,5.5L17.6,5.5z"/>
|
||||
<path class="st5" d="M3.8,8.2c0,0,1.4-4.1,6.2-4.5c0.5-0.1,1.1,1.3,0.4,1.4c-0.7,0.2-3.6,0.6-5.4,4C4.7,9.4,3.5,8.9,3.8,8.2
|
||||
L3.8,8.2z"/>
|
||||
<path class="st5" d="M12.4,5.1c0.4,0,0.7-0.3,0.7-0.7c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7C11.7,4.8,12,5.1,12.4,5.1
|
||||
L12.4,5.1z"/>
|
||||
<path class="st11" d="M10.9,18.4l-1.5,2.3l0.9,0.6l0.1-0.2l0.5,2.2l1.5-2.3l-0.8-0.5l-0.1,0.2L10.9,18.4z M11.6,20.7l0.4,0.2
|
||||
l-1,1.5l-0.5-2.2l-0.4,0.6l-0.4-0.2l1-1.5l0.4,2.1L11.6,20.7z"/>
|
||||
<g class="st12">
|
||||
<circle class="st13" cx="14.1" cy="8.9" r="1.8"/>
|
||||
<circle cx="14.4" cy="8.7" r="0.7"/>
|
||||
<circle class="st13" cx="7.1" cy="8.9" r="1.8"/>
|
||||
<path id="XMLID_00000028285902548687721290000002641907447975500945_" class="st14" d="M10.8,14.1c-1.6,0-2.7-0.7-3.3-1.1
|
||||
c-0.1-0.1-0.1-0.2,0-0.3c0.1-0.1,0.2-0.1,0.3,0c0.5,0.4,1.7,1.1,3.3,1c1.4,0,2.4-0.7,2.9-1c0.1-0.1,0.2,0,0.3,0
|
||||
c0.1,0.1,0,0.2,0,0.3c-0.5,0.4-1.6,1-3.1,1.1C10.9,14.1,10.9,14.1,10.8,14.1z"/>
|
||||
<circle cx="7.6" cy="8.6" r="0.7"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 22 KiB |
@ -1,49 +0,0 @@
|
||||
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
|
||||
import Register from "./register/Register";
|
||||
import Console from "./console/Console";
|
||||
import {useEffect, useState} from "react";
|
||||
import Login from "./console/login/Login";
|
||||
import ResetPassword from "./resetPassword/ResetPassword"
|
||||
|
||||
const App = () => {
|
||||
const [user, setUser] = useState();
|
||||
|
||||
useEffect(() => {
|
||||
function checkUserData() {
|
||||
const localUser = localStorage.getItem("user");
|
||||
if(localUser) {
|
||||
console.log(localUser)
|
||||
setUser(JSON.parse(localUser));
|
||||
console.log("reloaded user", localUser);
|
||||
}
|
||||
}
|
||||
|
||||
checkUserData()
|
||||
|
||||
document.addEventListener('storage', checkUserData)
|
||||
|
||||
return () => {
|
||||
document.removeEventListener('storage', checkUserData)
|
||||
}
|
||||
}, []);
|
||||
|
||||
const logout = () => {
|
||||
setUser(null);
|
||||
localStorage.clear();
|
||||
}
|
||||
|
||||
const consoleComponent = user ? <Console logout={logout} user={user} /> : <Login loginSuccess={setUser} />
|
||||
|
||||
return (
|
||||
<Router>
|
||||
<Routes>
|
||||
<Route path={"/"} element={consoleComponent}/>
|
||||
<Route path={"register/:token"} element={<Register />} />
|
||||
<Route path={"resetPassword"} element={<ResetPassword />}/>
|
||||
<Route path={"resetPassword/:token"} element={<ResetPassword />}/>
|
||||
</Routes>
|
||||
</Router>
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
@ -1,181 +0,0 @@
|
||||
/** @module account */
|
||||
// Auto-generated, edits will be overwritten
|
||||
import * as gateway from './gateway'
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} changed password
|
||||
*/
|
||||
export function changePassword(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(changePasswordOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.inviteRequest} [options.body]
|
||||
* @return {Promise<object>} invitation created
|
||||
*/
|
||||
export function invite(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(inviteOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.loginRequest} [options.body]
|
||||
* @return {Promise<module:types.loginResponse>} login successful
|
||||
*/
|
||||
export function login(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(loginOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} regenerate account token
|
||||
*/
|
||||
export function regenerateToken(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(regenerateTokenOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.registerRequest} [options.body]
|
||||
* @return {Promise<module:types.registerResponse>} account created
|
||||
*/
|
||||
export function register(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(registerOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.resetPasswordRequest} [options.body]
|
||||
* @return {Promise<object>} password reset
|
||||
*/
|
||||
export function resetPassword(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(resetPasswordOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} forgot password request created
|
||||
*/
|
||||
export function resetPasswordRequest(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(resetPasswordRequestOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.verifyRequest} [options.body]
|
||||
* @return {Promise<module:types.verifyResponse>} token ready
|
||||
*/
|
||||
export function verify(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(verifyOperation, parameters)
|
||||
}
|
||||
|
||||
const changePasswordOperation = {
|
||||
path: '/changePassword',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const inviteOperation = {
|
||||
path: '/invite',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post'
|
||||
}
|
||||
|
||||
const loginOperation = {
|
||||
path: '/login',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post'
|
||||
}
|
||||
|
||||
const regenerateTokenOperation = {
|
||||
path: '/regenerateToken',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const registerOperation = {
|
||||
path: '/register',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post'
|
||||
}
|
||||
|
||||
const resetPasswordOperation = {
|
||||
path: '/resetPassword',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post'
|
||||
}
|
||||
|
||||
const resetPasswordRequestOperation = {
|
||||
path: '/resetPasswordRequest',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post'
|
||||
}
|
||||
|
||||
const verifyOperation = {
|
||||
path: '/verify',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post'
|
||||
}
|
@ -1,347 +0,0 @@
|
||||
/** @module admin */
|
||||
// Auto-generated, edits will be overwritten
|
||||
import * as gateway from './gateway'
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} created
|
||||
*/
|
||||
export function createAccount(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(createAccountOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.createFrontendRequest} [options.body]
|
||||
* @return {Promise<module:types.createFrontendResponse>} frontend created
|
||||
*/
|
||||
export function createFrontend(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(createFrontendOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.updateFrontendRequest} [options.body]
|
||||
* @return {Promise<object>} frontend updated
|
||||
*/
|
||||
export function updateFrontend(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(updateFrontendOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.deleteFrontendRequest} [options.body]
|
||||
* @return {Promise<object>} frontend deleted
|
||||
*/
|
||||
export function deleteFrontend(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(deleteFrontendOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function listFrontends() {
|
||||
return gateway.request(listFrontendsOperation)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} ok
|
||||
*/
|
||||
export function grants(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(grantsOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} created
|
||||
*/
|
||||
export function createIdentity(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(createIdentityOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.inviteTokenGenerateRequest} [options.body]
|
||||
* @return {Promise<object>} invitation tokens created
|
||||
*/
|
||||
export function inviteTokenGenerate(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(inviteTokenGenerateOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} organization created
|
||||
*/
|
||||
export function createOrganization(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(createOrganizationOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} organization deleted
|
||||
*/
|
||||
export function deleteOrganization(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(deleteOrganizationOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} member added
|
||||
*/
|
||||
export function addOrganizationMember(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(addOrganizationMemberOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} list organization members
|
||||
*/
|
||||
export function listOrganizationMembers(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(listOrganizationMembersOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} member removed
|
||||
*/
|
||||
export function removeOrganizationMember(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(removeOrganizationMemberOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function listOrganizations() {
|
||||
return gateway.request(listOrganizationsOperation)
|
||||
}
|
||||
|
||||
const createAccountOperation = {
|
||||
path: '/account',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const createFrontendOperation = {
|
||||
path: '/frontend',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const updateFrontendOperation = {
|
||||
path: '/frontend',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'patch',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const deleteFrontendOperation = {
|
||||
path: '/frontend',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'delete',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const listFrontendsOperation = {
|
||||
path: '/frontends',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const grantsOperation = {
|
||||
path: '/grants',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const createIdentityOperation = {
|
||||
path: '/identity',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const inviteTokenGenerateOperation = {
|
||||
path: '/invite/token/generate',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const createOrganizationOperation = {
|
||||
path: '/organization',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const deleteOrganizationOperation = {
|
||||
path: '/organization',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'delete',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const addOrganizationMemberOperation = {
|
||||
path: '/organization/add',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const listOrganizationMembersOperation = {
|
||||
path: '/organization/list',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const removeOrganizationMemberOperation = {
|
||||
path: '/organization/remove',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const listOrganizationsOperation = {
|
||||
path: '/organizations',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
/** @module environment */
|
||||
// Auto-generated, edits will be overwritten
|
||||
import * as gateway from './gateway'
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.enableRequest} [options.body]
|
||||
* @return {Promise<module:types.enableResponse>} environment enabled
|
||||
*/
|
||||
export function enable(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(enableOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {module:types.disableRequest} [options.body]
|
||||
* @return {Promise<object>} environment disabled
|
||||
*/
|
||||
export function disable(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(disableOperation, parameters)
|
||||
}
|
||||
|
||||
const enableOperation = {
|
||||
path: '/enable',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const disableOperation = {
|
||||
path: '/disable',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
@ -1,281 +0,0 @@
|
||||
// Auto-generated, edits will be overwritten
|
||||
import spec from './spec'
|
||||
|
||||
export class ServiceError extends Error {}
|
||||
|
||||
let options = {}
|
||||
|
||||
export function init(serviceOptions) {
|
||||
options = serviceOptions
|
||||
}
|
||||
|
||||
export function request(op, parameters, attempt) {
|
||||
if (!attempt) attempt = 1;
|
||||
return acquireRights(op, spec, options)
|
||||
.then(rights => {
|
||||
parameters = parameters || {}
|
||||
const baseUrl = getBaseUrl(spec)
|
||||
let reqInfo = { parameters, baseUrl }
|
||||
if (options.processRequest) {
|
||||
reqInfo = options.processRequest(op, reqInfo)
|
||||
}
|
||||
const req = buildRequest(op, reqInfo.baseUrl, reqInfo.parameters, rights)
|
||||
return makeFetchRequest(req)
|
||||
.then(res => processResponse(req, res, attempt, options), e => processError(req, e))
|
||||
.then(outcome => outcome.retry ? request(op, parameters, attempt + 1) : outcome.res)
|
||||
})
|
||||
}
|
||||
|
||||
function acquireRights(op, spec, options) {
|
||||
if (op.security && options.getAuthorization) {
|
||||
return op.security.reduce((promise, security) => {
|
||||
return promise.then(rights => {
|
||||
const securityDefinition = spec.securityDefinitions[security.id]
|
||||
return options.getAuthorization(security, securityDefinition, op)
|
||||
.then(auth => {
|
||||
rights[security.id] = auth
|
||||
return rights
|
||||
})
|
||||
})
|
||||
}, Promise.resolve({}))
|
||||
}
|
||||
return Promise.resolve({})
|
||||
}
|
||||
|
||||
function makeFetchRequest(req) {
|
||||
let fetchOptions = {
|
||||
compress: true,
|
||||
method: (req.method || 'get').toUpperCase(),
|
||||
headers: req.headers,
|
||||
body: req.body ? JSON.stringify(req.body) : undefined
|
||||
}
|
||||
|
||||
if (options.fetchOptions) {
|
||||
const opts = options.fetchOptions
|
||||
const headers = opts.headers
|
||||
? Object.assign(fetchOptions.headers, opts.headers)
|
||||
: fetchOptions.headers
|
||||
|
||||
fetchOptions = Object.assign({}, fetchOptions, opts)
|
||||
fetchOptions.headers = headers
|
||||
}
|
||||
|
||||
let promise = fetch(req.url, fetchOptions)
|
||||
return promise
|
||||
}
|
||||
|
||||
function buildRequest(op, baseUrl, parameters, rights) {
|
||||
let paramGroups = groupParams(op, parameters)
|
||||
paramGroups = applyAuthorization(paramGroups, rights, spec)
|
||||
const url = buildUrl(op, baseUrl, paramGroups, spec)
|
||||
const headers = buildHeaders(op, paramGroups)
|
||||
const body = buildBody(parameters.body)
|
||||
return {
|
||||
method: op.method,
|
||||
url,
|
||||
headers,
|
||||
body
|
||||
}
|
||||
}
|
||||
|
||||
function groupParams(op, parameters) {
|
||||
const groups = ['header', 'path', 'query', 'formData'].reduce((groups, name) => {
|
||||
groups[name] = formatParamsGroup(groups[name])
|
||||
return groups
|
||||
}, parameters)
|
||||
if (!groups.header) groups.header = {}
|
||||
return groups
|
||||
}
|
||||
|
||||
function formatParamsGroup(groups) {
|
||||
return Object.keys(groups || {}).reduce((g, name) => {
|
||||
const param = groups[name]
|
||||
if (param !== undefined) {
|
||||
g[name] = formatParam(param)
|
||||
}
|
||||
return g
|
||||
}, {})
|
||||
}
|
||||
|
||||
function formatParam(param) {
|
||||
if (param === undefined || param === null) return ''
|
||||
else if (param instanceof Date) return param.toJSON()
|
||||
else if (Array.isArray(param)) return param
|
||||
else return param.toString()
|
||||
}
|
||||
|
||||
function buildUrl(op, baseUrl, parameters, spec) {
|
||||
let url = `${baseUrl}${op.path}`
|
||||
if (parameters.path) {
|
||||
url = Object.keys(parameters.path)
|
||||
.reduce((url, name) => url.replace(`{${name}}`, parameters.path[name]), url)
|
||||
}
|
||||
const query = createQueryString(parameters.query)
|
||||
return url + query
|
||||
}
|
||||
|
||||
function getBaseUrl(spec) {
|
||||
return options.url || `${spec.schemes[0] || 'https'}://${spec.host}${spec.basePath}`
|
||||
}
|
||||
|
||||
function createQueryParam(name, value) {
|
||||
const v = formatParam(value)
|
||||
if (v && typeof v === 'string') return `${name}=${encodeURIComponent(v)}`
|
||||
return name;
|
||||
}
|
||||
|
||||
function createQueryString(query) {
|
||||
const names = Object.keys(query || {})
|
||||
if (!names.length) return ''
|
||||
const params = names.map(name => ({name, value: query[name]}))
|
||||
.reduce((acc, value) => {
|
||||
if (Array.isArray(value.value)) {
|
||||
return acc.concat(value.value)
|
||||
} else {
|
||||
acc.push(createQueryParam(value.name, value.value))
|
||||
return acc
|
||||
}
|
||||
}, [])
|
||||
return '?' + params.sort().join('&')
|
||||
}
|
||||
|
||||
function buildHeaders(op, parameters) {
|
||||
const headers = {}
|
||||
|
||||
let accepts
|
||||
if (op.accepts && op.accepts.length) accepts = op.accepts
|
||||
else if (spec.accepts && spec.accepts.length) accepts = spec.accepts
|
||||
else accepts = [ 'application/json' ]
|
||||
|
||||
headers.Accept = accepts.join(', ')
|
||||
|
||||
let contentType
|
||||
if (op.contentTypes && op.contentTypes[0]) contentType = op.contentTypes[0]
|
||||
else if (spec.contentTypes && spec.contentTypes[0]) contentType = spec.contentTypes[0]
|
||||
if (contentType) headers['Content-Type'] = contentType
|
||||
|
||||
return Object.assign(headers, parameters.header)
|
||||
}
|
||||
|
||||
function buildBody(bodyParams) {
|
||||
if (bodyParams) {
|
||||
if (bodyParams.body) return bodyParams.body
|
||||
const key = Object.keys(bodyParams)[0]
|
||||
if (key) return bodyParams[key]
|
||||
}
|
||||
return undefined
|
||||
}
|
||||
|
||||
function resolveAuthHeaderName(headerName){
|
||||
if (options.authorizationHeader && headerName.toLowerCase() === 'authorization') {
|
||||
return options.authorizationHeader
|
||||
} else {
|
||||
return headerName
|
||||
}
|
||||
}
|
||||
|
||||
function applyAuthorization(req, rights, spec) {
|
||||
Object.keys(rights).forEach(name => {
|
||||
const rightsInfo = rights[name]
|
||||
const definition = spec.securityDefinitions[name]
|
||||
switch (definition.type) {
|
||||
case 'basic':
|
||||
const creds = `${rightsInfo.username}:${rightsInfo.password}`
|
||||
const token = (typeof window !== 'undefined' && window.btoa)
|
||||
? window.btoa(creds)
|
||||
: new Buffer(creds).toString('base64')
|
||||
req.header[resolveAuthHeaderName('Authorization')] = `Basic ${token}`
|
||||
break
|
||||
case 'oauth2':
|
||||
req.header[resolveAuthHeaderName('Authorization')] = `Bearer ${rightsInfo.token}`
|
||||
break
|
||||
case 'apiKey':
|
||||
if (definition.in === 'header') {
|
||||
req.header[resolveAuthHeaderName(definition.name)] = rightsInfo.apiKey
|
||||
} else if (definition.in === 'query') {
|
||||
req.query[definition.name] = rightsInfo.apiKey
|
||||
} else {
|
||||
throw new Error(`Api key must be in header or query not '${definition.in}'`)
|
||||
}
|
||||
break
|
||||
default:
|
||||
throw new Error(`Security definition type '${definition.type}' not supported`)
|
||||
}
|
||||
})
|
||||
return req
|
||||
}
|
||||
|
||||
function processResponse(req, response, attempt, options) {
|
||||
const format = response.ok ? formatResponse : formatServiceError
|
||||
const contentType = response.headers.get('content-type') || ''
|
||||
|
||||
let parse
|
||||
if (response.status === 204) {
|
||||
parse = Promise.resolve()
|
||||
} else if (~contentType.indexOf('json')) {
|
||||
parse = response.json()
|
||||
} else if (~contentType.indexOf('octet-stream')) {
|
||||
parse = response.blob()
|
||||
} else if (~contentType.indexOf('text')) {
|
||||
parse = response.text()
|
||||
} else {
|
||||
parse = Promise.resolve()
|
||||
}
|
||||
|
||||
return parse
|
||||
.then(data => format(response, data, options))
|
||||
.then(res => {
|
||||
if (options.processResponse) return options.processResponse(req, res, attempt)
|
||||
else return Promise.resolve({ res })
|
||||
})
|
||||
}
|
||||
|
||||
function formatResponse(response, data, options) {
|
||||
return { raw: response, data }
|
||||
}
|
||||
|
||||
function formatServiceError(response, data, options) {
|
||||
if (options.formatServiceError) {
|
||||
data = options.formatServiceError(response, data)
|
||||
} else {
|
||||
const serviceError = new ServiceError()
|
||||
if (data) {
|
||||
if (typeof data === 'string') serviceError.message = data
|
||||
else {
|
||||
if (data.message) serviceError.message = data.message
|
||||
if (data.body) serviceError.body = data.body
|
||||
else serviceError.body = data
|
||||
}
|
||||
|
||||
if (data.code) serviceError.code = data.code
|
||||
} else {
|
||||
serviceError.message = response.statusText
|
||||
}
|
||||
serviceError.status = response.status
|
||||
data = serviceError
|
||||
}
|
||||
return { raw: response, data, error: true }
|
||||
}
|
||||
|
||||
function processError(req, error) {
|
||||
const { processError } = options
|
||||
const res = { res: { raw: {}, data: error, error: true } }
|
||||
|
||||
return Promise.resolve(processError ? processError(req, res) : res)
|
||||
}
|
||||
|
||||
const COLLECTION_DELIM = { csv: ',', multi: '&', pipes: '|', ssv: ' ', tsv: '\t' }
|
||||
|
||||
export function formatArrayParam(array, format, name) {
|
||||
if (!array) return
|
||||
if (format === 'multi') return array.map(value => createQueryParam(name, value))
|
||||
const delim = COLLECTION_DELIM[format]
|
||||
if (!delim) throw new Error(`Invalid collection format '${format}'`)
|
||||
return array.map(formatParam).join(delim)
|
||||
}
|
||||
|
||||
export function formatDate(date, format) {
|
||||
if (!date) return
|
||||
const str = date.toISOString()
|
||||
return (format === 'date') ? str.split('T')[0] : str
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
|
||||
// Auto-generated, edits will be overwritten
|
||||
const spec = {
|
||||
'host': 'localhost',
|
||||
'schemes': [
|
||||
'http'
|
||||
],
|
||||
'basePath': '/api/v1',
|
||||
'contentTypes': [
|
||||
'application/zrok.v1+json'
|
||||
],
|
||||
'accepts': [
|
||||
'application/zrok.v1+json'
|
||||
],
|
||||
'securityDefinitions': {
|
||||
'key': {
|
||||
'type': 'apiKey',
|
||||
'in': 'header',
|
||||
'name': 'x-token'
|
||||
}
|
||||
}
|
||||
}
|
||||
export default spec
|
@ -1,299 +0,0 @@
|
||||
/** @module metadata */
|
||||
// Auto-generated, edits will be overwritten
|
||||
import * as gateway from './gateway'
|
||||
|
||||
/**
|
||||
*/
|
||||
export function configuration() {
|
||||
return gateway.request(configurationOperation)
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function getAccountDetail() {
|
||||
return gateway.request(getAccountDetailOperation)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} envZId
|
||||
* @return {Promise<module:types.environmentAndResources>} ok
|
||||
*/
|
||||
export function getEnvironmentDetail(envZId) {
|
||||
const parameters = {
|
||||
path: {
|
||||
envZId
|
||||
}
|
||||
}
|
||||
return gateway.request(getEnvironmentDetailOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} feId
|
||||
* @return {Promise<module:types.frontend>} ok
|
||||
*/
|
||||
export function getFrontendDetail(feId) {
|
||||
const parameters = {
|
||||
path: {
|
||||
feId
|
||||
}
|
||||
}
|
||||
return gateway.request(getFrontendDetailOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} shrToken
|
||||
* @return {Promise<module:types.share>} ok
|
||||
*/
|
||||
export function getShareDetail(shrToken) {
|
||||
const parameters = {
|
||||
path: {
|
||||
shrToken
|
||||
}
|
||||
}
|
||||
return gateway.request(getShareDetailOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} organizationToken
|
||||
* @return {Promise<object>} ok
|
||||
*/
|
||||
export function listOrgMembers(organizationToken) {
|
||||
const parameters = {
|
||||
path: {
|
||||
organizationToken
|
||||
}
|
||||
}
|
||||
return gateway.request(listOrgMembersOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function listMemberships() {
|
||||
return gateway.request(listMembershipsOperation)
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function overview() {
|
||||
return gateway.request(overviewOperation)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} organizationToken
|
||||
* @param {string} accountEmail
|
||||
* @return {Promise<module:types.overview>} ok
|
||||
*/
|
||||
export function orgAccountOverview(organizationToken, accountEmail) {
|
||||
const parameters = {
|
||||
path: {
|
||||
organizationToken,
|
||||
accountEmail
|
||||
}
|
||||
}
|
||||
return gateway.request(orgAccountOverviewOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {string} [options.duration]
|
||||
* @return {Promise<module:types.metrics>} account metrics
|
||||
*/
|
||||
export function getAccountMetrics(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
query: {
|
||||
duration: options.duration
|
||||
}
|
||||
}
|
||||
return gateway.request(getAccountMetricsOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} envId
|
||||
* @param {object} options Optional options
|
||||
* @param {string} [options.duration]
|
||||
* @return {Promise<module:types.metrics>} environment metrics
|
||||
*/
|
||||
export function getEnvironmentMetrics(envId, options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
path: {
|
||||
envId
|
||||
},
|
||||
query: {
|
||||
duration: options.duration
|
||||
}
|
||||
}
|
||||
return gateway.request(getEnvironmentMetricsOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} shrToken
|
||||
* @param {object} options Optional options
|
||||
* @param {string} [options.duration]
|
||||
* @return {Promise<module:types.metrics>} share metrics
|
||||
*/
|
||||
export function getShareMetrics(shrToken, options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
path: {
|
||||
shrToken
|
||||
},
|
||||
query: {
|
||||
duration: options.duration
|
||||
}
|
||||
}
|
||||
return gateway.request(getShareMetricsOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} options Optional options
|
||||
* @param {object} [options.body]
|
||||
* @return {Promise<object>} sparklines data
|
||||
*/
|
||||
export function getSparklines(options) {
|
||||
if (!options) options = {}
|
||||
const parameters = {
|
||||
body: {
|
||||
body: options.body
|
||||
}
|
||||
}
|
||||
return gateway.request(getSparklinesOperation, parameters)
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
export function version() {
|
||||
return gateway.request(versionOperation)
|
||||
}
|
||||
|
||||
const configurationOperation = {
|
||||
path: '/configuration',
|
||||
method: 'get'
|
||||
}
|
||||
|
||||
const getAccountDetailOperation = {
|
||||
path: '/detail/account',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getEnvironmentDetailOperation = {
|
||||
path: '/detail/environment/{envZId}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getFrontendDetailOperation = {
|
||||
path: '/detail/frontend/{feId}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getShareDetailOperation = {
|
||||
path: '/detail/share/{shrToken}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const listOrgMembersOperation = {
|
||||
path: '/members/{organizationToken}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const listMembershipsOperation = {
|
||||
path: '/memberships',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const overviewOperation = {
|
||||
path: '/overview',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const orgAccountOverviewOperation = {
|
||||
path: '/overview/{organizationToken}/{accountEmail}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getAccountMetricsOperation = {
|
||||
path: '/metrics/account',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getEnvironmentMetricsOperation = {
|
||||
path: '/metrics/environment/{envId}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getShareMetricsOperation = {
|
||||
path: '/metrics/share/{shrToken}',
|
||||
method: 'get',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getSparklinesOperation = {
|
||||
path: '/sparklines',
|
||||
contentTypes: ['application/zrok.v1+json'],
|
||||
method: 'post',
|
||||
security: [
|
||||
{
|
||||
id: 'key'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const versionOperation = {
|
||||
path: '/version',
|
||||
method: 'get'
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user