Updates
This commit is contained in:
parent
971695c6c2
commit
c5bbe1361a
2
dist/web/BUILD_ID
vendored
2
dist/web/BUILD_ID
vendored
@ -1 +1 @@
|
|||||||
Ac6Q3W_cSGiBJUiUxpsfm
|
hp8Dmk2dba-pzMh79OIf7
|
||||||
42
dist/web/build-manifest.json
vendored
42
dist/web/build-manifest.json
vendored
@ -5,8 +5,8 @@
|
|||||||
"devFiles": [],
|
"devFiles": [],
|
||||||
"ampDevFiles": [],
|
"ampDevFiles": [],
|
||||||
"lowPriorityFiles": [
|
"lowPriorityFiles": [
|
||||||
"static/Ac6Q3W_cSGiBJUiUxpsfm/_buildManifest.js",
|
"static/hp8Dmk2dba-pzMh79OIf7/_buildManifest.js",
|
||||||
"static/Ac6Q3W_cSGiBJUiUxpsfm/_ssgManifest.js"
|
"static/hp8Dmk2dba-pzMh79OIf7/_ssgManifest.js"
|
||||||
],
|
],
|
||||||
"rootMainFiles": [],
|
"rootMainFiles": [],
|
||||||
"pages": {
|
"pages": {
|
||||||
@ -54,9 +54,9 @@
|
|||||||
"static/chunks/433-ace0b205fb566ad3.js",
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/827-7975edcf8481ec69.js",
|
"static/chunks/827-7975edcf8481ec69.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/464-f898cadde407dd9f.js",
|
"static/chunks/926-4b397e2b281b7271.js",
|
||||||
"static/chunks/pages/admin-8a0fdb80e9b4248f.js"
|
"static/chunks/pages/admin-914586c03dfda5c1.js"
|
||||||
],
|
],
|
||||||
"/admin/services": [
|
"/admin/services": [
|
||||||
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
||||||
@ -68,9 +68,9 @@
|
|||||||
"static/chunks/433-ace0b205fb566ad3.js",
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/827-7975edcf8481ec69.js",
|
"static/chunks/827-7975edcf8481ec69.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/464-f898cadde407dd9f.js",
|
"static/chunks/926-4b397e2b281b7271.js",
|
||||||
"static/chunks/pages/admin/services-68efb2b49e62c913.js"
|
"static/chunks/pages/admin/services-16971626ad193c95.js"
|
||||||
],
|
],
|
||||||
"/admin/services/[service_name]": [
|
"/admin/services/[service_name]": [
|
||||||
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
||||||
@ -82,9 +82,9 @@
|
|||||||
"static/chunks/433-ace0b205fb566ad3.js",
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/827-7975edcf8481ec69.js",
|
"static/chunks/827-7975edcf8481ec69.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/464-f898cadde407dd9f.js",
|
"static/chunks/926-4b397e2b281b7271.js",
|
||||||
"static/chunks/pages/admin/services/[service_name]-0049c2898ea64cc0.js"
|
"static/chunks/pages/admin/services/[service_name]-e8b08e5c11b1b12c.js"
|
||||||
],
|
],
|
||||||
"/admin/settings": [
|
"/admin/settings": [
|
||||||
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
||||||
@ -96,9 +96,21 @@
|
|||||||
"static/chunks/433-ace0b205fb566ad3.js",
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/827-7975edcf8481ec69.js",
|
"static/chunks/827-7975edcf8481ec69.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/pages/admin/settings-f58d63b2752f72a6.js"
|
"static/chunks/pages/admin/settings-f58d63b2752f72a6.js"
|
||||||
],
|
],
|
||||||
|
"/admin/shell": [
|
||||||
|
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
||||||
|
"static/chunks/framework-bfa817c72d812316.js",
|
||||||
|
"static/chunks/main-761b7faf59ba862f.js",
|
||||||
|
"static/chunks/29107295-2819ba6e51dbf961.js",
|
||||||
|
"static/chunks/e5d67320-ccbab4288ca637ad.js",
|
||||||
|
"static/chunks/664-e347d64e56042a02.js",
|
||||||
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
|
"static/chunks/pages/admin/shell-c4ef7e6bc7ca42e9.js"
|
||||||
|
],
|
||||||
"/admin/users": [
|
"/admin/users": [
|
||||||
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
"static/chunks/webpack-38cee4c0e358b1a3.js",
|
||||||
"static/chunks/framework-bfa817c72d812316.js",
|
"static/chunks/framework-bfa817c72d812316.js",
|
||||||
@ -108,7 +120,7 @@
|
|||||||
"static/chunks/664-e347d64e56042a02.js",
|
"static/chunks/664-e347d64e56042a02.js",
|
||||||
"static/chunks/433-ace0b205fb566ad3.js",
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/pages/admin/users-73e9775838b56d95.js"
|
"static/chunks/pages/admin/users-73e9775838b56d95.js"
|
||||||
],
|
],
|
||||||
"/admin/users/[deployment_user_id]": [
|
"/admin/users/[deployment_user_id]": [
|
||||||
@ -124,7 +136,7 @@
|
|||||||
"static/chunks/281-dcee0c6401936d5e.js",
|
"static/chunks/281-dcee0c6401936d5e.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/827-7975edcf8481ec69.js",
|
"static/chunks/827-7975edcf8481ec69.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/pages/admin/users/[deployment_user_id]-fb1c3c9148c518cd.js"
|
"static/chunks/pages/admin/users/[deployment_user_id]-fb1c3c9148c518cd.js"
|
||||||
],
|
],
|
||||||
"/admin/users/add-user": [
|
"/admin/users/add-user": [
|
||||||
@ -137,7 +149,7 @@
|
|||||||
"static/chunks/433-ace0b205fb566ad3.js",
|
"static/chunks/433-ace0b205fb566ad3.js",
|
||||||
"static/chunks/7-f0121001f735b8fe.js",
|
"static/chunks/7-f0121001f735b8fe.js",
|
||||||
"static/chunks/827-7975edcf8481ec69.js",
|
"static/chunks/827-7975edcf8481ec69.js",
|
||||||
"static/chunks/910-215ca9612c9e2400.js",
|
"static/chunks/910-7de3855073c34589.js",
|
||||||
"static/chunks/pages/admin/users/add-user-1db7c9ee89830b5b.js"
|
"static/chunks/pages/admin/users/add-user-1db7c9ee89830b5b.js"
|
||||||
],
|
],
|
||||||
"/auth/login": [
|
"/auth/login": [
|
||||||
|
|||||||
BIN
dist/web/cache/webpack/client-production/0.pack
vendored
BIN
dist/web/cache/webpack/client-production/0.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/client-production/12.pack
vendored
BIN
dist/web/cache/webpack/client-production/12.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/client-production/14.pack
vendored
Normal file
BIN
dist/web/cache/webpack/client-production/14.pack
vendored
Normal file
Binary file not shown.
BIN
dist/web/cache/webpack/client-production/2.pack
vendored
BIN
dist/web/cache/webpack/client-production/2.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/client-production/3.pack
vendored
BIN
dist/web/cache/webpack/client-production/3.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/client-production/8.pack
vendored
BIN
dist/web/cache/webpack/client-production/8.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/client-production/index.pack
vendored
BIN
dist/web/cache/webpack/client-production/index.pack
vendored
Binary file not shown.
Binary file not shown.
BIN
dist/web/cache/webpack/server-production/0.pack
vendored
BIN
dist/web/cache/webpack/server-production/0.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/server-production/1.pack
vendored
BIN
dist/web/cache/webpack/server-production/1.pack
vendored
Binary file not shown.
BIN
dist/web/cache/webpack/server-production/5.pack
vendored
Normal file
BIN
dist/web/cache/webpack/server-production/5.pack
vendored
Normal file
Binary file not shown.
BIN
dist/web/cache/webpack/server-production/index.pack
vendored
BIN
dist/web/cache/webpack/server-production/index.pack
vendored
Binary file not shown.
Binary file not shown.
2
dist/web/next-minimal-server.js.nft.json
vendored
2
dist/web/next-minimal-server.js.nft.json
vendored
@ -1 +1 @@
|
|||||||
{"version":1,"files":["../../node_modules/styled-jsx/index.js","../../node_modules/styled-jsx/package.json","../../node_modules/styled-jsx/dist/index/index.js","../../node_modules/react/package.json","../../node_modules/react/index.js","../../node_modules/client-only/package.json","../../node_modules/react/cjs/react.production.js","../../node_modules/client-only/index.js","../../node_modules/styled-jsx/style.js","../../node_modules/next/dist/compiled/next-server/server.runtime.prod.js","../../node_modules/next/package.json","../../node_modules/next/dist/server/body-streams.js","../../node_modules/next/dist/lib/constants.js","../../node_modules/next/dist/lib/picocolors.js","../../node_modules/next/dist/shared/lib/constants.js","../../node_modules/next/dist/server/web/utils.js","../../node_modules/next/dist/client/components/app-router-headers.js","../../node_modules/next/dist/server/lib/trace/tracer.js","../../node_modules/next/dist/server/lib/trace/constants.js","../../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../../node_modules/next/dist/shared/lib/runtime-config.external.js","../../node_modules/next/dist/compiled/lru-cache/package.json","../../node_modules/next/dist/compiled/ws/package.json","../../node_modules/next/dist/compiled/node-html-parser/package.json","../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../node_modules/next/dist/compiled/lru-cache/index.js","../../node_modules/next/dist/compiled/ws/index.js","../../node_modules/next/dist/compiled/node-html-parser/index.js","../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../node_modules/@swc/helpers/package.json","../../node_modules/next/dist/client/components/async-local-storage.js","../../node_modules/next/dist/shared/lib/error-source.js","../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../node_modules/next/dist/compiled/debug/package.json","../../node_modules/next/dist/lib/semver-noop.js","../../node_modules/next/dist/compiled/debug/index.js","../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js","../../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js"]}
|
{"version":1,"files":["../../node_modules/styled-jsx/index.js","../../node_modules/styled-jsx/package.json","../../node_modules/styled-jsx/dist/index/index.js","../../node_modules/react/package.json","../../node_modules/react/index.js","../../node_modules/client-only/package.json","../../node_modules/react/cjs/react.production.js","../../node_modules/client-only/index.js","../../node_modules/styled-jsx/style.js","../../node_modules/next/dist/compiled/next-server/server.runtime.prod.js","../../node_modules/next/package.json","../../node_modules/next/dist/server/body-streams.js","../../node_modules/next/dist/lib/constants.js","../../node_modules/next/dist/lib/picocolors.js","../../node_modules/next/dist/shared/lib/constants.js","../../node_modules/next/dist/server/web/utils.js","../../node_modules/next/dist/client/components/app-router-headers.js","../../node_modules/next/dist/server/lib/trace/tracer.js","../../node_modules/next/dist/server/lib/trace/constants.js","../../node_modules/next/dist/shared/lib/modern-browserslist-target.js","../../node_modules/next/dist/shared/lib/runtime-config.external.js","../../node_modules/next/dist/compiled/ws/package.json","../../node_modules/next/dist/compiled/node-html-parser/package.json","../../node_modules/next/dist/compiled/lru-cache/package.json","../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../node_modules/next/dist/compiled/ws/index.js","../../node_modules/next/dist/compiled/node-html-parser/index.js","../../node_modules/next/dist/compiled/lru-cache/index.js","../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../node_modules/@swc/helpers/package.json","../../node_modules/next/dist/client/components/async-local-storage.js","../../node_modules/next/dist/shared/lib/error-source.js","../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../node_modules/next/dist/compiled/debug/package.json","../../node_modules/next/dist/lib/semver-noop.js","../../node_modules/next/dist/compiled/debug/index.js","../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","../../node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/amp-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/app-router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/head-manager-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/hooks-client-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/html-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/image-config-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/loadable.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/router-context.js","../../node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/server-inserted-html.js","../../node_modules/next/dist/server/future/route-modules/pages/module.compiled.js"]}
|
||||||
2
dist/web/next-server.js.nft.json
vendored
2
dist/web/next-server.js.nft.json
vendored
File diff suppressed because one or more lines are too long
2
dist/web/prerender-manifest.json
vendored
2
dist/web/prerender-manifest.json
vendored
@ -1 +1 @@
|
|||||||
{"version":4,"routes":{},"dynamicRoutes":{},"preview":{"previewModeId":"41e1091eb1109508c747b622a00635b1","previewModeSigningKey":"f6adb768298c87f60e74ea2b05e5275c23880f86ace11d9370b0851a04a2b51b","previewModeEncryptionKey":"4eff9a582f5e38502da59c29d949bca03ecac20f6a34ba771d525f72da7816a0"},"notFoundRoutes":[]}
|
{"version":4,"routes":{},"dynamicRoutes":{},"preview":{"previewModeId":"c4721f018fc5fea1b5afce9998704450","previewModeSigningKey":"8d66936831b01d04f26054b37825829be522efd00da72ffe585055cbcaf33ad3","previewModeEncryptionKey":"27ebfd2d91e169ca30163d491e4ef024a413647900c7dfc786915953ded846e3"},"notFoundRoutes":[]}
|
||||||
2
dist/web/routes-manifest.json
vendored
2
dist/web/routes-manifest.json
vendored
@ -1 +1 @@
|
|||||||
{"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[{"page":"/admin/services/[service_name]","regex":"^/admin/services/([^/]+?)(?:/)?$","routeKeys":{"nxtPservice_name":"nxtPservice_name"},"namedRegex":"^/admin/services/(?<nxtPservice_name>[^/]+?)(?:/)?$"},{"page":"/admin/users/[deployment_user_id]","regex":"^/admin/users/([^/]+?)(?:/)?$","routeKeys":{"nxtPdeployment_user_id":"nxtPdeployment_user_id"},"namedRegex":"^/admin/users/(?<nxtPdeployment_user_id>[^/]+?)(?:/)?$"}],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/404","regex":"^/404(?:/)?$","routeKeys":{},"namedRegex":"^/404(?:/)?$"},{"page":"/admin","regex":"^/admin(?:/)?$","routeKeys":{},"namedRegex":"^/admin(?:/)?$"},{"page":"/admin/services","regex":"^/admin/services(?:/)?$","routeKeys":{},"namedRegex":"^/admin/services(?:/)?$"},{"page":"/admin/settings","regex":"^/admin/settings(?:/)?$","routeKeys":{},"namedRegex":"^/admin/settings(?:/)?$"},{"page":"/admin/users","regex":"^/admin/users(?:/)?$","routeKeys":{},"namedRegex":"^/admin/users(?:/)?$"},{"page":"/admin/users/add-user","regex":"^/admin/users/add\\-user(?:/)?$","routeKeys":{},"namedRegex":"^/admin/users/add\\-user(?:/)?$"},{"page":"/auth/login","regex":"^/auth/login(?:/)?$","routeKeys":{},"namedRegex":"^/auth/login(?:/)?$"},{"page":"/auth/logout","regex":"^/auth/logout(?:/)?$","routeKeys":{},"namedRegex":"^/auth/logout(?:/)?$"},{"page":"/auth/signup","regex":"^/auth/signup(?:/)?$","routeKeys":{},"namedRegex":"^/auth/signup(?:/)?$"}],"dataRoutes":[{"page":"/","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/index.json$"},{"page":"/admin","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin.json$"},{"page":"/admin/services","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/services.json$"},{"page":"/admin/services/[service_name]","routeKeys":{"nxtPservice_name":"nxtPservice_name"},"dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/services/([^/]+?)\\.json$","namedDataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/services/(?<nxtPservice_name>[^/]+?)\\.json$"},{"page":"/admin/settings","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/settings.json$"},{"page":"/admin/users","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/users.json$"},{"page":"/admin/users/add-user","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/users/add-user.json$"},{"page":"/admin/users/[deployment_user_id]","routeKeys":{"nxtPdeployment_user_id":"nxtPdeployment_user_id"},"dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/users/([^/]+?)\\.json$","namedDataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/admin/users/(?<nxtPdeployment_user_id>[^/]+?)\\.json$"},{"page":"/auth/login","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/auth/login.json$"},{"page":"/auth/logout","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/auth/logout.json$"},{"page":"/auth/signup","dataRouteRegex":"^/_next/data/Ac6Q3W_cSGiBJUiUxpsfm/auth/signup.json$"}],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]}
|
{"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[],"dynamicRoutes":[{"page":"/admin/services/[service_name]","regex":"^/admin/services/([^/]+?)(?:/)?$","routeKeys":{"nxtPservice_name":"nxtPservice_name"},"namedRegex":"^/admin/services/(?<nxtPservice_name>[^/]+?)(?:/)?$"},{"page":"/admin/users/[deployment_user_id]","regex":"^/admin/users/([^/]+?)(?:/)?$","routeKeys":{"nxtPdeployment_user_id":"nxtPdeployment_user_id"},"namedRegex":"^/admin/users/(?<nxtPdeployment_user_id>[^/]+?)(?:/)?$"}],"staticRoutes":[{"page":"/","regex":"^/(?:/)?$","routeKeys":{},"namedRegex":"^/(?:/)?$"},{"page":"/404","regex":"^/404(?:/)?$","routeKeys":{},"namedRegex":"^/404(?:/)?$"},{"page":"/admin","regex":"^/admin(?:/)?$","routeKeys":{},"namedRegex":"^/admin(?:/)?$"},{"page":"/admin/services","regex":"^/admin/services(?:/)?$","routeKeys":{},"namedRegex":"^/admin/services(?:/)?$"},{"page":"/admin/settings","regex":"^/admin/settings(?:/)?$","routeKeys":{},"namedRegex":"^/admin/settings(?:/)?$"},{"page":"/admin/shell","regex":"^/admin/shell(?:/)?$","routeKeys":{},"namedRegex":"^/admin/shell(?:/)?$"},{"page":"/admin/users","regex":"^/admin/users(?:/)?$","routeKeys":{},"namedRegex":"^/admin/users(?:/)?$"},{"page":"/admin/users/add-user","regex":"^/admin/users/add\\-user(?:/)?$","routeKeys":{},"namedRegex":"^/admin/users/add\\-user(?:/)?$"},{"page":"/auth/login","regex":"^/auth/login(?:/)?$","routeKeys":{},"namedRegex":"^/auth/login(?:/)?$"},{"page":"/auth/logout","regex":"^/auth/logout(?:/)?$","routeKeys":{},"namedRegex":"^/auth/logout(?:/)?$"},{"page":"/auth/signup","regex":"^/auth/signup(?:/)?$","routeKeys":{},"namedRegex":"^/auth/signup(?:/)?$"}],"dataRoutes":[{"page":"/","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/index.json$"},{"page":"/admin","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin.json$"},{"page":"/admin/services","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/services.json$"},{"page":"/admin/services/[service_name]","routeKeys":{"nxtPservice_name":"nxtPservice_name"},"dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/services/([^/]+?)\\.json$","namedDataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/services/(?<nxtPservice_name>[^/]+?)\\.json$"},{"page":"/admin/settings","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/settings.json$"},{"page":"/admin/shell","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/shell.json$"},{"page":"/admin/users","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/users.json$"},{"page":"/admin/users/add-user","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/users/add-user.json$"},{"page":"/admin/users/[deployment_user_id]","routeKeys":{"nxtPdeployment_user_id":"nxtPdeployment_user_id"},"dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/users/([^/]+?)\\.json$","namedDataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/admin/users/(?<nxtPdeployment_user_id>[^/]+?)\\.json$"},{"page":"/auth/login","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/auth/login.json$"},{"page":"/auth/logout","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/auth/logout.json$"},{"page":"/auth/signup","dataRouteRegex":"^/_next/data/hp8Dmk2dba\\-pzMh79OIf7/auth/signup.json$"}],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]}
|
||||||
2
dist/web/server/chunks/150.js
vendored
2
dist/web/server/chunks/150.js
vendored
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
{"version":1,"functions":{"/_app":{},"/admin/settings":{},"/admin/users/[deployment_user_id]":{},"/admin":{},"/admin/users/add-user":{},"/admin/services/[service_name]":{},"/admin/services":{},"/auth/login":{},"/admin/users":{},"/auth/logout":{},"/":{},"/auth/signup":{}}}
|
{"version":1,"functions":{"/_app":{},"/admin/services/[service_name]":{},"/admin/services":{},"/admin":{},"/admin/shell":{},"/admin/settings":{},"/admin/users/[deployment_user_id]":{},"/admin/users/add-user":{},"/admin/users":{},"/auth/login":{},"/auth/logout":{},"/":{},"/auth/signup":{}}}
|
||||||
2
dist/web/server/middleware-build-manifest.js
vendored
2
dist/web/server/middleware-build-manifest.js
vendored
File diff suppressed because one or more lines are too long
2
dist/web/server/pages-manifest.json
vendored
2
dist/web/server/pages-manifest.json
vendored
@ -1 +1 @@
|
|||||||
{"/_document":"pages/_document.js","/404":"pages/404.html","/api/admin/download-private-ssh-key":"pages/api/admin/download-private-ssh-key.js","/api/admin/delete-user":"pages/api/admin/delete-user.js","/api/admin/edit-user":"pages/api/admin/edit-user.js","/api/admin/settings":"pages/api/admin/settings.js","/api/auth/login":"pages/api/auth/login.js","/api/hello":"pages/api/hello.js","/api/auth/signup":"pages/api/auth/signup.js","/admin":"pages/admin.js","/_app":"pages/_app.js","/admin/services":"pages/admin/services.js","/admin/services/[service_name]":"pages/admin/services/[service_name].js","/_error":"pages/_error.js","/admin/users/add-user":"pages/admin/users/add-user.js","/admin/users":"pages/admin/users.js","/admin/settings":"pages/admin/settings.js","/admin/users/[deployment_user_id]":"pages/admin/users/[deployment_user_id].js","/":"pages/index.js","/auth/logout":"pages/auth/logout.js","/auth/signup":"pages/auth/signup.js","/auth/login":"pages/auth/login.js"}
|
{"/_error":"pages/_error.js","/_document":"pages/_document.js","/404":"pages/404.html","/api/admin/delete-user":"pages/api/admin/delete-user.js","/api/admin/download-private-ssh-key":"pages/api/admin/download-private-ssh-key.js","/api/admin/edit-user":"pages/api/admin/edit-user.js","/api/admin/settings":"pages/api/admin/settings.js","/api/auth/login":"pages/api/auth/login.js","/api/auth/signup":"pages/api/auth/signup.js","/api/hello":"pages/api/hello.js","/admin":"pages/admin.js","/admin/services":"pages/admin/services.js","/_app":"pages/_app.js","/admin/shell":"pages/admin/shell.js","/admin/services/[service_name]":"pages/admin/services/[service_name].js","/admin/settings":"pages/admin/settings.js","/admin/users/add-user":"pages/admin/users/add-user.js","/admin/users":"pages/admin/users.js","/admin/users/[deployment_user_id]":"pages/admin/users/[deployment_user_id].js","/auth/logout":"pages/auth/logout.js","/auth/login":"pages/auth/login.js","/":"pages/index.js","/auth/signup":"pages/auth/signup.js"}
|
||||||
2
dist/web/server/pages/404.html
vendored
2
dist/web/server/pages/404.html
vendored
@ -1 +1 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/08e6997802749ec3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/08e6997802749ec3.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-38cee4c0e358b1a3.js" defer=""></script><script src="/_next/static/chunks/framework-bfa817c72d812316.js" defer=""></script><script src="/_next/static/chunks/main-761b7faf59ba862f.js" defer=""></script><script src="/_next/static/chunks/pages/_app-12c3cc69366c709d.js" defer=""></script><script src="/_next/static/chunks/29107295-2819ba6e51dbf961.js" defer=""></script><script src="/_next/static/chunks/664-e347d64e56042a02.js" defer=""></script><script src="/_next/static/chunks/pages/404-8292e1046538596b.js" defer=""></script><script src="/_next/static/Ac6Q3W_cSGiBJUiUxpsfm/_buildManifest.js" defer=""></script><script src="/_next/static/Ac6Q3W_cSGiBJUiUxpsfm/_ssgManifest.js" defer=""></script></head><body class="antialiased"><div id="__next"><main class="flex flex-col items-center twui-main w-screen h-screen overflow-hidden"><section class="flex flex-col items-center px-4 sm:px-10 py-10 twui-section w-full h-full"><div class="flex w-full max-w-container gap-4 justify-between flex-wrap flex-col xl:flex-row items-start xl:items-center twui-container grid-frame grid-cols-1 h-full"><div class="flex flex-col items-start gap-4 twui-stack w-full justify-between h-full grid-cell"><div class="flex flex-col items-start twui-stack gap-0"><div class="flex flex-row gap-2 flex-wrap items-center twui-row"><div class="flex flex-row gap-2 flex-wrap items-center twui-row p-6"><a aria-label="TurboCI home" class="inline-flex items-center gap-3" href="/"><svg viewBox="0 0 48 48" aria-hidden="true" class="h-10 w-10 shrink-0"><defs><linearGradient id="_R_1am_" x1="9" y1="9" x2="31" y2="34" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#9cf0c0"></stop><stop offset="100%" stop-color="#42d392"></stop></linearGradient><linearGradient id="_R_1amH1_" x1="22" y1="22" x2="36" y2="40" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#2bc67e"></stop><stop offset="100%" stop-color="#1f8458"></stop></linearGradient></defs><path d="M35 6H23.6c-2 0-3.8 1-4.8 2.7L7.5 28.3c-1.4 2.5.4 5.7 3.2 5.7h9.1c2 0 3.8-1 4.8-2.7l11.2-19.6C39.6 9.2 37.8 6 35 6Z" fill="url(#_R_1am_)"></path><path d="M23.9 24h13.4c2.8 0 4.6 3.1 3.2 5.6l-4.1 7.1c-1 1.7-2.8 2.7-4.8 2.7H18.2c-2.8 0-4.6-3.1-3.2-5.6l4.1-7.1c1-1.7 2.8-2.7 4.8-2.7Z" fill="url(#_R_1amH1_)"></path></svg><span class="font-display text-[1.02rem] font-semibold tracking-tight text-foreground">TurboCI</span></a></div><div class="border-slate-200 dark:border-white/10 border-0 border-l h-full min-h-5 twui-divider twui-divider-vertical border-solid"></div></div><div class="border-slate-200 dark:border-white/10 border-0 border-t w-full twui-divider twui-divider-horizontal border-solid"></div></div><div class="flex flex-col items-center justify-center gap-4 w-full h-full twui-center p-10"><h2 class="text-2xl md:text-3xl mb-4 twui-headings twui-heading twui-h2">Page Not Found!</h2></div><div class="flex flex-col items-start gap-4 twui-stack"><div class="border-slate-200 dark:border-white/10 border-0 border-t w-full twui-divider twui-divider-horizontal border-solid"></div><div class="twui-spacer h-20 w-full"></div></div></div></div></section></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"Ac6Q3W_cSGiBJUiUxpsfm","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/08e6997802749ec3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/08e6997802749ec3.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-38cee4c0e358b1a3.js" defer=""></script><script src="/_next/static/chunks/framework-bfa817c72d812316.js" defer=""></script><script src="/_next/static/chunks/main-761b7faf59ba862f.js" defer=""></script><script src="/_next/static/chunks/pages/_app-12c3cc69366c709d.js" defer=""></script><script src="/_next/static/chunks/29107295-2819ba6e51dbf961.js" defer=""></script><script src="/_next/static/chunks/664-e347d64e56042a02.js" defer=""></script><script src="/_next/static/chunks/pages/404-8292e1046538596b.js" defer=""></script><script src="/_next/static/hp8Dmk2dba-pzMh79OIf7/_buildManifest.js" defer=""></script><script src="/_next/static/hp8Dmk2dba-pzMh79OIf7/_ssgManifest.js" defer=""></script></head><body class="antialiased"><div id="__next"><main class="flex flex-col items-center twui-main w-screen h-screen overflow-hidden"><section class="flex flex-col items-center px-4 sm:px-10 py-10 twui-section w-full h-full"><div class="flex w-full max-w-container gap-4 justify-between flex-wrap flex-col xl:flex-row items-start xl:items-center twui-container grid-frame grid-cols-1 h-full"><div class="flex flex-col items-start gap-4 twui-stack w-full justify-between h-full grid-cell"><div class="flex flex-col items-start twui-stack gap-0"><div class="flex flex-row gap-2 flex-wrap items-center twui-row"><div class="flex flex-row gap-2 flex-wrap items-center twui-row p-6"><a aria-label="TurboCI home" class="inline-flex items-center gap-3" href="/"><svg viewBox="0 0 48 48" aria-hidden="true" class="h-10 w-10 shrink-0"><defs><linearGradient id="_R_1am_" x1="9" y1="9" x2="31" y2="34" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#9cf0c0"></stop><stop offset="100%" stop-color="#42d392"></stop></linearGradient><linearGradient id="_R_1amH1_" x1="22" y1="22" x2="36" y2="40" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#2bc67e"></stop><stop offset="100%" stop-color="#1f8458"></stop></linearGradient></defs><path d="M35 6H23.6c-2 0-3.8 1-4.8 2.7L7.5 28.3c-1.4 2.5.4 5.7 3.2 5.7h9.1c2 0 3.8-1 4.8-2.7l11.2-19.6C39.6 9.2 37.8 6 35 6Z" fill="url(#_R_1am_)"></path><path d="M23.9 24h13.4c2.8 0 4.6 3.1 3.2 5.6l-4.1 7.1c-1 1.7-2.8 2.7-4.8 2.7H18.2c-2.8 0-4.6-3.1-3.2-5.6l4.1-7.1c1-1.7 2.8-2.7 4.8-2.7Z" fill="url(#_R_1amH1_)"></path></svg><span class="font-display text-[1.02rem] font-semibold tracking-tight text-foreground">TurboCI</span></a></div><div class="border-slate-200 dark:border-white/10 border-0 border-l h-full min-h-5 twui-divider twui-divider-vertical border-solid"></div></div><div class="border-slate-200 dark:border-white/10 border-0 border-t w-full twui-divider twui-divider-horizontal border-solid"></div></div><div class="flex flex-col items-center justify-center gap-4 w-full h-full twui-center p-10"><h2 class="text-2xl md:text-3xl mb-4 twui-headings twui-heading twui-h2">Page Not Found!</h2></div><div class="flex flex-col items-start gap-4 twui-stack"><div class="border-slate-200 dark:border-white/10 border-0 border-t w-full twui-divider twui-divider-horizontal border-solid"></div><div class="twui-spacer h-20 w-full"></div></div></div></div></section></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"hp8Dmk2dba-pzMh79OIf7","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
||||||
2
dist/web/server/pages/500.html
vendored
2
dist/web/server/pages/500.html
vendored
@ -1 +1 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/08e6997802749ec3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/08e6997802749ec3.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-38cee4c0e358b1a3.js" defer=""></script><script src="/_next/static/chunks/framework-bfa817c72d812316.js" defer=""></script><script src="/_next/static/chunks/main-761b7faf59ba862f.js" defer=""></script><script src="/_next/static/chunks/pages/_app-12c3cc69366c709d.js" defer=""></script><script src="/_next/static/chunks/pages/_error-10090a8ee211d5fd.js" defer=""></script><script src="/_next/static/Ac6Q3W_cSGiBJUiUxpsfm/_buildManifest.js" defer=""></script><script src="/_next/static/Ac6Q3W_cSGiBJUiUxpsfm/_ssgManifest.js" defer=""></script></head><body class="antialiased"><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"Ac6Q3W_cSGiBJUiUxpsfm","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/08e6997802749ec3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/08e6997802749ec3.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-38cee4c0e358b1a3.js" defer=""></script><script src="/_next/static/chunks/framework-bfa817c72d812316.js" defer=""></script><script src="/_next/static/chunks/main-761b7faf59ba862f.js" defer=""></script><script src="/_next/static/chunks/pages/_app-12c3cc69366c709d.js" defer=""></script><script src="/_next/static/chunks/pages/_error-10090a8ee211d5fd.js" defer=""></script><script src="/_next/static/hp8Dmk2dba-pzMh79OIf7/_buildManifest.js" defer=""></script><script src="/_next/static/hp8Dmk2dba-pzMh79OIf7/_ssgManifest.js" defer=""></script></head><body class="antialiased"><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"hp8Dmk2dba-pzMh79OIf7","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
||||||
1
dist/web/server/pages/admin/shell.js
vendored
Normal file
1
dist/web/server/pages/admin/shell.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/web/server/pages/admin/shell.js.nft.json
vendored
Normal file
1
dist/web/server/pages/admin/shell.js.nft.json
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
self.__BUILD_MANIFEST=function(s,a,e,c,t,i,n,d,u){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":[s,e,a,c,u,t,i,"static/chunks/pages/index-5ce092dbf4b7ea2c.js"],"/404":[s,a,"static/chunks/pages/404-8292e1046538596b.js"],"/_error":["static/chunks/pages/_error-10090a8ee211d5fd.js"],"/admin":[s,e,a,c,t,i,n,d,"static/chunks/pages/admin-8a0fdb80e9b4248f.js"],"/admin/services":[s,e,a,c,t,i,n,d,"static/chunks/pages/admin/services-68efb2b49e62c913.js"],"/admin/services/[service_name]":[s,e,a,c,t,i,n,d,"static/chunks/pages/admin/services/[service_name]-0049c2898ea64cc0.js"],"/admin/settings":[s,e,a,c,t,i,n,"static/chunks/pages/admin/settings-f58d63b2752f72a6.js"],"/admin/users":[s,e,a,c,t,n,"static/chunks/pages/admin/users-73e9775838b56d95.js"],"/admin/users/add-user":[s,e,a,c,t,i,n,"static/chunks/pages/admin/users/add-user-1db7c9ee89830b5b.js"],"/admin/users/[deployment_user_id]":[s,e,"static/chunks/ff39441c-88f593a46cb65964.js","static/chunks/d848df63-a470d32e7be4bfe3.js",a,c,"static/chunks/281-dcee0c6401936d5e.js",t,i,n,"static/chunks/pages/admin/users/[deployment_user_id]-fb1c3c9148c518cd.js"],"/auth/login":[s,e,a,c,u,t,i,"static/chunks/pages/auth/login-3f936f997e58438c.js"],"/auth/logout":[s,a,"static/chunks/pages/auth/logout-c8b207f96be4f684.js"],"/auth/signup":[s,e,a,c,t,i,"static/chunks/pages/auth/signup-5c0f6835749e755e.js"],sortedPages:["/","/404","/_app","/_error","/admin","/admin/services","/admin/services/[service_name]","/admin/settings","/admin/users","/admin/users/add-user","/admin/users/[deployment_user_id]","/auth/login","/auth/logout","/auth/signup"]}}("static/chunks/29107295-2819ba6e51dbf961.js","static/chunks/664-e347d64e56042a02.js","static/chunks/e5d67320-ccbab4288ca637ad.js","static/chunks/433-ace0b205fb566ad3.js","static/chunks/7-f0121001f735b8fe.js","static/chunks/827-7975edcf8481ec69.js","static/chunks/910-215ca9612c9e2400.js","static/chunks/464-f898cadde407dd9f.js","static/chunks/225-f257bb5bd6014d68.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/web/static/chunks/926-4b397e2b281b7271.js
vendored
Normal file
1
dist/web/static/chunks/926-4b397e2b281b7271.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[964],{64830:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin",function(){return s(9854)}])},49533:function(e,n,s){"use strict";s.d(n,{Z:function(){return _}});var r=s(85893),i=s(5606),t=s(60),l=s(67294),c=s(55412),a=s(86609),d=s(94655);function o(e){let{link:n,icon:s,...i}=e;return(0,r.jsx)(a.Z,{href:n.url,...i,...n.linkProps,children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)("span",{children:n.title}),s||(0,r.jsx)(c.Z,{size:17})]})})}var u=s(56211),v=s(45377),x=s(39483),f=s(25808),m=s(96486),p=s.n(m);function j(e){let{service:n}=e,{pageProps:s,ws:c}=(0,l.useContext)(i.AppContext),{deployment:a}=s,{ready:m,setReady:j}=(0,f.Z)(),_=null==a?void 0:a.services.filter(e=>e.parent_service_name==n.service_name),h=[n,..._||[]],[Z,g]=(0,l.useState)(null==h?void 0:h[0]);h.findIndex(e=>e.service_name==(null==Z?void 0:Z.service_name));let N=null==Z?void 0:Z.servers,[w,C]=(0,l.useState)(null==N?void 0:N[0]),k=(0,l.useRef)(void 0);return(0,l.useEffect)(()=>{var e;C(null==Z?void 0:null===(e=Z.servers)||void 0===e?void 0:e[0])},[Z]),(0,l.useEffect)(()=>{if(j(!1),w&&k.current){var e;e=k.current,c.sendData({event:"client:kill-port",server:w,service:p().omit(n,["servers"]),port:e})}setTimeout(()=>{j(!0)},2e3)},[w]),(0,r.jsxs)(t.Z,{className:"grid-cell",children:[(0,r.jsxs)(t.Z,{className:"grid-cell-content",children:[(0,r.jsxs)(d.Z,{className:"w-full justify-between",children:[(0,r.jsx)(u.Z,{children:n.service_name}),(0,r.jsx)(o,{link:{url:"/admin/services/".concat(n.service_name),title:"View"}})]}),(0,r.jsxs)("code",{children:[n.service_name," service"]})]}),(0,r.jsx)("hr",{}),(0,r.jsxs)(t.Z,{className:"gap-0",children:[(0,r.jsxs)(d.Z,{className:"p-4 grid md:grid-cols-2",children:[(0,r.jsx)(x.Z,{options:h.map((e,n)=>({value:e.service_name,title:"Cluster #".concat(n+1)})),changeHandler:e=>{g(h.find(n=>n.service_name==e))}}),N?(0,r.jsx)(x.Z,{options:N.map(e=>({value:e.private_ip,title:e.private_ip})),changeHandler:e=>{C(N.find(n=>n.private_ip==e))}}):void 0]}),m&&w?(0,r.jsx)(v.Z,{server:w,service:n,portRef:k}):void 0]})]})}function _(){let{pageProps:e}=(0,l.useContext)(i.AppContext),{deployment:n,children_services:s}=e,c=null==n?void 0:n.services.filter(e=>!e.parent_service_name);return(0,r.jsx)(t.Z,{className:"w-full nested-grid-frame xl:grid-cols-2",children:null==c?void 0:c.map((e,n)=>(0,r.jsx)(j,{service:e},n))})}},9854:function(e,n,s){"use strict";s.r(n),s.d(n,{__N_SSP:function(){return p},default:function(){return j}});var r=s(85893),i=s(5606),t=s(94655),l=s(3668),c=s(60),a=s(67294);function d(){let{pageProps:e}=(0,a.useContext)(i.AppContext),{user:n,deployment:s,deployment_id:d}=e;if(!s)return null;let o=s.services.filter(e=>!e.parent_service_name);return(0,r.jsx)(c.Z,{className:"w-full gap-0",children:(0,r.jsxs)(c.Z,{className:"grid-cell-content",children:[(0,r.jsxs)(l.Z,{children:[o.length," Services"]}),(0,r.jsx)(t.Z,{children:o.map((e,n)=>(0,r.jsx)("a",{href:"/admin/services/".concat(e.service_name),children:(0,r.jsx)("code",{children:e.service_name})},n))})]})})}var o=s(33028),u=s(38249),v=s(60705),x=s(49533);function f(){let{pageProps:e}=(0,a.useContext)(i.AppContext),{user:n,deployment:s,deployment_id:t}=e,l=null==s?void 0:s.deployment_name;return(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(o.Z,{title:"".concat((0,u.Z)(l)," Deplyoment Dashboard"),description:(0,r.jsxs)(r.Fragment,{children:["Deployment"," ",(0,r.jsx)("code",{children:null==t?void 0:t.split("-").shift()})," > ",(0,r.jsx)("code",{children:null==s?void 0:s.deployment_name})]})}),(0,r.jsx)(v.Z,{}),(0,r.jsx)(d,{}),(0,r.jsx)(v.Z,{}),(0,r.jsx)(x.Z,{})]})}var m=s(89350),p=!0;function j(){return(0,r.jsx)(m.Z,{children:(0,r.jsx)(f,{})})}}},function(e){e.O(0,[662,75,664,433,7,827,910,464,888,774,179],function(){return e(e.s=64830)}),_N_E=e.O()}]);
|
|
||||||
1
dist/web/static/chunks/pages/admin-914586c03dfda5c1.js
vendored
Normal file
1
dist/web/static/chunks/pages/admin-914586c03dfda5c1.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[964],{64830:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin",function(){return s(9854)}])},49533:function(e,n,s){"use strict";s.d(n,{Z:function(){return _}});var r=s(85893),i=s(5606),t=s(60),l=s(67294),c=s(55412),a=s(86609),d=s(94655);function o(e){let{link:n,icon:s,...i}=e;return(0,r.jsx)(a.Z,{href:n.url,...i,...n.linkProps,children:(0,r.jsxs)(d.Z,{children:[(0,r.jsx)("span",{children:n.title}),s||(0,r.jsx)(c.Z,{size:17})]})})}var u=s(56211),v=s(1765),x=s(39483),f=s(25808),m=s(96486),p=s.n(m);function j(e){let{service:n}=e,{pageProps:s,ws:c}=(0,l.useContext)(i.AppContext),{deployment:a}=s,{ready:m,setReady:j}=(0,f.Z)(),_=null==a?void 0:a.services.filter(e=>e.parent_service_name==n.service_name),h=[n,..._||[]],[Z,g]=(0,l.useState)(null==h?void 0:h[0]);h.findIndex(e=>e.service_name==(null==Z?void 0:Z.service_name));let N=null==Z?void 0:Z.servers,[w,C]=(0,l.useState)(null==N?void 0:N[0]),k=(0,l.useRef)(void 0);return(0,l.useEffect)(()=>{var e;C(null==Z?void 0:null===(e=Z.servers)||void 0===e?void 0:e[0])},[Z]),(0,l.useEffect)(()=>{if(j(!1),w&&k.current){var e;e=k.current,c.sendData({event:"client:kill-port",server:w,service:p().omit(n,["servers"]),port:e})}setTimeout(()=>{j(!0)},2e3)},[w]),(0,r.jsxs)(t.Z,{className:"grid-cell",children:[(0,r.jsxs)(t.Z,{className:"grid-cell-content",children:[(0,r.jsxs)(d.Z,{className:"w-full justify-between",children:[(0,r.jsx)(u.Z,{children:n.service_name}),(0,r.jsx)(o,{link:{url:"/admin/services/".concat(n.service_name),title:"View"}})]}),(0,r.jsxs)("code",{children:[n.service_name," service"]})]}),(0,r.jsx)("hr",{}),(0,r.jsxs)(t.Z,{className:"gap-0",children:[(0,r.jsxs)(d.Z,{className:"p-4 grid md:grid-cols-2",children:[(0,r.jsx)(x.Z,{options:h.map((e,n)=>({value:e.service_name,title:"Cluster #".concat(n+1)})),changeHandler:e=>{g(h.find(n=>n.service_name==e))}}),N?(0,r.jsx)(x.Z,{options:N.map(e=>({value:e.private_ip,title:e.private_ip})),changeHandler:e=>{C(N.find(n=>n.private_ip==e))}}):void 0]}),m&&w?(0,r.jsx)(v.Z,{server:w,service:n,portRef:k}):void 0]})]})}function _(){let{pageProps:e}=(0,l.useContext)(i.AppContext),{deployment:n,children_services:s}=e,c=null==n?void 0:n.services.filter(e=>!e.parent_service_name);return(0,r.jsx)(t.Z,{className:"w-full nested-grid-frame xl:grid-cols-2",children:null==c?void 0:c.map((e,n)=>(0,r.jsx)(j,{service:e},n))})}},9854:function(e,n,s){"use strict";s.r(n),s.d(n,{__N_SSP:function(){return p},default:function(){return j}});var r=s(85893),i=s(5606),t=s(94655),l=s(3668),c=s(60),a=s(67294);function d(){let{pageProps:e}=(0,a.useContext)(i.AppContext),{user:n,deployment:s,deployment_id:d}=e;if(!s)return null;let o=s.services.filter(e=>!e.parent_service_name);return(0,r.jsx)(c.Z,{className:"w-full gap-0",children:(0,r.jsxs)(c.Z,{className:"grid-cell-content",children:[(0,r.jsxs)(l.Z,{children:[o.length," Services"]}),(0,r.jsx)(t.Z,{children:o.map((e,n)=>(0,r.jsx)("a",{href:"/admin/services/".concat(e.service_name),children:(0,r.jsx)("code",{children:e.service_name})},n))})]})})}var o=s(33028),u=s(38249),v=s(60705),x=s(49533);function f(){let{pageProps:e}=(0,a.useContext)(i.AppContext),{user:n,deployment:s,deployment_id:t}=e,l=null==s?void 0:s.deployment_name;return(0,r.jsxs)(a.Fragment,{children:[(0,r.jsx)(o.Z,{title:"".concat((0,u.Z)(l)," Deplyoment Dashboard"),description:(0,r.jsxs)(r.Fragment,{children:["Deployment"," ",(0,r.jsx)("code",{children:null==t?void 0:t.split("-").shift()})," > ",(0,r.jsx)("code",{children:null==s?void 0:s.deployment_name})]})}),(0,r.jsx)(v.Z,{}),(0,r.jsx)(d,{}),(0,r.jsx)(v.Z,{}),(0,r.jsx)(x.Z,{})]})}var m=s(89350),p=!0;function j(){return(0,r.jsx)(m.Z,{children:(0,r.jsx)(f,{})})}}},function(e){e.O(0,[662,75,664,433,7,827,910,926,888,774,179],function(){return e(e.s=64830)}),_N_E=e.O()}]);
|
||||||
1
dist/web/static/chunks/pages/admin/services-16971626ad193c95.js
vendored
Normal file
1
dist/web/static/chunks/pages/admin/services-16971626ad193c95.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[148],{55634:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/services",function(){return s(78701)}])},49533:function(e,n,s){"use strict";s.d(n,{Z:function(){return j}});var i=s(85893),r=s(5606),t=s(60),l=s(67294),c=s(55412),a=s(86609),o=s(94655);function u(e){let{link:n,icon:s,...r}=e;return(0,i.jsx)(a.Z,{href:n.url,...r,...n.linkProps,children:(0,i.jsxs)(o.Z,{children:[(0,i.jsx)("span",{children:n.title}),s||(0,i.jsx)(c.Z,{size:17})]})})}var d=s(56211),v=s(1765),f=s(39483),p=s(25808),x=s(96486),m=s.n(x);function _(e){let{service:n}=e,{pageProps:s,ws:c}=(0,l.useContext)(r.AppContext),{deployment:a}=s,{ready:x,setReady:_}=(0,p.Z)(),j=null==a?void 0:a.services.filter(e=>e.parent_service_name==n.service_name),h=[n,...j||[]],[Z,N]=(0,l.useState)(null==h?void 0:h[0]);h.findIndex(e=>e.service_name==(null==Z?void 0:Z.service_name));let g=null==Z?void 0:Z.servers,[w,C]=(0,l.useState)(null==g?void 0:g[0]),k=(0,l.useRef)(void 0);return(0,l.useEffect)(()=>{var e;C(null==Z?void 0:null===(e=Z.servers)||void 0===e?void 0:e[0])},[Z]),(0,l.useEffect)(()=>{if(_(!1),w&&k.current){var e;e=k.current,c.sendData({event:"client:kill-port",server:w,service:m().omit(n,["servers"]),port:e})}setTimeout(()=>{_(!0)},2e3)},[w]),(0,i.jsxs)(t.Z,{className:"grid-cell",children:[(0,i.jsxs)(t.Z,{className:"grid-cell-content",children:[(0,i.jsxs)(o.Z,{className:"w-full justify-between",children:[(0,i.jsx)(d.Z,{children:n.service_name}),(0,i.jsx)(u,{link:{url:"/admin/services/".concat(n.service_name),title:"View"}})]}),(0,i.jsxs)("code",{children:[n.service_name," service"]})]}),(0,i.jsx)("hr",{}),(0,i.jsxs)(t.Z,{className:"gap-0",children:[(0,i.jsxs)(o.Z,{className:"p-4 grid md:grid-cols-2",children:[(0,i.jsx)(f.Z,{options:h.map((e,n)=>({value:e.service_name,title:"Cluster #".concat(n+1)})),changeHandler:e=>{N(h.find(n=>n.service_name==e))}}),g?(0,i.jsx)(f.Z,{options:g.map(e=>({value:e.private_ip,title:e.private_ip})),changeHandler:e=>{C(g.find(n=>n.private_ip==e))}}):void 0]}),x&&w?(0,i.jsx)(v.Z,{server:w,service:n,portRef:k}):void 0]})]})}function j(){let{pageProps:e}=(0,l.useContext)(r.AppContext),{deployment:n,children_services:s}=e,c=null==n?void 0:n.services.filter(e=>!e.parent_service_name);return(0,i.jsx)(t.Z,{className:"w-full nested-grid-frame xl:grid-cols-2",children:null==c?void 0:c.map((e,n)=>(0,i.jsx)(_,{service:e},n))})}},78701:function(e,n,s){"use strict";s.r(n),s.d(n,{__N_SSP:function(){return v},default:function(){return f}});var i=s(85893),r=s(67294),t=s(5606),l=s(38249),c=s(60705),a=s(33028),o=s(49533);function u(){let{pageProps:e}=(0,r.useContext)(t.AppContext),{user:n,deployment:s,deployment_id:u}=e,d=null==s?void 0:s.deployment_name;return(0,i.jsxs)(r.Fragment,{children:[(0,i.jsx)(a.Z,{title:"".concat((0,l.Z)(d)," Deplyoment Dashboard"),description:(0,i.jsxs)(i.Fragment,{children:["Deployment"," ",(0,i.jsx)("code",{children:null==u?void 0:u.split("-").shift()})," > ",(0,i.jsx)("code",{children:null==s?void 0:s.deployment_name})]})}),(0,i.jsx)(c.Z,{}),(0,i.jsx)(o.Z,{})]})}var d=s(89350),v=!0;function f(){return(0,i.jsx)(d.Z,{children:(0,i.jsx)(u,{})})}}},function(e){e.O(0,[662,75,664,433,7,827,910,926,888,774,179],function(){return e(e.s=55634)}),_N_E=e.O()}]);
|
||||||
@ -1 +0,0 @@
|
|||||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[148],{55634:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/services",function(){return s(78701)}])},49533:function(e,n,s){"use strict";s.d(n,{Z:function(){return j}});var i=s(85893),r=s(5606),t=s(60),l=s(67294),c=s(55412),a=s(86609),o=s(94655);function u(e){let{link:n,icon:s,...r}=e;return(0,i.jsx)(a.Z,{href:n.url,...r,...n.linkProps,children:(0,i.jsxs)(o.Z,{children:[(0,i.jsx)("span",{children:n.title}),s||(0,i.jsx)(c.Z,{size:17})]})})}var d=s(56211),v=s(45377),f=s(39483),p=s(25808),x=s(96486),m=s.n(x);function _(e){let{service:n}=e,{pageProps:s,ws:c}=(0,l.useContext)(r.AppContext),{deployment:a}=s,{ready:x,setReady:_}=(0,p.Z)(),j=null==a?void 0:a.services.filter(e=>e.parent_service_name==n.service_name),h=[n,...j||[]],[Z,N]=(0,l.useState)(null==h?void 0:h[0]);h.findIndex(e=>e.service_name==(null==Z?void 0:Z.service_name));let g=null==Z?void 0:Z.servers,[w,C]=(0,l.useState)(null==g?void 0:g[0]),k=(0,l.useRef)(void 0);return(0,l.useEffect)(()=>{var e;C(null==Z?void 0:null===(e=Z.servers)||void 0===e?void 0:e[0])},[Z]),(0,l.useEffect)(()=>{if(_(!1),w&&k.current){var e;e=k.current,c.sendData({event:"client:kill-port",server:w,service:m().omit(n,["servers"]),port:e})}setTimeout(()=>{_(!0)},2e3)},[w]),(0,i.jsxs)(t.Z,{className:"grid-cell",children:[(0,i.jsxs)(t.Z,{className:"grid-cell-content",children:[(0,i.jsxs)(o.Z,{className:"w-full justify-between",children:[(0,i.jsx)(d.Z,{children:n.service_name}),(0,i.jsx)(u,{link:{url:"/admin/services/".concat(n.service_name),title:"View"}})]}),(0,i.jsxs)("code",{children:[n.service_name," service"]})]}),(0,i.jsx)("hr",{}),(0,i.jsxs)(t.Z,{className:"gap-0",children:[(0,i.jsxs)(o.Z,{className:"p-4 grid md:grid-cols-2",children:[(0,i.jsx)(f.Z,{options:h.map((e,n)=>({value:e.service_name,title:"Cluster #".concat(n+1)})),changeHandler:e=>{N(h.find(n=>n.service_name==e))}}),g?(0,i.jsx)(f.Z,{options:g.map(e=>({value:e.private_ip,title:e.private_ip})),changeHandler:e=>{C(g.find(n=>n.private_ip==e))}}):void 0]}),x&&w?(0,i.jsx)(v.Z,{server:w,service:n,portRef:k}):void 0]})]})}function j(){let{pageProps:e}=(0,l.useContext)(r.AppContext),{deployment:n,children_services:s}=e,c=null==n?void 0:n.services.filter(e=>!e.parent_service_name);return(0,i.jsx)(t.Z,{className:"w-full nested-grid-frame xl:grid-cols-2",children:null==c?void 0:c.map((e,n)=>(0,i.jsx)(_,{service:e},n))})}},78701:function(e,n,s){"use strict";s.r(n),s.d(n,{__N_SSP:function(){return v},default:function(){return f}});var i=s(85893),r=s(67294),t=s(5606),l=s(38249),c=s(60705),a=s(33028),o=s(49533);function u(){let{pageProps:e}=(0,r.useContext)(t.AppContext),{user:n,deployment:s,deployment_id:u}=e,d=null==s?void 0:s.deployment_name;return(0,i.jsxs)(r.Fragment,{children:[(0,i.jsx)(a.Z,{title:"".concat((0,l.Z)(d)," Deplyoment Dashboard"),description:(0,i.jsxs)(i.Fragment,{children:["Deployment"," ",(0,i.jsx)("code",{children:null==u?void 0:u.split("-").shift()})," > ",(0,i.jsx)("code",{children:null==s?void 0:s.deployment_name})]})}),(0,i.jsx)(c.Z,{}),(0,i.jsx)(o.Z,{})]})}var d=s(89350),v=!0;function f(){return(0,i.jsx)(d.Z,{children:(0,i.jsx)(u,{})})}}},function(e){e.O(0,[662,75,664,433,7,827,910,464,888,774,179],function(){return e(e.s=55634)}),_N_E=e.O()}]);
|
|
||||||
@ -1 +0,0 @@
|
|||||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[329],{89426:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/services/[service_name]",function(){return s(52963)}])},52963:function(e,n,s){"use strict";s.r(n),s.d(n,{__N_SSP:function(){return h},default:function(){return _}});var l=s(85893),r=s(67294),i=s(5606),t=s(38249),c=s(60705),a=s(33028),d=s(60),o=s(94655),u=s(45377);function x(e){let{service:n}=e,{pageProps:s}=(0,r.useContext)(i.AppContext),t=n.servers,[c,a]=(0,r.useState)(null==t?void 0:t[0]),x=null!=t&&!!t.length&&!!(t.length%2);return(0,l.jsx)(d.Z,{className:"w-full grid-cell col-span-1 gap-0",children:(0,l.jsxs)(o.Z,{className:"nested-grid-frame xl:grid-cols-2",children:[null==t?void 0:t.map((e,s)=>(0,l.jsx)(u.Z,{server:e,service:n,wrapperProps:{className:"grid-cell"}},s)),x?(0,l.jsx)("div",{className:"grid-cell"}):null]})})}var v=s(39483),p=s(56211);function m(){let{pageProps:e,ws:n}=(0,r.useContext)(i.AppContext),{service:s,deployment:t,children_services:c}=e,a=[s,...c||[]],[u,m]=(0,r.useState)(s||void 0),j=a.findIndex(e=>(null==e?void 0:e.service_name)==(null==u?void 0:u.service_name))+1;return null==u||u.servers,(0,l.jsx)(d.Z,{className:"w-full nested-grid-frame grid-cols-1",children:(0,l.jsxs)(d.Z,{className:"grid-cell gap-0",children:[(0,l.jsx)(o.Z,{className:"grid-cell-content flex-nowrap",children:(0,l.jsxs)(o.Z,{className:"w-full justify-between",children:[(0,l.jsx)(o.Z,{children:(0,l.jsxs)(p.Z,{children:["Cluster #",j]})}),(0,l.jsx)(o.Z,{children:(0,l.jsx)(v.Z,{options:a.map((e,n)=>({value:null==e?void 0:e.service_name,title:"Cluster #".concat(n+1)})),wrapperWrapperProps:{className:"max-w-[250px]"},changeHandler:e=>{m(void 0),n.sendData({event:"client:kill-all-ports"}),setTimeout(()=>{m(a.find(n=>(null==n?void 0:n.service_name)==e)||void 0)},200)}})})]})}),(0,l.jsx)("hr",{}),u?(0,l.jsx)(x,{service:u}):void 0]})})}function j(){let{pageProps:e}=(0,r.useContext)(i.AppContext),{service:n,deployment:s}=e,d=null==s?void 0:s.deployment_name,o=null==n?void 0:n.service_name;return(0,l.jsxs)(r.Fragment,{children:[(0,l.jsx)(a.Z,{title:"".concat((0,t.Z)(o)," Service"),description:(0,l.jsxs)(l.Fragment,{children:["Deployment ",(0,l.jsx)("code",{children:d})," > ",(0,l.jsx)("code",{children:o})]})}),(0,l.jsx)(c.Z,{}),(0,l.jsx)(m,{})]})}var f=s(89350),h=!0;function _(){return(0,l.jsx)(f.Z,{children:(0,l.jsx)(j,{})})}}},function(e){e.O(0,[662,75,664,433,7,827,910,464,888,774,179],function(){return e(e.s=89426)}),_N_E=e.O()}]);
|
|
||||||
1
dist/web/static/chunks/pages/admin/services/[service_name]-e8b08e5c11b1b12c.js
vendored
Normal file
1
dist/web/static/chunks/pages/admin/services/[service_name]-e8b08e5c11b1b12c.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[329],{89426:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/services/[service_name]",function(){return s(52963)}])},52963:function(e,n,s){"use strict";s.r(n),s.d(n,{__N_SSP:function(){return h},default:function(){return _}});var l=s(85893),r=s(67294),i=s(5606),t=s(38249),c=s(60705),a=s(33028),d=s(60),o=s(94655),u=s(1765);function x(e){let{service:n}=e,{pageProps:s}=(0,r.useContext)(i.AppContext),t=n.servers,[c,a]=(0,r.useState)(null==t?void 0:t[0]),x=null!=t&&!!t.length&&!!(t.length%2);return(0,l.jsx)(d.Z,{className:"w-full grid-cell col-span-1 gap-0",children:(0,l.jsxs)(o.Z,{className:"nested-grid-frame xl:grid-cols-2",children:[null==t?void 0:t.map((e,s)=>(0,l.jsx)(u.Z,{server:e,service:n,wrapperProps:{className:"grid-cell"}},s)),x?(0,l.jsx)("div",{className:"grid-cell"}):null]})})}var v=s(39483),p=s(56211);function m(){let{pageProps:e,ws:n}=(0,r.useContext)(i.AppContext),{service:s,deployment:t,children_services:c}=e,a=[s,...c||[]],[u,m]=(0,r.useState)(s||void 0),j=a.findIndex(e=>(null==e?void 0:e.service_name)==(null==u?void 0:u.service_name))+1;return null==u||u.servers,(0,l.jsx)(d.Z,{className:"w-full nested-grid-frame grid-cols-1",children:(0,l.jsxs)(d.Z,{className:"grid-cell gap-0",children:[(0,l.jsx)(o.Z,{className:"grid-cell-content flex-nowrap",children:(0,l.jsxs)(o.Z,{className:"w-full justify-between",children:[(0,l.jsx)(o.Z,{children:(0,l.jsxs)(p.Z,{children:["Cluster #",j]})}),(0,l.jsx)(o.Z,{children:(0,l.jsx)(v.Z,{options:a.map((e,n)=>({value:null==e?void 0:e.service_name,title:"Cluster #".concat(n+1)})),wrapperWrapperProps:{className:"max-w-[250px]"},changeHandler:e=>{m(void 0),n.sendData({event:"client:kill-all-ports"}),setTimeout(()=>{m(a.find(n=>(null==n?void 0:n.service_name)==e)||void 0)},200)}})})]})}),(0,l.jsx)("hr",{}),u?(0,l.jsx)(x,{service:u}):void 0]})})}function j(){let{pageProps:e}=(0,r.useContext)(i.AppContext),{service:n,deployment:s}=e,d=null==s?void 0:s.deployment_name,o=null==n?void 0:n.service_name;return(0,l.jsxs)(r.Fragment,{children:[(0,l.jsx)(a.Z,{title:"".concat((0,t.Z)(o)," Service"),description:(0,l.jsxs)(l.Fragment,{children:["Deployment ",(0,l.jsx)("code",{children:d})," > ",(0,l.jsx)("code",{children:o})]})}),(0,l.jsx)(c.Z,{}),(0,l.jsx)(m,{})]})}var f=s(89350),h=!0;function _(){return(0,l.jsx)(f.Z,{children:(0,l.jsx)(j,{})})}}},function(e){e.O(0,[662,75,664,433,7,827,910,926,888,774,179],function(){return e(e.s=89426)}),_N_E=e.O()}]);
|
||||||
1
dist/web/static/chunks/pages/admin/shell-c4ef7e6bc7ca42e9.js
vendored
Normal file
1
dist/web/static/chunks/pages/admin/shell-c4ef7e6bc7ca42e9.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[890],{25292:function(e,l,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/shell",function(){return n(30904)}])},40806:function(e,l,n){"use strict";n.d(l,{Z:function(){return x}});var s=n(85893),r=n(93452),t=n(76242),i=n(36969),c=n(25808),a=n(94495),u=n(57493),o=n(94655),d=n(3668),f=n(60),p=n(67294),m=n(98388);function x(e){let{url:l,wrapperProps:n,title:x,...h}=e,{loading:j,setLoading:v}=(0,c.Z)();return(0,s.jsx)(r.Z,{...n,className:(0,m.m6)("p-0",null==n?void 0:n.className),children:(0,s.jsxs)(f.Z,{className:"gap-0",children:[(0,s.jsxs)(o.Z,{className:"p-4 w-full justify-between",children:[(0,s.jsx)(o.Z,{children:x?(0,s.jsx)(p.Fragment,{children:(0,s.jsx)(d.Z,{size:"small",variant:"faded",children:x})}):null}),(0,s.jsxs)(o.Z,{children:[(0,s.jsx)(a.Z,{title:"Open Full Screen",variant:"ghost",className:"p-1!",onClick:()=>{window.open(l,"__blank")},children:(0,s.jsx)(i.Z,{name:"ArrowUpRight",size:20})}),(0,s.jsx)(a.Z,{title:"Refresh Iframe",variant:"ghost",className:"p-1!",loading:j,onClick:()=>{v(!0),setTimeout(()=>{v(!1)},2e3)},loadingProps:{size:"smaller"},children:(0,s.jsx)(i.Z,{name:"RotateCcw",size:18})})]})]}),(0,s.jsx)("hr",{}),j?(0,s.jsx)(u.Z,{className:"w-full p-10 h-[400px]",children:(0,s.jsx)(t.Z,{})}):(0,s.jsx)("iframe",{...h,src:l,className:(0,m.m6)("w-full h-[400px]",h.className)})]})})}},30904:function(e,l,n){"use strict";n.r(l),n.d(l,{__N_SSP:function(){return v},default:function(){return Z}});var s=n(85893),r=n(67294),t=n(5606),i=n(60705),c=n(33028),a=n(60),u=n(71077),o=n(76242),d=n(57493),f=n(40806),p=n(25808);function m(e){let{paradigm:l}=e,{pageProps:n,ws:i}=(0,r.useContext)(t.AppContext),{user:c}=n,m=c.super_admin?"root":c.username,x="pm2-logs"==l?"pm2 logs":c.super_admin?"bash":m?"su - ".concat(m,' -c "bash"'):void 0,{data:h}=(0,u.Z)(),[j,v]=(0,r.useState)(),{refresh:Z,setRefresh:g}=(0,p.Z)(),N=(0,r.useRef)(!1);function w(){(null==j?void 0:j.port)&&i.sendData({event:"client:kill-port",port:j.port})}return(0,r.useEffect)(()=>{if((null==i?void 0:i.socket)&&!N.current)return i.sendData({event:"pm2-logs"==l?"client:relay-pm2-logs":"client:relay-shell",cmd:x}),N.current=!0,function(){w()}},[i,Z]),(0,r.useEffect)(()=>{N.current&&(w(),v(void 0),N.current=!1,g(e=>e+1))},[]),(0,r.useEffect)(()=>{!j&&((null==h?void 0:h.event)=="server:relay-shell"||(null==h?void 0:h.event)=="server:relay-pm2-logs")&&(null==h?void 0:h.ttyd)&&setTimeout(()=>{v(h.ttyd?{...h.ttyd,href:"".concat(window.location.origin).concat(h.ttyd.url)}:void 0)},2e3)},[h]),(0,s.jsxs)(a.Z,{className:"gap-0 w-full",children:[(null==j?void 0:j.url)&&j.port?(0,s.jsx)(a.Z,{className:"gap-0",children:(0,s.jsx)(f.Z,{url:null==j?void 0:j.url,title:"Relay Shell",wrapperProps:{className:"border-none"}})}):(0,s.jsx)(d.Z,{className:"p-10 h-[460px]",children:(0,s.jsx)(o.Z,{})}),(0,s.jsx)("hr",{})]})}function x(){let{pageProps:e}=(0,r.useContext)(t.AppContext),{user:l}=e;return(0,s.jsxs)(a.Z,{className:"w-full nested-grid-frame xl:grid-cols-2",children:[(0,s.jsx)(a.Z,{className:"grid-cell w-full",children:(0,s.jsx)(m,{paradigm:"shell"})}),l.super_admin?(0,s.jsx)(a.Z,{className:"grid-cell w-full",children:(0,s.jsx)(m,{paradigm:"pm2-logs"})}):null]})}function h(){let{pageProps:e}=(0,r.useContext)(t.AppContext);return(0,s.jsxs)(r.Fragment,{children:[(0,s.jsx)(c.Z,{title:"Shell",description:(0,s.jsx)(s.Fragment,{children:"Access the relay server shell"})}),(0,s.jsx)(i.Z,{}),(0,s.jsx)(x,{})]})}var j=n(89350),v=!0;function Z(){return(0,s.jsx)(j.Z,{children:(0,s.jsx)(h,{})})}},93452:function(e,l,n){"use strict";n.d(l,{Z:function(){return t}});var s=n(85893),r=n(98388);function t(e){let{spacing:l,componentRef:n,...t}=e;return(0,s.jsx)("div",{...t,className:(0,r.m6)("relative flex items-center gap-2 border border-solid rounded-default","border-slate-200 dark:border-white/10",l?"normal"==l?"px-3 py-2":"tight"==l?"px-2 py-1":"":"px-3 py-2","twui-border",t.className),ref:n,children:t.children})}},57493:function(e,l,n){"use strict";n.d(l,{Z:function(){return t}});var s=n(85893),r=n(98388);function t(e){let{...l}=e;return(0,s.jsx)("div",{...l,className:(0,r.m6)("flex flex-col items-center justify-center gap-4 p-2 w-full","h-full twui-center",l.className),children:l.children})}},9008:function(e,l,n){e.exports=n(23867)}},function(e){e.O(0,[662,75,664,433,7,910,888,774,179],function(){return e(e.s=25292)}),_N_E=e.O()}]);
|
||||||
1
dist/web/static/hp8Dmk2dba-pzMh79OIf7/_buildManifest.js
vendored
Normal file
1
dist/web/static/hp8Dmk2dba-pzMh79OIf7/_buildManifest.js
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
self.__BUILD_MANIFEST=function(s,e,a,c,t,i,d,n,u){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":[s,a,e,c,u,t,i,"static/chunks/pages/index-5ce092dbf4b7ea2c.js"],"/404":[s,e,"static/chunks/pages/404-8292e1046538596b.js"],"/_error":["static/chunks/pages/_error-10090a8ee211d5fd.js"],"/admin":[s,a,e,c,t,i,d,n,"static/chunks/pages/admin-914586c03dfda5c1.js"],"/admin/services":[s,a,e,c,t,i,d,n,"static/chunks/pages/admin/services-16971626ad193c95.js"],"/admin/services/[service_name]":[s,a,e,c,t,i,d,n,"static/chunks/pages/admin/services/[service_name]-e8b08e5c11b1b12c.js"],"/admin/settings":[s,a,e,c,t,i,d,"static/chunks/pages/admin/settings-f58d63b2752f72a6.js"],"/admin/shell":[s,a,e,c,t,d,"static/chunks/pages/admin/shell-c4ef7e6bc7ca42e9.js"],"/admin/users":[s,a,e,c,t,d,"static/chunks/pages/admin/users-73e9775838b56d95.js"],"/admin/users/add-user":[s,a,e,c,t,i,d,"static/chunks/pages/admin/users/add-user-1db7c9ee89830b5b.js"],"/admin/users/[deployment_user_id]":[s,a,"static/chunks/ff39441c-88f593a46cb65964.js","static/chunks/d848df63-a470d32e7be4bfe3.js",e,c,"static/chunks/281-dcee0c6401936d5e.js",t,i,d,"static/chunks/pages/admin/users/[deployment_user_id]-fb1c3c9148c518cd.js"],"/auth/login":[s,a,e,c,u,t,i,"static/chunks/pages/auth/login-3f936f997e58438c.js"],"/auth/logout":[s,e,"static/chunks/pages/auth/logout-c8b207f96be4f684.js"],"/auth/signup":[s,a,e,c,t,i,"static/chunks/pages/auth/signup-5c0f6835749e755e.js"],sortedPages:["/","/404","/_app","/_error","/admin","/admin/services","/admin/services/[service_name]","/admin/settings","/admin/shell","/admin/users","/admin/users/add-user","/admin/users/[deployment_user_id]","/auth/login","/auth/logout","/auth/signup"]}}("static/chunks/29107295-2819ba6e51dbf961.js","static/chunks/664-e347d64e56042a02.js","static/chunks/e5d67320-ccbab4288ca637ad.js","static/chunks/433-ace0b205fb566ad3.js","static/chunks/7-f0121001f735b8fe.js","static/chunks/827-7975edcf8481ec69.js","static/chunks/910-7de3855073c34589.js","static/chunks/926-4b397e2b281b7271.js","static/chunks/225-f257bb5bd6014d68.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
||||||
7
dist/web/trace
vendored
7
dist/web/trace
vendored
File diff suppressed because one or more lines are too long
117
src/components/pages/admin/shell/(partials)/shell-view.tsx
Normal file
117
src/components/pages/admin/shell/(partials)/shell-view.tsx
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
import Stack from "@/twui/components/layout/Stack";
|
||||||
|
import { useContext, useEffect, useRef, useState } from "react";
|
||||||
|
import { AppContext } from "@/src/pages/_app";
|
||||||
|
import { TtydInfoObject, WebSocketDataType } from "@/src/types";
|
||||||
|
import useWebSocketEventHandler from "@/twui/components/hooks/useWebSocketEventHandler";
|
||||||
|
import _ from "lodash";
|
||||||
|
import Loading from "@/twui/components/elements/Loading";
|
||||||
|
import Center from "@/twui/components/layout/Center";
|
||||||
|
import TtydIframe from "@/src/components/general/ttyd-iframe";
|
||||||
|
import useStatus from "@/twui/components/hooks/useStatus";
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
paradigm: "shell" | "pm2-logs";
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function RelayShellView({ paradigm }: Props) {
|
||||||
|
const { pageProps, ws } = useContext(AppContext);
|
||||||
|
const { user } = pageProps;
|
||||||
|
|
||||||
|
const username = user.super_admin ? "root" : user.username;
|
||||||
|
const cmd =
|
||||||
|
paradigm == "pm2-logs"
|
||||||
|
? "pm2 logs"
|
||||||
|
: user.super_admin
|
||||||
|
? "bash"
|
||||||
|
: username
|
||||||
|
? `su - ${username} -c "bash"`
|
||||||
|
: undefined;
|
||||||
|
|
||||||
|
const { data } = useWebSocketEventHandler<WebSocketDataType>();
|
||||||
|
const [ttyd, setTtyd] = useState<TtydInfoObject>();
|
||||||
|
|
||||||
|
const { refresh, setRefresh } = useStatus();
|
||||||
|
|
||||||
|
const WsReqSentRef = useRef(false);
|
||||||
|
|
||||||
|
function sendKillPort() {
|
||||||
|
if (ttyd?.port) {
|
||||||
|
ws.sendData({
|
||||||
|
event: "client:kill-port",
|
||||||
|
port: ttyd.port,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!ws?.socket || WsReqSentRef.current) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ws.sendData({
|
||||||
|
event:
|
||||||
|
paradigm == "pm2-logs"
|
||||||
|
? "client:relay-pm2-logs"
|
||||||
|
: "client:relay-shell",
|
||||||
|
cmd,
|
||||||
|
});
|
||||||
|
|
||||||
|
WsReqSentRef.current = true;
|
||||||
|
|
||||||
|
return function () {
|
||||||
|
sendKillPort();
|
||||||
|
};
|
||||||
|
}, [ws, refresh]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (WsReqSentRef.current) {
|
||||||
|
sendKillPort();
|
||||||
|
|
||||||
|
setTtyd(undefined);
|
||||||
|
WsReqSentRef.current = false;
|
||||||
|
setRefresh((prev) => prev + 1);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (ttyd) return;
|
||||||
|
|
||||||
|
if (
|
||||||
|
(data?.event == "server:relay-shell" ||
|
||||||
|
data?.event == "server:relay-pm2-logs") &&
|
||||||
|
data?.ttyd
|
||||||
|
) {
|
||||||
|
setTimeout(() => {
|
||||||
|
setTtyd(
|
||||||
|
data.ttyd
|
||||||
|
? {
|
||||||
|
...data.ttyd,
|
||||||
|
href: `${window.location.origin}${data.ttyd.url}`,
|
||||||
|
}
|
||||||
|
: undefined,
|
||||||
|
);
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
}, [data]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Stack className="gap-0 w-full">
|
||||||
|
{ttyd?.url && ttyd.port ? (
|
||||||
|
<Stack className="gap-0">
|
||||||
|
<TtydIframe
|
||||||
|
url={ttyd?.url}
|
||||||
|
title={`Relay Shell`}
|
||||||
|
wrapperProps={{
|
||||||
|
className: "border-none",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Stack>
|
||||||
|
) : (
|
||||||
|
<Center className="p-10 h-[460px]">
|
||||||
|
<Loading />
|
||||||
|
</Center>
|
||||||
|
)}
|
||||||
|
<hr />
|
||||||
|
</Stack>
|
||||||
|
);
|
||||||
|
}
|
||||||
22
src/components/pages/admin/shell/(sections)/shell-views.tsx
Normal file
22
src/components/pages/admin/shell/(sections)/shell-views.tsx
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { AppContext } from "@/src/pages/_app";
|
||||||
|
import Stack from "@/twui/components/layout/Stack";
|
||||||
|
import { useContext } from "react";
|
||||||
|
import RelayShellView from "../(partials)/shell-view";
|
||||||
|
|
||||||
|
export default function RelayShellViewsSection() {
|
||||||
|
const { pageProps } = useContext(AppContext);
|
||||||
|
const { user } = pageProps;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Stack className="w-full nested-grid-frame xl:grid-cols-2">
|
||||||
|
<Stack className="grid-cell w-full">
|
||||||
|
<RelayShellView paradigm="shell" />
|
||||||
|
</Stack>
|
||||||
|
{user.super_admin ? (
|
||||||
|
<Stack className="grid-cell w-full">
|
||||||
|
<RelayShellView paradigm="pm2-logs" />
|
||||||
|
</Stack>
|
||||||
|
) : null}
|
||||||
|
</Stack>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
src/components/pages/admin/shell/index.tsx
Normal file
20
src/components/pages/admin/shell/index.tsx
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import { Fragment, useContext } from "react";
|
||||||
|
import { AppContext } from "@/src/pages/_app";
|
||||||
|
import Divider from "@/twui/components/layout/Divider";
|
||||||
|
import AdminHero from "@/src/components/general/admin/hero";
|
||||||
|
import RelayShellViewsSection from "./(sections)/shell-views";
|
||||||
|
|
||||||
|
export default function Main() {
|
||||||
|
const { pageProps } = useContext(AppContext);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Fragment>
|
||||||
|
<AdminHero
|
||||||
|
title={`Shell`}
|
||||||
|
description={<>Access the relay server shell</>}
|
||||||
|
/>
|
||||||
|
<Divider />
|
||||||
|
<RelayShellViewsSection />
|
||||||
|
</Fragment>
|
||||||
|
);
|
||||||
|
}
|
||||||
48
src/functions/ttyd/grab-ttyd-info.ts
Normal file
48
src/functions/ttyd/grab-ttyd-info.ts
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import {
|
||||||
|
NSQLITE_TURBOCI_ADMIN_USERS_PORTS,
|
||||||
|
NSQLiteTables,
|
||||||
|
} from "@/src/db/types";
|
||||||
|
import { TtydInfoObject, User } from "@/src/types";
|
||||||
|
import getNextAvailablePort from "@/src/utils/grab-next-available-port";
|
||||||
|
import grabTtydCmd from "@/src/utils/grab-ttyd-cmd";
|
||||||
|
import grabConnectedWebsocketUserdata from "@/src/websocket/(utils)/grab-connected-websocket-user-data";
|
||||||
|
import BunSQLite from "@moduletrace/bun-sqlite";
|
||||||
|
import { exec } from "child_process";
|
||||||
|
|
||||||
|
type Params = {
|
||||||
|
user: User;
|
||||||
|
cmd: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default async function grabTtydInfo({
|
||||||
|
user,
|
||||||
|
cmd,
|
||||||
|
}: Params): Promise<TtydInfoObject> {
|
||||||
|
const available_port = await getNextAvailablePort();
|
||||||
|
|
||||||
|
let url = `/ttyd/${available_port}`;
|
||||||
|
|
||||||
|
const ttyd_cmd = grabTtydCmd({
|
||||||
|
cmd,
|
||||||
|
port: available_port,
|
||||||
|
});
|
||||||
|
|
||||||
|
const ttyd_exec = exec(ttyd_cmd.cmd);
|
||||||
|
|
||||||
|
await Bun.sleep(2000);
|
||||||
|
|
||||||
|
const connected_user_data = grabConnectedWebsocketUserdata({ user });
|
||||||
|
|
||||||
|
await BunSQLite.insert<
|
||||||
|
NSQLITE_TURBOCI_ADMIN_USERS_PORTS,
|
||||||
|
(typeof NSQLiteTables)[number]
|
||||||
|
>({
|
||||||
|
data: [{ user_id: user.id, port: available_port }],
|
||||||
|
table: "users_ports",
|
||||||
|
});
|
||||||
|
|
||||||
|
connected_user_data.child_processes.push(ttyd_exec);
|
||||||
|
connected_user_data.ports.push(available_port);
|
||||||
|
|
||||||
|
return { port: available_port, url };
|
||||||
|
}
|
||||||
@ -1,21 +1,10 @@
|
|||||||
import {
|
|
||||||
NSQLITE_TURBOCI_ADMIN_USERS_PORTS,
|
|
||||||
NSQLiteTables,
|
|
||||||
} from "@/src/db/types";
|
|
||||||
import { PrivateServerTtydParadigms, TtydInfoObject, User } from "@/src/types";
|
import { PrivateServerTtydParadigms, TtydInfoObject, User } from "@/src/types";
|
||||||
import {
|
import {
|
||||||
NormalizedServerObject,
|
NormalizedServerObject,
|
||||||
ParsedDeploymentServiceConfig,
|
ParsedDeploymentServiceConfig,
|
||||||
} from "@/src/types/turboci";
|
} from "@/src/types/turboci";
|
||||||
import grabDirNames from "@/src/utils/grab-dir-names";
|
|
||||||
import getNextAvailablePort from "@/src/utils/grab-next-available-port";
|
|
||||||
import grabSSHPrefix from "@/src/utils/grab-ssh-prefix";
|
import grabSSHPrefix from "@/src/utils/grab-ssh-prefix";
|
||||||
import grabTtydCmd from "@/src/utils/grab-ttyd-cmd";
|
import grabTtydInfo from "./grab-ttyd-info";
|
||||||
import grabConnectedWebsocketUserdata from "@/src/websocket/(utils)/grab-connected-websocket-user-data";
|
|
||||||
import BunSQLite from "@moduletrace/bun-sqlite";
|
|
||||||
import { exec } from "child_process";
|
|
||||||
|
|
||||||
const { TURBOCI_SSH_KEY_FILE } = grabDirNames();
|
|
||||||
|
|
||||||
type Params = {
|
type Params = {
|
||||||
user: User;
|
user: User;
|
||||||
@ -44,46 +33,15 @@ export default async function grabTtydServerInfo({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const available_port = await getNextAvailablePort();
|
|
||||||
|
|
||||||
let url = `/ttyd/${available_port}`;
|
|
||||||
|
|
||||||
let cmd = ``;
|
let cmd = ``;
|
||||||
|
|
||||||
cmd += ` ${grabSSHPrefix()}`;
|
cmd += ` ${grabSSHPrefix()}`;
|
||||||
|
|
||||||
// if (paradigm == "logs") {
|
|
||||||
// } else {
|
|
||||||
// cmd += ` ssh -i ${TURBOCI_SSH_KEY_FILE}`;
|
|
||||||
// }
|
|
||||||
|
|
||||||
cmd += ` root@${server?.private_ip}`;
|
cmd += ` root@${server?.private_ip}`;
|
||||||
|
|
||||||
if (paradigm == "logs" && final_log) {
|
if (paradigm == "logs" && final_log) {
|
||||||
cmd += ` ${final_log}`;
|
cmd += ` ${final_log}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ttyd_cmd = grabTtydCmd({
|
return await grabTtydInfo({ cmd, user });
|
||||||
cmd,
|
|
||||||
port: available_port,
|
|
||||||
});
|
|
||||||
|
|
||||||
const ttyd_exec = exec(ttyd_cmd.cmd);
|
|
||||||
|
|
||||||
await Bun.sleep(2000);
|
|
||||||
|
|
||||||
const connected_user_data = grabConnectedWebsocketUserdata({ user });
|
|
||||||
|
|
||||||
await BunSQLite.insert<
|
|
||||||
NSQLITE_TURBOCI_ADMIN_USERS_PORTS,
|
|
||||||
(typeof NSQLiteTables)[number]
|
|
||||||
>({
|
|
||||||
data: [{ user_id: user.id, port: available_port }],
|
|
||||||
table: "users_ports",
|
|
||||||
});
|
|
||||||
|
|
||||||
connected_user_data.child_processes.push(ttyd_exec);
|
|
||||||
connected_user_data.ports.push(available_port);
|
|
||||||
|
|
||||||
return { port: available_port, url };
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,10 +24,19 @@ export function AdminAsideLinks({ user }: Params) {
|
|||||||
url: "/admin/users",
|
url: "/admin/users",
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
|
{
|
||||||
|
title: "Shell",
|
||||||
|
url: "/admin/shell",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Settings",
|
title: "Settings",
|
||||||
url: "/admin/settings",
|
url: "/admin/settings",
|
||||||
},
|
},
|
||||||
|
{ divider: true },
|
||||||
|
{
|
||||||
|
title: "Logout",
|
||||||
|
url: "/auth/logout",
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return links;
|
return links;
|
||||||
|
|||||||
18
src/pages/admin/shell/index.tsx
Normal file
18
src/pages/admin/shell/index.tsx
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import Main from "@/src/components/pages/admin/shell";
|
||||||
|
import defaultAdminProps from "@/src/functions/pages/admin/default-admin-props";
|
||||||
|
import Layout from "@/src/layouts/admin";
|
||||||
|
import { GetServerSideProps } from "next";
|
||||||
|
|
||||||
|
export default function AdminDeploymentUsers() {
|
||||||
|
return (
|
||||||
|
<Layout>
|
||||||
|
<Main />
|
||||||
|
</Layout>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getServerSideProps: GetServerSideProps = async (ctx) => {
|
||||||
|
return await defaultAdminProps({
|
||||||
|
ctx,
|
||||||
|
});
|
||||||
|
};
|
||||||
@ -79,6 +79,8 @@ export const WebSocketEvents = [
|
|||||||
"client:kill-port",
|
"client:kill-port",
|
||||||
"client:kill-all-ports",
|
"client:kill-all-ports",
|
||||||
"client:service-server-shell",
|
"client:service-server-shell",
|
||||||
|
"client:relay-shell",
|
||||||
|
"client:relay-pm2-logs",
|
||||||
|
|
||||||
"server:ping",
|
"server:ping",
|
||||||
"server:error",
|
"server:error",
|
||||||
@ -90,6 +92,8 @@ export const WebSocketEvents = [
|
|||||||
"server:killed-port",
|
"server:killed-port",
|
||||||
"server:killed-all-ports",
|
"server:killed-all-ports",
|
||||||
"server:service-server-shell",
|
"server:service-server-shell",
|
||||||
|
"server:relay-shell",
|
||||||
|
"server:relay-pm2-logs",
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
export type WebSocketDataType = {
|
export type WebSocketDataType = {
|
||||||
|
|||||||
22
src/websocket/events/client-relay-pm2-logs.ts
Normal file
22
src/websocket/events/client-relay-pm2-logs.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { WebSocketMessageParam } from "@/src/types";
|
||||||
|
import sendData from "../(utils)/send-data";
|
||||||
|
import sendError from "../(utils)/send-error";
|
||||||
|
import grabTtydInfo from "@/src/functions/ttyd/grab-ttyd-info";
|
||||||
|
|
||||||
|
export default async function socketClientRelayPm2Logs({
|
||||||
|
ws,
|
||||||
|
data,
|
||||||
|
}: WebSocketMessageParam) {
|
||||||
|
try {
|
||||||
|
const user = ws.data.user;
|
||||||
|
|
||||||
|
const ttyd = await grabTtydInfo({ cmd: `pm2 logs`, user });
|
||||||
|
|
||||||
|
sendData(ws, {
|
||||||
|
event: "server:relay-pm2-logs",
|
||||||
|
ttyd,
|
||||||
|
});
|
||||||
|
} catch (error: any) {
|
||||||
|
sendError(ws, "Relay Shell Error! " + error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/websocket/events/client-relay-shell.ts
Normal file
27
src/websocket/events/client-relay-shell.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import { WebSocketMessageParam } from "@/src/types";
|
||||||
|
import sendData from "../(utils)/send-data";
|
||||||
|
import sendError from "../(utils)/send-error";
|
||||||
|
import grabTtydInfo from "@/src/functions/ttyd/grab-ttyd-info";
|
||||||
|
|
||||||
|
export default async function socketClientRelayShell({
|
||||||
|
ws,
|
||||||
|
data,
|
||||||
|
}: WebSocketMessageParam) {
|
||||||
|
try {
|
||||||
|
const user = ws.data.user;
|
||||||
|
const cmd = data?.cmd;
|
||||||
|
|
||||||
|
if (!cmd) {
|
||||||
|
throw new Error(`No Command Passed`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const ttyd = await grabTtydInfo({ cmd, user });
|
||||||
|
|
||||||
|
sendData(ws, {
|
||||||
|
event: "server:relay-shell",
|
||||||
|
ttyd,
|
||||||
|
});
|
||||||
|
} catch (error: any) {
|
||||||
|
sendError(ws, "Relay Shell Error! " + error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -11,6 +11,8 @@ import socketClientServiceServerLogs from "./events/client-service-server-logs";
|
|||||||
import socketClientKillPort from "./events/client-kill-port";
|
import socketClientKillPort from "./events/client-kill-port";
|
||||||
import socketClientServiceServerShell from "./events/client-service-server-shell";
|
import socketClientServiceServerShell from "./events/client-service-server-shell";
|
||||||
import socketClientKillAllPorts from "./events/client-kill-all-ports";
|
import socketClientKillAllPorts from "./events/client-kill-all-ports";
|
||||||
|
import socketClientRelayShell from "./events/client-relay-shell";
|
||||||
|
import socketClientRelayPm2Logs from "./events/client-relay-pm2-logs";
|
||||||
|
|
||||||
type Param = {
|
type Param = {
|
||||||
ws: ServerWebSocket<WebSocketData>;
|
ws: ServerWebSocket<WebSocketData>;
|
||||||
@ -41,6 +43,7 @@ export default async function socketMessage({ ws, message }: Param) {
|
|||||||
});
|
});
|
||||||
await socketClientPing(websocketMessageParams);
|
await socketClientPing(websocketMessageParams);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "client:service-server-logs":
|
case "client:service-server-logs":
|
||||||
debugLog({
|
debugLog({
|
||||||
log: `${userRef} Getting Service Server Logs ...`,
|
log: `${userRef} Getting Service Server Logs ...`,
|
||||||
@ -49,6 +52,7 @@ export default async function socketMessage({ ws, message }: Param) {
|
|||||||
});
|
});
|
||||||
await socketClientServiceServerLogs(websocketMessageParams);
|
await socketClientServiceServerLogs(websocketMessageParams);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "client:service-server-shell":
|
case "client:service-server-shell":
|
||||||
debugLog({
|
debugLog({
|
||||||
log: `${userRef} Getting Service Server Shell ...`,
|
log: `${userRef} Getting Service Server Shell ...`,
|
||||||
@ -57,6 +61,25 @@ export default async function socketMessage({ ws, message }: Param) {
|
|||||||
});
|
});
|
||||||
await socketClientServiceServerShell(websocketMessageParams);
|
await socketClientServiceServerShell(websocketMessageParams);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "client:relay-shell":
|
||||||
|
debugLog({
|
||||||
|
log: `${userRef} Getting Relay Server Shell ...`,
|
||||||
|
addTime: true,
|
||||||
|
label,
|
||||||
|
});
|
||||||
|
await socketClientRelayShell(websocketMessageParams);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "client:relay-pm2-logs":
|
||||||
|
debugLog({
|
||||||
|
log: `${userRef} Getting Relay pm2 Logs ...`,
|
||||||
|
addTime: true,
|
||||||
|
label,
|
||||||
|
});
|
||||||
|
await socketClientRelayPm2Logs(websocketMessageParams);
|
||||||
|
break;
|
||||||
|
|
||||||
case "client:kill-port":
|
case "client:kill-port":
|
||||||
debugLog({
|
debugLog({
|
||||||
log: `${userRef} Killing Port ${data.port} ...`,
|
log: `${userRef} Killing Port ${data.port} ...`,
|
||||||
@ -65,6 +88,7 @@ export default async function socketMessage({ ws, message }: Param) {
|
|||||||
});
|
});
|
||||||
await socketClientKillPort(websocketMessageParams);
|
await socketClientKillPort(websocketMessageParams);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "client:kill-all-ports":
|
case "client:kill-all-ports":
|
||||||
debugLog({
|
debugLog({
|
||||||
log: `${userRef} Killing All Ports ...`,
|
log: `${userRef} Killing All Ports ...`,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user