@betterportal/tunnels 1.0.18 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/package.json +1 -1
  2. package/lib/.bsb/clients/service-tunnels-client.d.ts +0 -133
  3. package/lib/.bsb/clients/service-tunnels-client.d.ts.map +0 -1
  4. package/lib/.bsb/clients/service-tunnels-client.js +0 -102
  5. package/lib/.bsb/clients/service-tunnels-client.js.map +0 -1
  6. package/lib/.bsb/clients/service-tunnels-proxy.d.ts +0 -43
  7. package/lib/.bsb/clients/service-tunnels-proxy.d.ts.map +0 -1
  8. package/lib/.bsb/clients/service-tunnels-proxy.js +0 -47
  9. package/lib/.bsb/clients/service-tunnels-proxy.js.map +0 -1
  10. package/lib/auth.d.ts +0 -12
  11. package/lib/auth.d.ts.map +0 -1
  12. package/lib/auth.js +0 -59
  13. package/lib/auth.js.map +0 -1
  14. package/lib/cli.d.ts +0 -2
  15. package/lib/cli.d.ts.map +0 -1
  16. package/lib/cli.js +0 -406
  17. package/lib/cli.js.map +0 -1
  18. package/lib/generated/prisma/client.d.ts +0 -1
  19. package/lib/generated/prisma/client.js +0 -5
  20. package/lib/generated/prisma/default.d.ts +0 -1
  21. package/lib/generated/prisma/default.js +0 -5
  22. package/lib/generated/prisma/edge.d.ts +0 -1
  23. package/lib/generated/prisma/edge.js +0 -278
  24. package/lib/generated/prisma/index-browser.js +0 -304
  25. package/lib/generated/prisma/index.d.ts +0 -13885
  26. package/lib/generated/prisma/index.js +0 -278
  27. package/lib/generated/prisma/package.json +0 -144
  28. package/lib/generated/prisma/query_compiler_fast_bg.js +0 -2
  29. package/lib/generated/prisma/query_compiler_fast_bg.wasm +0 -0
  30. package/lib/generated/prisma/query_compiler_fast_bg.wasm-base64.js +0 -2
  31. package/lib/generated/prisma/runtime/client.d.ts +0 -3386
  32. package/lib/generated/prisma/runtime/client.js +0 -86
  33. package/lib/generated/prisma/runtime/index-browser.d.ts +0 -90
  34. package/lib/generated/prisma/runtime/index-browser.js +0 -6
  35. package/lib/generated/prisma/runtime/wasm-compiler-edge.js +0 -76
  36. package/lib/generated/prisma/schema.prisma +0 -142
  37. package/lib/generated/prisma/wasm-edge-light-loader.mjs +0 -5
  38. package/lib/generated/prisma/wasm-worker-loader.mjs +0 -5
  39. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.d.ts +0 -3
  40. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.d.ts.map +0 -1
  41. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.js +0 -148
  42. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.js.map +0 -1
  43. package/lib/plugins/service-tunnels-admin/assets/brand/bettertunnels-horizontal-light.svg +0 -18
  44. package/lib/plugins/service-tunnels-admin/assets/brand/bettertunnels-square-dark-1024x1024.png +0 -0
  45. package/lib/plugins/service-tunnels-admin/assets/brand/favicon.svg +0 -12
  46. package/lib/plugins/service-tunnels-admin/betterportal-logo.png +0 -0
  47. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.d.ts +0 -20
  48. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.d.ts.map +0 -1
  49. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.js +0 -51
  50. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.js.map +0 -1
  51. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.d.ts +0 -5
  52. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.d.ts.map +0 -1
  53. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.js +0 -6
  54. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/_theme.bootstrap1/GET.js.map +0 -1
  55. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.d.ts +0 -7
  56. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.d.ts.map +0 -1
  57. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.js +0 -12
  58. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.js.map +0 -1
  59. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.d.ts +0 -35
  60. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.d.ts.map +0 -1
  61. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.js +0 -44
  62. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.js.map +0 -1
  63. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.d.ts +0 -5
  64. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.d.ts.map +0 -1
  65. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.js +0 -22
  66. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/_theme.bootstrap1/GET.js.map +0 -1
  67. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.d.ts +0 -7
  68. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.d.ts.map +0 -1
  69. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.js +0 -14
  70. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.js.map +0 -1
  71. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.d.ts +0 -25
  72. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.d.ts.map +0 -1
  73. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.js +0 -34
  74. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.js.map +0 -1
  75. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.d.ts +0 -5
  76. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.d.ts.map +0 -1
  77. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.js +0 -5
  78. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.js.map +0 -1
  79. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.d.ts +0 -7
  80. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.d.ts.map +0 -1
  81. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.js +0 -12
  82. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.js.map +0 -1
  83. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.d.ts +0 -35
  84. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.d.ts.map +0 -1
  85. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.js +0 -52
  86. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.js.map +0 -1
  87. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.d.ts +0 -5
  88. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.d.ts.map +0 -1
  89. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.js +0 -5
  90. package/lib/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.js.map +0 -1
  91. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.d.ts +0 -7
  92. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.d.ts.map +0 -1
  93. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.js +0 -12
  94. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.js.map +0 -1
  95. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.d.ts +0 -39
  96. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.d.ts.map +0 -1
  97. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.js +0 -46
  98. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.js.map +0 -1
  99. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.d.ts +0 -5
  100. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.d.ts.map +0 -1
  101. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.js +0 -5
  102. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.js.map +0 -1
  103. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.d.ts +0 -7
  104. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.d.ts.map +0 -1
  105. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.js +0 -14
  106. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.js.map +0 -1
  107. package/lib/plugins/service-tunnels-admin/brand-assets.d.ts +0 -7
  108. package/lib/plugins/service-tunnels-admin/brand-assets.d.ts.map +0 -1
  109. package/lib/plugins/service-tunnels-admin/brand-assets.js +0 -24
  110. package/lib/plugins/service-tunnels-admin/brand-assets.js.map +0 -1
  111. package/lib/plugins/service-tunnels-admin/index.d.ts +0 -64
  112. package/lib/plugins/service-tunnels-admin/index.d.ts.map +0 -1
  113. package/lib/plugins/service-tunnels-admin/index.js +0 -116
  114. package/lib/plugins/service-tunnels-admin/index.js.map +0 -1
  115. package/lib/plugins/service-tunnels-client/ids.d.ts +0 -6
  116. package/lib/plugins/service-tunnels-client/ids.d.ts.map +0 -1
  117. package/lib/plugins/service-tunnels-client/ids.js +0 -17
  118. package/lib/plugins/service-tunnels-client/ids.js.map +0 -1
  119. package/lib/plugins/service-tunnels-client/index.d.ts +0 -166
  120. package/lib/plugins/service-tunnels-client/index.d.ts.map +0 -1
  121. package/lib/plugins/service-tunnels-client/index.js +0 -695
  122. package/lib/plugins/service-tunnels-client/index.js.map +0 -1
  123. package/lib/plugins/service-tunnels-client/registry.d.ts +0 -36
  124. package/lib/plugins/service-tunnels-client/registry.d.ts.map +0 -1
  125. package/lib/plugins/service-tunnels-client/registry.js +0 -14
  126. package/lib/plugins/service-tunnels-client/registry.js.map +0 -1
  127. package/lib/plugins/service-tunnels-client/schemas.d.ts +0 -91
  128. package/lib/plugins/service-tunnels-client/schemas.d.ts.map +0 -1
  129. package/lib/plugins/service-tunnels-client/schemas.js +0 -73
  130. package/lib/plugins/service-tunnels-client/schemas.js.map +0 -1
  131. package/lib/plugins/service-tunnels-proxy/http.d.ts +0 -5
  132. package/lib/plugins/service-tunnels-proxy/http.d.ts.map +0 -1
  133. package/lib/plugins/service-tunnels-proxy/http.js +0 -125
  134. package/lib/plugins/service-tunnels-proxy/http.js.map +0 -1
  135. package/lib/plugins/service-tunnels-proxy/index.d.ts +0 -85
  136. package/lib/plugins/service-tunnels-proxy/index.d.ts.map +0 -1
  137. package/lib/plugins/service-tunnels-proxy/index.js +0 -288
  138. package/lib/plugins/service-tunnels-proxy/index.js.map +0 -1
  139. package/lib/plugins/service-tunnels-proxy/verification.d.ts +0 -31
  140. package/lib/plugins/service-tunnels-proxy/verification.d.ts.map +0 -1
  141. package/lib/plugins/service-tunnels-proxy/verification.js +0 -211
  142. package/lib/plugins/service-tunnels-proxy/verification.js.map +0 -1
  143. package/lib/prisma.d.ts +0 -7
  144. package/lib/prisma.d.ts.map +0 -1
  145. package/lib/prisma.js +0 -149
  146. package/lib/prisma.js.map +0 -1
  147. package/lib/schemas/service-tunnels-admin.json +0 -129
  148. package/lib/schemas/service-tunnels-admin.plugin.json +0 -140
  149. package/lib/schemas/service-tunnels-client.json +0 -320
  150. package/lib/schemas/service-tunnels-client.plugin.json +0 -97
  151. package/lib/schemas/service-tunnels-proxy.json +0 -160
  152. package/lib/schemas/service-tunnels-proxy.plugin.json +0 -123
@@ -1,7 +0,0 @@
1
- import { type ApiAuthRequirement, type CacheHints } from "@betterportal/framework";
2
- export declare const viewId = "better-tunnels.dashboard";
3
- export declare const title = "BetterTunnels Dashboard";
4
- export declare const description = "Operational summary for BetterTunnels.";
5
- export declare const auth: ApiAuthRequirement;
6
- export declare const cacheHints: CacheHints;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,eAAO,MAAM,KAAK,4BAA4B,CAAC;AAC/C,eAAO,MAAM,WAAW,2CAA2C,CAAC;AAEpE,eAAO,MAAM,IAAI,EAAE,kBAKlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC"}
@@ -1,14 +0,0 @@
1
- export const viewId = "better-tunnels.dashboard";
2
- export const title = "BetterTunnels Dashboard";
3
- export const description = "Operational summary for BetterTunnels.";
4
- export const auth = {
5
- required: true,
6
- permissions: [
7
- { serviceId: "service.betterportal.tunnels", viewId, permissions: ["read"] }
8
- ]
9
- };
10
- export const cacheHints = {
11
- ttlSeconds: 5,
12
- varyBy: ["accept", "authorization", "x-bp-tenant-id", "x-bp-app-id"]
13
- };
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/index.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,MAAM,GAAG,0BAA0B,CAAC;AACjD,MAAM,CAAC,MAAM,KAAK,GAAG,yBAAyB,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AAEpE,MAAM,CAAC,MAAM,IAAI,GAAuB;IACtC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE;QACX,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE;KAC7E;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC;CACrE,CAAC"}
@@ -1,25 +0,0 @@
1
- import * as av from "anyvali";
2
- import type { Infer } from "anyvali";
3
- export declare const ResponseSchema: av.ObjectSchema<{
4
- latestTag: av.StringSchema;
5
- logoUrl: av.StringSchema;
6
- examples: av.ArraySchema<av.StringSchema>;
7
- downloads: av.ArraySchema<av.ObjectSchema<{
8
- os: av.StringSchema;
9
- arch: av.StringSchema;
10
- artifact: av.StringSchema;
11
- }>>;
12
- }>;
13
- export type ResponseData = Infer<typeof ResponseSchema>;
14
- declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
15
- latestTag: string;
16
- logoUrl: string;
17
- examples: string[];
18
- downloads: {
19
- os: string;
20
- arch: string;
21
- artifact: string;
22
- }[];
23
- }, unknown, Record<string, unknown>>;
24
- export default _default;
25
- //# sourceMappingURL=GET.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/GET.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAUrC,eAAO,MAAM,cAAc;;;;;;;;;EAKC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;;;;;;;;;;;AAExD,wBAsBE"}
@@ -1,34 +0,0 @@
1
- import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { loadBrandAssets } from "../../brand-assets.js";
4
- const DownloadSchema = av.object({
5
- os: av.string(),
6
- arch: av.string(),
7
- artifact: av.string()
8
- }, { unknownKeys: "strip" });
9
- export const ResponseSchema = av.object({
10
- latestTag: av.string(),
11
- logoUrl: av.string(),
12
- examples: av.array(av.string()),
13
- downloads: av.array(DownloadSchema)
14
- }, { unknownKeys: "strip" });
15
- export default createHandler({ response: ResponseSchema }, async () => {
16
- const brand = await loadBrandAssets();
17
- return {
18
- latestTag: "v0.1.0",
19
- logoUrl: brand.logoUrl,
20
- examples: [
21
- "better-tunnels tunnel --port 3100",
22
- "better-tunnels tunnel --host 127.0.0.1 --port 3100",
23
- "better-tunnels tunnel --config .bettertunnel"
24
- ],
25
- downloads: [
26
- { os: "Windows", arch: "amd64", artifact: "better-tunnels-windows-amd64.exe" },
27
- { os: "Linux", arch: "amd64", artifact: "better-tunnels-linux-amd64" },
28
- { os: "Linux", arch: "arm64", artifact: "better-tunnels-linux-arm64" },
29
- { os: "macOS", arch: "amd64", artifact: "better-tunnels-darwin-amd64" },
30
- { os: "macOS", arch: "arm64", artifact: "better-tunnels-darwin-arm64" }
31
- ]
32
- };
33
- });
34
- //# sourceMappingURL=GET.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/GET.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE;CACtB,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;CACpC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AAG7B,eAAe,aAAa,CAC1B,EAAE,QAAQ,EAAE,cAAc,EAAE,EAC5B,KAAK,IAAI,EAAE;IACT,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IAEtC,OAAO;QACL,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE;YACR,mCAAmC;YACnC,oDAAoD;YACpD,8CAA8C;SAC/C;QACD,SAAS,EAAE;YACT,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,kCAAkC,EAAE;YAC9E,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAAE;YACtE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAAE;YACtE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,6BAA6B,EAAE;YACvE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,6BAA6B,EAAE;SACxE;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,5 +0,0 @@
1
- /** @jsxImportSource jsx-htmx */
2
- import type { HtmlRenderable } from "@betterportal/framework";
3
- import type { ResponseData } from "../GET.js";
4
- export declare function render(data: ResponseData): HtmlRenderable;
5
- //# sourceMappingURL=GET.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAsDzD"}
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
- export function render(data) {
3
- return (_jsxs("section", { class: "container-fluid px-0", children: [_jsxs("div", { class: "mb-4", children: [_jsx("img", { src: data.logoUrl, alt: "BetterTunnels", class: "img-fluid mb-3", style: "max-width: 280px; height: auto;" }), _jsx("h1", { class: "h3 mb-1", children: "BetterTunnels CLI" }), _jsx("p", { class: "text-body-secondary mb-0", children: "Download the CLI and start a public development tunnel." })] }), _jsxs("div", { class: "row g-4", children: [_jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "border rounded-3 p-4 bg-body h-100", children: [_jsx("h2", { class: "h5 mb-3", children: "Quick start" }), data.examples.map((example) => (_jsx("pre", { class: "small bg-body-tertiary border rounded-2 p-3 mb-2", children: _jsx("code", { children: example }) })))] }) }), _jsx("div", { class: "col-lg-7", children: _jsxs("div", { class: "border rounded-3 bg-body h-100", children: [_jsxs("div", { class: "px-3 py-2 border-bottom d-flex justify-content-between", children: [_jsx("span", { class: "fw-semibold", children: "Release assets" }), _jsx("span", { class: "text-body-secondary", children: data.latestTag })] }), _jsx("div", { class: "table-responsive", children: _jsxs("table", { class: "table table-sm align-middle mb-0", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "OS" }), _jsx("th", { children: "Arch" }), _jsx("th", { children: "Artifact" })] }) }), _jsx("tbody", { children: data.downloads.map((download) => (_jsxs("tr", { children: [_jsx("td", { children: download.os }), _jsx("td", { children: download.arch }), _jsx("td", { children: _jsx("code", { children: download.artifact }) })] }))) })] }) })] }) })] })] }));
4
- }
5
- //# sourceMappingURL=GET.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":";AAIA,MAAM,UAAU,MAAM,CAAC,IAAkB;IACvC,OAAO,CACL,mBAAS,KAAK,EAAC,sBAAsB,aACnC,eAAK,KAAK,EAAC,MAAM,aACf,cACE,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,GAAG,EAAC,eAAe,EACnB,KAAK,EAAC,gBAAgB,EACtB,KAAK,EAAC,iCAAiC,GACvC,EACF,aAAI,KAAK,EAAC,SAAS,kCAAuB,EAC1C,YAAG,KAAK,EAAC,0BAA0B,wEAA4D,IAC3F,EAEN,eAAK,KAAK,EAAC,SAAS,aAClB,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,oCAAoC,aAC7C,aAAI,KAAK,EAAC,SAAS,4BAAiB,EACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC9B,cAAK,KAAK,EAAC,kDAAkD,YAAC,yBAAO,OAAO,GAAQ,GAAM,CAC3F,CAAC,IACE,GACF,EACN,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,gCAAgC,aACzC,eAAK,KAAK,EAAC,wDAAwD,aACjE,eAAM,KAAK,EAAC,aAAa,+BAAsB,EAC/C,eAAM,KAAK,EAAC,qBAAqB,YAAE,IAAI,CAAC,SAAS,GAAQ,IACrD,EACN,cAAK,KAAK,EAAC,kBAAkB,YAC3B,iBAAO,KAAK,EAAC,kCAAkC,aAC7C,0BACE,yBACE,8BAAW,EACX,gCAAa,EACb,oCAAiB,IACd,GACC,EACR,0BACG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAChC,yBACE,uBAAK,QAAQ,CAAC,EAAE,GAAM,EACtB,uBAAK,QAAQ,CAAC,IAAI,GAAM,EACxB,uBAAI,yBAAO,QAAQ,CAAC,QAAQ,GAAQ,GAAK,IACtC,CACN,CAAC,GACI,IACF,GACJ,IACF,GACF,IACF,IACE,CACX,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type ApiAuthRequirement, type CacheHints } from "@betterportal/framework";
2
- export declare const viewId = "better-tunnels.downloads";
3
- export declare const title = "BetterTunnels CLI";
4
- export declare const description = "CLI download and setup commands.";
5
- export declare const auth: ApiAuthRequirement;
6
- export declare const cacheHints: CacheHints;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,eAAO,MAAM,KAAK,sBAAsB,CAAC;AACzC,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC"}
@@ -1,12 +0,0 @@
1
- export const viewId = "better-tunnels.downloads";
2
- export const title = "BetterTunnels CLI";
3
- export const description = "CLI download and setup commands.";
4
- export const auth = {
5
- required: false,
6
- permissions: []
7
- };
8
- export const cacheHints = {
9
- ttlSeconds: 60,
10
- varyBy: ["accept", "x-bp-tenant-id", "x-bp-app-id"]
11
- };
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/index.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,MAAM,GAAG,0BAA0B,CAAC;AACjD,MAAM,CAAC,MAAM,KAAK,GAAG,mBAAmB,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAE9D,MAAM,CAAC,MAAM,IAAI,GAAuB;IACtC,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,CAAC;CACpD,CAAC"}
@@ -1,35 +0,0 @@
1
- import * as av from "anyvali";
2
- import type { Infer } from "anyvali";
3
- export declare const ResponseSchema: av.ObjectSchema<{
4
- product: av.StringSchema;
5
- domain: av.StringSchema;
6
- connectHost: av.StringSchema;
7
- webHost: av.StringSchema;
8
- logoUrl: av.StringSchema;
9
- markUrl: av.StringSchema;
10
- faviconUrl: av.StringSchema;
11
- cliInstall: av.ArraySchema<av.StringSchema>;
12
- highlights: av.ArraySchema<av.ObjectSchema<{
13
- title: av.StringSchema;
14
- body: av.StringSchema;
15
- }>>;
16
- limits: av.ArraySchema<av.StringSchema>;
17
- }>;
18
- export type ResponseData = Infer<typeof ResponseSchema>;
19
- declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
20
- product: string;
21
- domain: string;
22
- connectHost: string;
23
- webHost: string;
24
- logoUrl: string;
25
- markUrl: string;
26
- faviconUrl: string;
27
- cliInstall: string[];
28
- highlights: {
29
- title: string;
30
- body: string;
31
- }[];
32
- limits: string[];
33
- }, unknown, Record<string, unknown>>;
34
- export default _default;
35
- //# sourceMappingURL=GET.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/GET.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIrC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAcC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;;;;;;;;;;;;;;;;AAExD,wBAoCE"}
@@ -1,52 +0,0 @@
1
- import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { loadBrandAssets } from "../../brand-assets.js";
4
- export const ResponseSchema = av.object({
5
- product: av.string(),
6
- domain: av.string(),
7
- connectHost: av.string(),
8
- webHost: av.string(),
9
- logoUrl: av.string(),
10
- markUrl: av.string(),
11
- faviconUrl: av.string(),
12
- cliInstall: av.array(av.string()),
13
- highlights: av.array(av.object({
14
- title: av.string(),
15
- body: av.string()
16
- }, { unknownKeys: "strip" })),
17
- limits: av.array(av.string())
18
- }, { unknownKeys: "strip" });
19
- export default createHandler({ response: ResponseSchema }, async () => {
20
- const brand = await loadBrandAssets();
21
- return {
22
- product: "BetterTunnels",
23
- domain: "tunnels.betterportal.dev",
24
- connectHost: "connect.tunnels.betterportal.dev",
25
- webHost: "betterportal.tunnels.betterportal.dev",
26
- ...brand,
27
- cliInstall: [
28
- "better-tunnels tunnel --port 3100",
29
- "better-tunnels tunnel --config .bettertunnel"
30
- ],
31
- highlights: [
32
- {
33
- title: "HTTP and HTTPS tunnels",
34
- body: "Expose local development servers through generated, short-lived public URLs."
35
- },
36
- {
37
- title: "Verification-first access",
38
- body: "Visitors pass through a clear development-tunnel warning before reaching a tunnel."
39
- },
40
- {
41
- title: "Built for operations",
42
- body: "Structured request timings, trace-friendly sessions, and BetterPortal management routes."
43
- }
44
- ],
45
- limits: [
46
- "Anonymous sessions are temporary.",
47
- "Tunnel subdomains are generated by the platform.",
48
- "Registered accounts can unlock higher limits and verification controls later."
49
- ]
50
- };
51
- });
52
- //# sourceMappingURL=GET.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/GET.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IACjC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE;KAClB,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;CAC9B,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AAG7B,eAAe,aAAa,CAC1B,EAAE,QAAQ,EAAE,cAAc,EAAE,EAC5B,KAAK,IAAI,EAAE;IACT,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IAEtC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,0BAA0B;QAClC,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,uCAAuC;QAChD,GAAG,KAAK;QACR,UAAU,EAAE;YACV,mCAAmC;YACnC,8CAA8C;SAC/C;QACD,UAAU,EAAE;YACV;gBACE,KAAK,EAAE,wBAAwB;gBAC/B,IAAI,EAAE,8EAA8E;aACrF;YACD;gBACE,KAAK,EAAE,2BAA2B;gBAClC,IAAI,EAAE,oFAAoF;aAC3F;YACD;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,0FAA0F;aACjG;SACF;QACD,MAAM,EAAE;YACN,mCAAmC;YACnC,kDAAkD;YAClD,+EAA+E;SAChF;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,5 +0,0 @@
1
- /** @jsxImportSource jsx-htmx */
2
- import type { HtmlRenderable } from "@betterportal/framework";
3
- import type { ResponseData } from "../GET.js";
4
- export declare function render(data: ResponseData): HtmlRenderable;
5
- //# sourceMappingURL=GET.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CA2FzD"}
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
- export function render(data) {
3
- return (_jsxs("main", { class: "container-fluid px-0", children: [_jsx("section", { class: "py-5", children: _jsxs("div", { class: "row align-items-center g-5", children: [_jsxs("div", { class: "col-lg-7", children: [_jsx("img", { src: data.logoUrl, alt: "BetterTunnels", class: "img-fluid mb-4", style: "max-width: 360px; height: auto;" }), _jsx("div", { class: "mb-3 text-uppercase fw-semibold text-danger small", children: data.domain }), _jsx("h1", { class: "display-4 fw-semibold mb-3", children: "Public dev tunnels with a verification gate" }), _jsx("p", { class: "lead text-body-secondary mb-4", children: "Public development tunnels with explicit visitor verification, operator visibility, and a CLI workflow designed for local projects." }), _jsxs("div", { class: "d-flex flex-wrap gap-2", children: [_jsx("a", { class: "btn btn-danger btn-lg", href: "/downloads", children: "Get the CLI" }), _jsx("a", { class: "btn btn-outline-secondary btn-lg", href: "/dashboard", children: "Open dashboard" })] })] }), _jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "border rounded-3 bg-body-tertiary p-3 shadow-sm", children: [_jsxs("div", { class: "d-flex align-items-center justify-content-between border-bottom pb-2 mb-3", children: [_jsxs("span", { class: "d-flex align-items-center gap-2 fw-semibold", children: [_jsx("img", { src: data.faviconUrl, alt: "", width: "24", height: "24" }), "local project"] }), _jsx("span", { class: "badge text-bg-danger", children: "public" })] }), _jsx("div", { class: "text-center py-3", children: _jsx("img", { src: data.markUrl, alt: "", class: "img-fluid rounded-3", style: "max-width: 180px;" }) }), _jsx("pre", { class: "mb-3 small", children: _jsx("code", { children: data.cliInstall[0] }) }), _jsxs("div", { class: "bg-body border rounded-2 p-3 small", children: [_jsx("div", { class: "text-body-secondary mb-1", children: "Tunnel URL" }), _jsxs("code", { children: ["https://a1b2c3-port3100-203-0-113-10.", data.domain] })] }), _jsxs("div", { class: "row g-2 mt-2 small", children: [_jsx("div", { class: "col-4", children: _jsx("div", { class: "border rounded-2 p-2 bg-body", children: "verify" }) }), _jsx("div", { class: "col-4", children: _jsx("div", { class: "border rounded-2 p-2 bg-body", children: "proxy" }) }), _jsx("div", { class: "col-4", children: _jsx("div", { class: "border rounded-2 p-2 bg-body", children: "trace" }) })] })] }) })] }) }), _jsx("section", { class: "py-4 border-top", children: _jsx("div", { class: "row g-3", children: data.highlights.map((item) => (_jsx("div", { class: "col-md-4", children: _jsxs("div", { class: "h-100 border rounded-3 p-4 bg-body", children: [_jsx("h2", { class: "h5 mb-2", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.body })] }) }))) }) }), _jsx("section", { class: "py-4 border-top", children: _jsxs("div", { class: "row g-4 align-items-start", children: [_jsxs("div", { class: "col-lg-5", children: [_jsx("h2", { class: "h4 mb-2", children: "Managed by BetterPortal" }), _jsx("p", { class: "text-body-secondary mb-0", children: "The public site, dashboard, and future account controls run as BetterPortal routes. Tunnel traffic can stay on separate infrastructure while this service manages the UI." })] }), _jsx("div", { class: "col-lg-7", children: _jsx("ul", { class: "list-group list-group-flush border rounded-3", children: data.limits.map((limit) => (_jsxs("li", { class: "list-group-item d-flex gap-2 align-items-start", children: [_jsx("span", { class: "text-danger fw-bold", children: "!" }), _jsx("span", { children: limit })] }))) }) })] }) })] }));
4
- }
5
- //# sourceMappingURL=GET.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":";AAIA,MAAM,UAAU,MAAM,CAAC,IAAkB;IACvC,OAAO,CACL,gBAAM,KAAK,EAAC,sBAAsB,aAChC,kBAAS,KAAK,EAAC,MAAM,YACnB,eAAK,KAAK,EAAC,4BAA4B,aACrC,eAAK,KAAK,EAAC,UAAU,aACnB,cACE,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,GAAG,EAAC,eAAe,EACnB,KAAK,EAAC,gBAAgB,EACtB,KAAK,EAAC,iCAAiC,GACvC,EACF,cAAK,KAAK,EAAC,mDAAmD,YAAE,IAAI,CAAC,MAAM,GAAO,EAClF,aAAI,KAAK,EAAC,4BAA4B,4DAAiD,EACvF,YAAG,KAAK,EAAC,+BAA+B,oJAGpC,EACJ,eAAK,KAAK,EAAC,wBAAwB,aACjC,YAAG,KAAK,EAAC,uBAAuB,EAAC,IAAI,EAAC,YAAY,4BAAgB,EAClE,YAAG,KAAK,EAAC,kCAAkC,EAAC,IAAI,EAAC,YAAY,+BAAmB,IAC5E,IACF,EACN,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,iDAAiD,aAC1D,eAAK,KAAK,EAAC,2EAA2E,aACpF,gBAAM,KAAK,EAAC,6CAA6C,aACvD,cAAK,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,qBAEtD,EACP,eAAM,KAAK,EAAC,sBAAsB,uBAAc,IAC5C,EACN,cAAK,KAAK,EAAC,kBAAkB,YAC3B,cACE,GAAG,EAAE,IAAI,CAAC,OAAO,EACjB,GAAG,EAAC,EAAE,EACN,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAC,mBAAmB,GACzB,GACE,EACN,cAAK,KAAK,EAAC,YAAY,YAAC,yBAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAQ,GAAM,EAC/D,eAAK,KAAK,EAAC,oCAAoC,aAC7C,cAAK,KAAK,EAAC,0BAA0B,2BAAiB,EACtD,oEAA4C,IAAI,CAAC,MAAM,IAAQ,IAC3D,EACN,eAAK,KAAK,EAAC,oBAAoB,aAC7B,cAAK,KAAK,EAAC,OAAO,YAAC,cAAK,KAAK,EAAC,8BAA8B,uBAAa,GAAM,EAC/E,cAAK,KAAK,EAAC,OAAO,YAAC,cAAK,KAAK,EAAC,8BAA8B,sBAAY,GAAM,EAC9E,cAAK,KAAK,EAAC,OAAO,YAAC,cAAK,KAAK,EAAC,8BAA8B,sBAAY,GAAM,IAC1E,IACF,GACF,IACF,GACE,EAEV,kBAAS,KAAK,EAAC,iBAAiB,YAC9B,cAAK,KAAK,EAAC,SAAS,YACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC7B,cAAK,KAAK,EAAC,UAAU,YACnB,eAAK,KAAK,EAAC,oCAAoC,aAC7C,aAAI,KAAK,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAM,EACrC,YAAG,KAAK,EAAC,0BAA0B,YAAE,IAAI,CAAC,IAAI,GAAK,IAC/C,GACF,CACP,CAAC,GACE,GACE,EAEV,kBAAS,KAAK,EAAC,iBAAiB,YAC9B,eAAK,KAAK,EAAC,2BAA2B,aACpC,eAAK,KAAK,EAAC,UAAU,aACnB,aAAI,KAAK,EAAC,SAAS,wCAA6B,EAChD,YAAG,KAAK,EAAC,0BAA0B,0LAG/B,IACA,EACN,cAAK,KAAK,EAAC,UAAU,YACnB,aAAI,KAAK,EAAC,8CAA8C,YACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC1B,cAAI,KAAK,EAAC,gDAAgD,aACxD,eAAM,KAAK,EAAC,qBAAqB,kBAAS,EAC1C,yBAAO,KAAK,GAAQ,IACjB,CACN,CAAC,GACC,GACD,IACF,GACE,IACL,CACR,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type ApiAuthRequirement, type CacheHints } from "@betterportal/framework";
2
- export declare const viewId = "better-tunnels.landing";
3
- export declare const title = "BetterTunnels";
4
- export declare const description = "Public landing page for BetterTunnels.";
5
- export declare const auth: ApiAuthRequirement;
6
- export declare const cacheHints: CacheHints;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,eAAO,MAAM,KAAK,kBAAkB,CAAC;AACrC,eAAO,MAAM,WAAW,2CAA2C,CAAC;AAEpE,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC"}
@@ -1,12 +0,0 @@
1
- export const viewId = "better-tunnels.landing";
2
- export const title = "BetterTunnels";
3
- export const description = "Public landing page for BetterTunnels.";
4
- export const auth = {
5
- required: false,
6
- permissions: []
7
- };
8
- export const cacheHints = {
9
- ttlSeconds: 60,
10
- varyBy: ["accept", "x-bp-tenant-id", "x-bp-app-id"]
11
- };
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/index.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,MAAM,GAAG,wBAAwB,CAAC;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AAEpE,MAAM,CAAC,MAAM,IAAI,GAAuB;IACtC,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,CAAC;CACpD,CAAC"}
@@ -1,39 +0,0 @@
1
- import * as av from "anyvali";
2
- import type { Infer } from "anyvali";
3
- export declare const ResponseSchema: av.ObjectSchema<{
4
- active: av.NumberSchema;
5
- total: av.NumberSchema;
6
- tunnels: av.ArraySchema<av.ObjectSchema<{
7
- id: av.StringSchema;
8
- subdomain: av.StringSchema;
9
- target: av.StringSchema;
10
- authenticated: av.BoolSchema;
11
- status: av.StringSchema;
12
- ownerServerId: av.OptionalSchema<av.StringSchema>;
13
- createdAt: av.StringSchema;
14
- expiresAt: av.StringSchema;
15
- requests: av.NumberSchema;
16
- bytesIn: av.NumberSchema;
17
- bytesOut: av.NumberSchema;
18
- }>>;
19
- }>;
20
- export type ResponseData = Infer<typeof ResponseSchema>;
21
- declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
22
- active: number;
23
- total: number;
24
- tunnels: {
25
- id: string;
26
- subdomain: string;
27
- target: string;
28
- authenticated: boolean;
29
- status: string;
30
- createdAt: string;
31
- expiresAt: string;
32
- requests: number;
33
- bytesIn: number;
34
- bytesOut: number;
35
- ownerServerId?: string | undefined;
36
- }[];
37
- }, unknown, Record<string, unknown>>;
38
- export default _default;
39
- //# sourceMappingURL=GET.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/GET.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAkBrC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAIC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;;;;;;;;;;;;;;;;;;AAExD,wBA2BE"}
@@ -1,46 +0,0 @@
1
- import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { prisma } from "../../../../prisma.js";
4
- const TunnelRowSchema = av.object({
5
- id: av.string(),
6
- subdomain: av.string(),
7
- target: av.string(),
8
- authenticated: av.bool(),
9
- status: av.string(),
10
- ownerServerId: av.optional(av.string()),
11
- createdAt: av.string(),
12
- expiresAt: av.string(),
13
- requests: av.number(),
14
- bytesIn: av.number(),
15
- bytesOut: av.number()
16
- }, { unknownKeys: "strip" });
17
- export const ResponseSchema = av.object({
18
- active: av.number(),
19
- total: av.number(),
20
- tunnels: av.array(TunnelRowSchema)
21
- }, { unknownKeys: "strip" });
22
- export default createHandler({ response: ResponseSchema }, async () => {
23
- const rows = await prisma.tunnel.findMany({
24
- orderBy: { createdAt: "desc" },
25
- take: 50,
26
- include: { usage: true }
27
- });
28
- return {
29
- active: rows.filter((row) => row.status === "active").length,
30
- total: rows.length,
31
- tunnels: rows.map((row) => ({
32
- id: row.id,
33
- subdomain: row.subdomain,
34
- target: `${row.targetHost}:${row.targetPort}`,
35
- authenticated: row.authenticated,
36
- status: row.status,
37
- ownerServerId: row.ownerServerId ?? undefined,
38
- createdAt: row.createdAt.toISOString(),
39
- expiresAt: row.expiresAt.toISOString(),
40
- requests: row.usage?.requests ?? 0,
41
- bytesIn: Number(row.usage?.bytesIn ?? 0n),
42
- bytesOut: Number(row.usage?.bytesOut ?? 0n)
43
- }))
44
- };
45
- });
46
- //# sourceMappingURL=GET.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/GET.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;IACnB,aAAa,EAAE,EAAE,CAAC,IAAI,EAAE;IACxB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;IACnB,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IACvC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE;IACtB,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE;CACtB,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;CACnC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AAG7B,eAAe,aAAa,CAC1B,EAAE,QAAQ,EAAE,cAAc,EAAE,EAC5B,KAAK,IAAI,EAAE;IACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QAC5D,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE;YAC7C,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;YAC7C,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;YACtC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;YACtC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC;YAClC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;YACzC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;SAC5C,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,5 +0,0 @@
1
- /** @jsxImportSource jsx-htmx */
2
- import type { HtmlRenderable } from "@betterportal/framework";
3
- import type { ResponseData } from "../GET.js";
4
- export declare function render(data: ResponseData): HtmlRenderable;
5
- //# sourceMappingURL=GET.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAmDzD"}
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
- export function render(data) {
3
- return (_jsxs("section", { class: "container-fluid px-0", children: [_jsxs("div", { class: "d-flex justify-content-between align-items-start mb-4", children: [_jsxs("div", { children: [_jsx("h1", { class: "h3 mb-1", children: "BetterTunnels" }), _jsx("p", { class: "text-body-secondary mb-0", children: "Live tunnel sessions and recent usage." })] }), _jsxs("div", { class: "text-end", children: [_jsx("div", { class: "h4 mb-0", children: String(data.active) }), _jsxs("div", { class: "small text-body-secondary", children: ["active / ", String(data.total), " shown"] })] })] }), _jsx("div", { class: "card border-0 shadow-sm", children: _jsx("div", { class: "table-responsive", children: _jsxs("table", { class: "table table-sm table-hover align-middle mb-0", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "Subdomain" }), _jsx("th", { children: "Target" }), _jsx("th", { children: "Status" }), _jsx("th", { children: "Mode" }), _jsx("th", { class: "text-end", children: "Requests" }), _jsx("th", { children: "Expires" })] }) }), _jsx("tbody", { children: data.tunnels.length === 0 ? (_jsx("tr", { children: _jsx("td", { colspan: "6", class: "text-center text-body-secondary py-4", children: "No tunnels yet." }) })) : data.tunnels.map((tunnel) => (_jsxs("tr", { children: [_jsxs("td", { children: [_jsx("code", { children: tunnel.subdomain }), _jsx("div", { class: "small text-body-secondary", children: tunnel.ownerServerId ?? "no owner" })] }), _jsx("td", { children: tunnel.target }), _jsx("td", { children: _jsx("span", { class: `badge ${tunnel.status === "active" ? "text-bg-success" : "text-bg-secondary"}`, children: tunnel.status }) }), _jsx("td", { children: tunnel.authenticated ? "authenticated" : "anonymous" }), _jsx("td", { class: "text-end", children: String(tunnel.requests) }), _jsx("td", { class: "small text-body-secondary", children: new Date(tunnel.expiresAt).toLocaleString() })] }))) })] }) }) })] }));
4
- }
5
- //# sourceMappingURL=GET.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":";AAIA,MAAM,UAAU,MAAM,CAAC,IAAkB;IACvC,OAAO,CACL,mBAAS,KAAK,EAAC,sBAAsB,aACnC,eAAK,KAAK,EAAC,uDAAuD,aAChE,0BACE,aAAI,KAAK,EAAC,SAAS,8BAAmB,EACtC,YAAG,KAAK,EAAC,0BAA0B,uDAA2C,IAC1E,EACN,eAAK,KAAK,EAAC,UAAU,aACnB,cAAK,KAAK,EAAC,SAAS,YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAO,EAChD,eAAK,KAAK,EAAC,2BAA2B,0BAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAa,IAC5E,IACF,EAEN,cAAK,KAAK,EAAC,yBAAyB,YAClC,cAAK,KAAK,EAAC,kBAAkB,YAC3B,iBAAO,KAAK,EAAC,8CAA8C,aACzD,0BACE,yBACE,qCAAkB,EAClB,kCAAe,EACf,kCAAe,EACf,gCAAa,EACb,aAAI,KAAK,EAAC,UAAU,yBAAc,EAClC,mCAAgB,IACb,GACC,EACR,0BACG,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3B,uBACE,aAAI,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,sCAAsC,gCAAqB,GAC9E,CACN,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,yBACE,yBACE,yBAAO,MAAM,CAAC,SAAS,GAAQ,EAC/B,cAAK,KAAK,EAAC,2BAA2B,YAAE,MAAM,CAAC,aAAa,IAAI,UAAU,GAAO,IAC9E,EACL,uBAAK,MAAM,CAAC,MAAM,GAAM,EACxB,uBAAI,eAAM,KAAK,EAAE,SAAS,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,EAAE,YAAG,MAAM,CAAC,MAAM,GAAQ,GAAK,EAC7H,uBAAK,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,GAAM,EAC/D,aAAI,KAAK,EAAC,UAAU,YAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAM,EACnD,aAAI,KAAK,EAAC,2BAA2B,YAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,GAAM,IACrF,CACN,CAAC,GACI,IACF,GACJ,GACF,IACE,CACX,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type ApiAuthRequirement, type CacheHints } from "@betterportal/framework";
2
- export declare const viewId = "better-tunnels.tunnels";
3
- export declare const title = "BetterTunnels";
4
- export declare const description = "Tunnel sessions, status, and recent activity.";
5
- export declare const auth: ApiAuthRequirement;
6
- export declare const cacheHints: CacheHints;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,eAAO,MAAM,KAAK,kBAAkB,CAAC;AACrC,eAAO,MAAM,WAAW,kDAAkD,CAAC;AAE3E,eAAO,MAAM,IAAI,EAAE,kBAKlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC"}
@@ -1,14 +0,0 @@
1
- export const viewId = "better-tunnels.tunnels";
2
- export const title = "BetterTunnels";
3
- export const description = "Tunnel sessions, status, and recent activity.";
4
- export const auth = {
5
- required: true,
6
- permissions: [
7
- { serviceId: "service.betterportal.tunnels", viewId, permissions: ["read"] }
8
- ]
9
- };
10
- export const cacheHints = {
11
- ttlSeconds: 5,
12
- varyBy: ["accept", "authorization", "x-bp-tenant-id", "x-bp-app-id"]
13
- };
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/index.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,MAAM,GAAG,wBAAwB,CAAC;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,+CAA+C,CAAC;AAE3E,MAAM,CAAC,MAAM,IAAI,GAAuB;IACtC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE;QACX,EAAE,SAAS,EAAE,8BAA8B,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE;KAC7E;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC;CACrE,CAAC"}
@@ -1,7 +0,0 @@
1
- export type BrandAssets = {
2
- logoUrl: string;
3
- markUrl: string;
4
- faviconUrl: string;
5
- };
6
- export declare function loadBrandAssets(): Promise<BrandAssets>;
7
- //# sourceMappingURL=brand-assets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brand-assets.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-tunnels-admin/brand-assets.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAMF,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAgB5D"}
@@ -1,24 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { dirname, join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- let cached;
5
- const assetRoot = join(dirname(fileURLToPath(import.meta.url)), "assets/brand");
6
- export async function loadBrandAssets() {
7
- if (cached)
8
- return cached;
9
- const [logo, mark, favicon] = await Promise.all([
10
- readFile(join(assetRoot, "bettertunnels-horizontal-light.svg"), "utf8"),
11
- readFile(join(assetRoot, "bettertunnels-square-dark-1024x1024.png")),
12
- readFile(join(assetRoot, "favicon.svg"), "utf8")
13
- ]);
14
- cached = {
15
- logoUrl: svgDataUrl(logo),
16
- markUrl: `data:image/png;base64,${mark.toString("base64")}`,
17
- faviconUrl: svgDataUrl(favicon)
18
- };
19
- return cached;
20
- }
21
- function svgDataUrl(value) {
22
- return `data:image/svg+xml;base64,${Buffer.from(value).toString("base64")}`;
23
- }
24
- //# sourceMappingURL=brand-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brand-assets.js","sourceRoot":"","sources":["../../../src/plugins/service-tunnels-admin/brand-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,IAAI,MAA+B,CAAC;AAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,EAAE,MAAM,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC;KACjD,CAAC,CAAC;IAEH,MAAM,GAAG;QACP,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,yBAAyB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC3D,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;KAChC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,6BAA6B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9E,CAAC"}
@@ -1,64 +0,0 @@
1
- import { type BSBServiceConstructor, type Observable } from "@bsb/base";
2
- import * as av from "anyvali";
3
- import { BPService, type BPServiceDefinition } from "@betterportal/plugin-bsb";
4
- declare const Config: import("@bsb/base").BSBPluginConfigClass<av.ObjectSchema<{
5
- host: av.StringSchema;
6
- port: av.IntSchema;
7
- database: av.ObjectSchema<{
8
- connectionString: av.StringSchema;
9
- }>;
10
- betterportal: av.OptionalSchema<av.ObjectSchema<{
11
- bpConfigPath: av.OptionalSchema<av.StringSchema>;
12
- configApiToken: av.OptionalSchema<av.StringSchema>;
13
- configEncryptionKey: av.OptionalSchema<av.StringSchema>;
14
- controlPlaneUrl: av.OptionalSchema<av.StringSchema>;
15
- serviceApiKey: av.OptionalSchema<av.StringSchema>;
16
- bootstrapStatePath: av.StringSchema;
17
- scopedConfigCachePath: av.StringSchema;
18
- trustedProxyHeaders: av.BoolSchema;
19
- cfProxy: av.BoolSchema;
20
- trustedProxyIps: av.ArraySchema<av.StringSchema>;
21
- }>>;
22
- }>>;
23
- declare const EventSchemas: {
24
- readonly emitEvents: {};
25
- readonly onEvents: {};
26
- readonly emitReturnableEvents: {};
27
- readonly onReturnableEvents: {};
28
- readonly emitBroadcast: {};
29
- readonly onBroadcast: {};
30
- };
31
- export declare class Plugin extends BPService<InstanceType<typeof Config>, typeof EventSchemas> {
32
- static Config: import("@bsb/base").BSBPluginConfigClass<av.ObjectSchema<{
33
- host: av.StringSchema;
34
- port: av.IntSchema;
35
- database: av.ObjectSchema<{
36
- connectionString: av.StringSchema;
37
- }>;
38
- betterportal: av.OptionalSchema<av.ObjectSchema<{
39
- bpConfigPath: av.OptionalSchema<av.StringSchema>;
40
- configApiToken: av.OptionalSchema<av.StringSchema>;
41
- configEncryptionKey: av.OptionalSchema<av.StringSchema>;
42
- controlPlaneUrl: av.OptionalSchema<av.StringSchema>;
43
- serviceApiKey: av.OptionalSchema<av.StringSchema>;
44
- bootstrapStatePath: av.StringSchema;
45
- scopedConfigCachePath: av.StringSchema;
46
- trustedProxyHeaders: av.BoolSchema;
47
- cfProxy: av.BoolSchema;
48
- trustedProxyIps: av.ArraySchema<av.StringSchema>;
49
- }>>;
50
- }>>;
51
- static EventSchemas: {
52
- readonly emitEvents: {};
53
- readonly onEvents: {};
54
- readonly emitReturnableEvents: {};
55
- readonly onReturnableEvents: {};
56
- readonly emitBroadcast: {};
57
- readonly onBroadcast: {};
58
- };
59
- constructor(cfg: BSBServiceConstructor<InstanceType<typeof Config>, typeof EventSchemas>);
60
- init(obs: Observable): Promise<void>;
61
- protected definition(): BPServiceDefinition;
62
- }
63
- export { Config, EventSchemas };
64
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-tunnels-admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EAGhB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAA4B,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAazG,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;GAQX,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;CAOhB,CAAC;AA6DH,qBAAa,MAAO,SAAQ,SAAS,CAAC,YAAY,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,YAAY,CAAC;IACrF,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;;;QAAU;IACvB,MAAM,CAAC,YAAY;;;;;;;MAAgB;gBAEvB,GAAG,EAAE,qBAAqB,CAAC,YAAY,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,YAAY,CAAC;IAIlF,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,SAAS,CAAC,UAAU,IAAI,mBAAmB;CAkB5C;AAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC"}