@betterportal/tunnels 1.0.7 → 1.0.9

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 (54) hide show
  1. package/lib/.bsb/clients/service-tunnels-client.d.ts +1 -1
  2. package/lib/.bsb/clients/service-tunnels-client.js +1 -1
  3. package/lib/.bsb/clients/service-tunnels-proxy.d.ts +1 -1
  4. package/lib/.bsb/clients/service-tunnels-proxy.js +1 -1
  5. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.d.ts.map +1 -1
  6. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.js +37 -51
  7. package/lib/plugins/service-tunnels-admin/.bp-generated/registry.js.map +1 -1
  8. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.d.ts +10 -0
  9. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.d.ts.map +1 -0
  10. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.js +41 -0
  11. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.js.map +1 -0
  12. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.d.ts +0 -7
  13. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.d.ts.map +1 -1
  14. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.js +0 -38
  15. package/lib/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.js.map +1 -1
  16. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.d.ts +18 -0
  17. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.d.ts.map +1 -0
  18. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.js +30 -0
  19. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/GET.js.map +1 -0
  20. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.d.ts +0 -15
  21. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.d.ts.map +1 -1
  22. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.js +0 -27
  23. package/lib/plugins/service-tunnels-admin/bp-routes/dashboard/index.js.map +1 -1
  24. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.d.ts +13 -0
  25. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.d.ts.map +1 -0
  26. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.js +24 -0
  27. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/GET.js.map +1 -0
  28. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.d.ts +0 -10
  29. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.d.ts.map +1 -1
  30. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.js +0 -21
  31. package/lib/plugins/service-tunnels-admin/bp-routes/downloads/index.js.map +1 -1
  32. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.d.ts +18 -0
  33. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.d.ts.map +1 -0
  34. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.js +38 -0
  35. package/lib/plugins/service-tunnels-admin/bp-routes/landing/GET.js.map +1 -0
  36. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.d.ts +0 -15
  37. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.d.ts.map +1 -1
  38. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.js +0 -35
  39. package/lib/plugins/service-tunnels-admin/bp-routes/landing/index.js.map +1 -1
  40. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.d.ts +20 -0
  41. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.d.ts.map +1 -0
  42. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.js +29 -0
  43. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/GET.js.map +1 -0
  44. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.d.ts +0 -17
  45. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.d.ts.map +1 -1
  46. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.js +0 -26
  47. package/lib/plugins/service-tunnels-admin/bp-routes/tunnels/index.js.map +1 -1
  48. package/lib/schemas/service-tunnels-admin.json +1 -1
  49. package/lib/schemas/service-tunnels-admin.plugin.json +1 -1
  50. package/lib/schemas/service-tunnels-client.json +2 -2
  51. package/lib/schemas/service-tunnels-client.plugin.json +2 -2
  52. package/lib/schemas/service-tunnels-proxy.json +2 -2
  53. package/lib/schemas/service-tunnels-proxy.plugin.json +2 -2
  54. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated BSB virtual client for service-tunnels-client
3
3
  * DO NOT EDIT - Regenerated on every build
4
- * @version 1.0.7
4
+ * @version 1.0.9
5
5
  */
6
6
  import { ServiceClient, BSBService } from "@bsb/base";
7
7
  import type { Observable, BSBServiceClientDefinition, EventInputType, EventOutputType } from "@bsb/base";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated BSB virtual client for service-tunnels-client
3
3
  * DO NOT EDIT - Regenerated on every build
4
- * @version 1.0.7
4
+ * @version 1.0.9
5
5
  */
6
6
  import { ServiceClient, bsb, optional, createReturnableEvent, createFireAndForgetEvent, createEventSchemas } from "@bsb/base";
7
7
  const _wsToOriginSchema = bsb.object({
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated BSB virtual client for service-tunnels-proxy
3
3
  * DO NOT EDIT - Regenerated on every build
4
- * @version 1.0.7
4
+ * @version 1.0.9
5
5
  */
6
6
  import { ServiceClient, BSBService } from "@bsb/base";
7
7
  import type { Observable, BSBServiceClientDefinition, EventInputType } from "@bsb/base";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated BSB virtual client for service-tunnels-proxy
3
3
  * DO NOT EDIT - Regenerated on every build
4
- * @version 1.0.7
4
+ * @version 1.0.9
5
5
  */
6
6
  import { ServiceClient, bsb, optional, createFireAndForgetEvent, createEventSchemas } from "@bsb/base";
7
7
  const _wsFromOriginSchema = bsb.object({
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/plugins/service-tunnels-admin/.bp-generated/registry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,QAAQ,EAAE,oBAkHtB,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/plugins/service-tunnels-admin/.bp-generated/registry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,QAAQ,EAAE,oBAoGtB,CAAC"}
@@ -1,14 +1,14 @@
1
1
  // AUTO-GENERATED by BetterPortal codegen - DO NOT EDIT
2
2
  import * as betterTunnelsCliAuthVerifyRoute from "../bp-routes/cli-auth/verify/index.js";
3
- import * as betterTunnelsCliAuthVerifyBootstrap1Page from "../bp-routes/cli-auth/verify/_theme.bootstrap1/index.js";
3
+ import * as betterTunnelsCliAuthVerifyGETRoute from "../bp-routes/cli-auth/verify/GET.js";
4
4
  import * as betterTunnelsDashboardRoute from "../bp-routes/dashboard/index.js";
5
- import * as betterTunnelsDashboardBootstrap1Page from "../bp-routes/dashboard/_theme.bootstrap1/index.js";
5
+ import * as betterTunnelsDashboardGETRoute from "../bp-routes/dashboard/GET.js";
6
6
  import * as betterTunnelsDownloadsRoute from "../bp-routes/downloads/index.js";
7
- import * as betterTunnelsDownloadsBootstrap1Page from "../bp-routes/downloads/_theme.bootstrap1/index.js";
7
+ import * as betterTunnelsDownloadsGETRoute from "../bp-routes/downloads/GET.js";
8
8
  import * as betterTunnelsLandingRoute from "../bp-routes/landing/index.js";
9
- import * as betterTunnelsLandingBootstrap1Page from "../bp-routes/landing/_theme.bootstrap1/index.js";
9
+ import * as betterTunnelsLandingGETRoute from "../bp-routes/landing/GET.js";
10
10
  import * as betterTunnelsTunnelsRoute from "../bp-routes/tunnels/index.js";
11
- import * as betterTunnelsTunnelsBootstrap1Page from "../bp-routes/tunnels/_theme.bootstrap1/index.js";
11
+ import * as betterTunnelsTunnelsGETRoute from "../bp-routes/tunnels/GET.js";
12
12
  export const registry = {
13
13
  routes: [
14
14
  {
@@ -17,22 +17,20 @@ export const registry = {
17
17
  methods: ["GET"],
18
18
  paramNames: [],
19
19
  schemas: {
20
- response: betterTunnelsCliAuthVerifyRoute.ResponseSchema,
21
- query: betterTunnelsCliAuthVerifyRoute.QuerySchema
20
+ response: betterTunnelsCliAuthVerifyGETRoute.ResponseSchema,
21
+ query: betterTunnelsCliAuthVerifyGETRoute.QuerySchema
22
22
  },
23
- handlers: { GET: betterTunnelsCliAuthVerifyRoute.handleGet },
23
+ methodRoutes: { GET: { method: "GET", schemas: {
24
+ response: betterTunnelsCliAuthVerifyGETRoute.ResponseSchema,
25
+ query: betterTunnelsCliAuthVerifyGETRoute.QuerySchema
26
+ }, handler: betterTunnelsCliAuthVerifyGETRoute.default } },
27
+ handlers: { GET: betterTunnelsCliAuthVerifyGETRoute.default },
24
28
  title: betterTunnelsCliAuthVerifyRoute.title,
25
29
  description: betterTunnelsCliAuthVerifyRoute.description,
26
30
  auth: betterTunnelsCliAuthVerifyRoute.auth,
27
31
  cacheHints: betterTunnelsCliAuthVerifyRoute.cacheHints,
28
32
  demoScenarios: [],
29
- themeRenderers: {
30
- "bootstrap1": {
31
- pages: [{ rendererId: "default", type: "page", render: betterTunnelsCliAuthVerifyBootstrap1Page.render }],
32
- components: [],
33
- fragments: []
34
- }
35
- }
33
+ themeRenderers: {}
36
34
  },
37
35
  {
38
36
  viewId: "better-tunnels.dashboard",
@@ -40,21 +38,18 @@ export const registry = {
40
38
  methods: ["GET"],
41
39
  paramNames: [],
42
40
  schemas: {
43
- response: betterTunnelsDashboardRoute.ResponseSchema
41
+ response: betterTunnelsDashboardGETRoute.ResponseSchema
44
42
  },
45
- handlers: { GET: betterTunnelsDashboardRoute.handleGet },
43
+ methodRoutes: { GET: { method: "GET", schemas: {
44
+ response: betterTunnelsDashboardGETRoute.ResponseSchema
45
+ }, handler: betterTunnelsDashboardGETRoute.default } },
46
+ handlers: { GET: betterTunnelsDashboardGETRoute.default },
46
47
  title: betterTunnelsDashboardRoute.title,
47
48
  description: betterTunnelsDashboardRoute.description,
48
49
  auth: betterTunnelsDashboardRoute.auth,
49
50
  cacheHints: betterTunnelsDashboardRoute.cacheHints,
50
51
  demoScenarios: [],
51
- themeRenderers: {
52
- "bootstrap1": {
53
- pages: [{ rendererId: "default", type: "page", render: betterTunnelsDashboardBootstrap1Page.render }],
54
- components: [],
55
- fragments: []
56
- }
57
- }
52
+ themeRenderers: {}
58
53
  },
59
54
  {
60
55
  viewId: "better-tunnels.downloads",
@@ -62,21 +57,18 @@ export const registry = {
62
57
  methods: ["GET"],
63
58
  paramNames: [],
64
59
  schemas: {
65
- response: betterTunnelsDownloadsRoute.ResponseSchema
60
+ response: betterTunnelsDownloadsGETRoute.ResponseSchema
66
61
  },
67
- handlers: { GET: betterTunnelsDownloadsRoute.handleGet },
62
+ methodRoutes: { GET: { method: "GET", schemas: {
63
+ response: betterTunnelsDownloadsGETRoute.ResponseSchema
64
+ }, handler: betterTunnelsDownloadsGETRoute.default } },
65
+ handlers: { GET: betterTunnelsDownloadsGETRoute.default },
68
66
  title: betterTunnelsDownloadsRoute.title,
69
67
  description: betterTunnelsDownloadsRoute.description,
70
68
  auth: betterTunnelsDownloadsRoute.auth,
71
69
  cacheHints: betterTunnelsDownloadsRoute.cacheHints,
72
70
  demoScenarios: [],
73
- themeRenderers: {
74
- "bootstrap1": {
75
- pages: [{ rendererId: "default", type: "page", render: betterTunnelsDownloadsBootstrap1Page.render }],
76
- components: [],
77
- fragments: []
78
- }
79
- }
71
+ themeRenderers: {}
80
72
  },
81
73
  {
82
74
  viewId: "better-tunnels.landing",
@@ -84,21 +76,18 @@ export const registry = {
84
76
  methods: ["GET"],
85
77
  paramNames: [],
86
78
  schemas: {
87
- response: betterTunnelsLandingRoute.ResponseSchema
79
+ response: betterTunnelsLandingGETRoute.ResponseSchema
88
80
  },
89
- handlers: { GET: betterTunnelsLandingRoute.handleGet },
81
+ methodRoutes: { GET: { method: "GET", schemas: {
82
+ response: betterTunnelsLandingGETRoute.ResponseSchema
83
+ }, handler: betterTunnelsLandingGETRoute.default } },
84
+ handlers: { GET: betterTunnelsLandingGETRoute.default },
90
85
  title: betterTunnelsLandingRoute.title,
91
86
  description: betterTunnelsLandingRoute.description,
92
87
  auth: betterTunnelsLandingRoute.auth,
93
88
  cacheHints: betterTunnelsLandingRoute.cacheHints,
94
89
  demoScenarios: [],
95
- themeRenderers: {
96
- "bootstrap1": {
97
- pages: [{ rendererId: "default", type: "page", render: betterTunnelsLandingBootstrap1Page.render }],
98
- components: [],
99
- fragments: []
100
- }
101
- }
90
+ themeRenderers: {}
102
91
  },
103
92
  {
104
93
  viewId: "better-tunnels.tunnels",
@@ -106,21 +95,18 @@ export const registry = {
106
95
  methods: ["GET"],
107
96
  paramNames: [],
108
97
  schemas: {
109
- response: betterTunnelsTunnelsRoute.ResponseSchema
98
+ response: betterTunnelsTunnelsGETRoute.ResponseSchema
110
99
  },
111
- handlers: { GET: betterTunnelsTunnelsRoute.handleGet },
100
+ methodRoutes: { GET: { method: "GET", schemas: {
101
+ response: betterTunnelsTunnelsGETRoute.ResponseSchema
102
+ }, handler: betterTunnelsTunnelsGETRoute.default } },
103
+ handlers: { GET: betterTunnelsTunnelsGETRoute.default },
112
104
  title: betterTunnelsTunnelsRoute.title,
113
105
  description: betterTunnelsTunnelsRoute.description,
114
106
  auth: betterTunnelsTunnelsRoute.auth,
115
107
  cacheHints: betterTunnelsTunnelsRoute.cacheHints,
116
108
  demoScenarios: [],
117
- themeRenderers: {
118
- "bootstrap1": {
119
- pages: [{ rendererId: "default", type: "page", render: betterTunnelsTunnelsBootstrap1Page.render }],
120
- components: [],
121
- fragments: []
122
- }
123
- }
109
+ themeRenderers: {}
124
110
  }
125
111
  ]
126
112
  };
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/plugins/service-tunnels-admin/.bp-generated/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/plugins/service-tunnels-admin/.bp-generated/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { QuerySchema, ResponseSchema } from "./index.js";
2
+ declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, {
3
+ session: string;
4
+ key: string;
5
+ }, Record<string, string>, Record<string, unknown>, {
6
+ status: string;
7
+ message: string;
8
+ }, unknown, Record<string, unknown>>;
9
+ export default _default;
10
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;;;;;;;;AAEzD,wBA2CE"}
@@ -0,0 +1,41 @@
1
+ import { createHandler } from "@betterportal/framework";
2
+ import { hashSecret, verifySecret } from "../../../../../auth.js";
3
+ import { prisma } from "../../../../../prisma.js";
4
+ import { QuerySchema, ResponseSchema } from "./index.js";
5
+ export { QuerySchema, ResponseSchema } from "./index.js";
6
+ export default createHandler({ query: QuerySchema, response: ResponseSchema }, async (ctx) => {
7
+ const query = ctx.query;
8
+ const session = await prisma.clientAuthSession.findUnique({
9
+ where: { id: query.session }
10
+ });
11
+ if (!session || session.status !== "pending" || session.expiresAt <= new Date()) {
12
+ return { status: "invalid", message: "This CLI authentication request is no longer valid." };
13
+ }
14
+ if (!verifySecret(query.key, session.browserKeyHash)) {
15
+ return { status: "invalid", message: "This CLI authentication request is no longer valid." };
16
+ }
17
+ const configuredAppId = typeof ctx.config?.mainAuthAppId === "string" ? ctx.config.mainAuthAppId : undefined;
18
+ if (configuredAppId && ctx.app.id !== configuredAppId) {
19
+ return { status: "invalid", message: "This BetterPortal app is not configured for BetterTunnels CLI authentication." };
20
+ }
21
+ const user = ctx.user;
22
+ const subject = String(user?.sub ?? user?.subject ?? user?.id ?? "unknown");
23
+ const email = typeof user?.email === "string" ? user.email : undefined;
24
+ await prisma.clientAuthSession.update({
25
+ where: { id: session.id },
26
+ data: {
27
+ status: "approved",
28
+ tenantId: ctx.tenant.id,
29
+ appId: ctx.app.id,
30
+ bpUserSubject: subject,
31
+ bpUserEmail: email,
32
+ approvedAt: new Date(),
33
+ userAgentHash: typeof ctx.headers["user-agent"] === "string" ? hashSecret(ctx.headers["user-agent"]) : session.userAgentHash
34
+ }
35
+ });
36
+ return {
37
+ status: "approved",
38
+ message: "BetterTunnels CLI authenticated. You can close this tab."
39
+ };
40
+ });
41
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzD,eAAe,aAAa,CAC1B,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,EAChD,KAAK,EAAE,GAAG,EAAE,EAAE;IACZ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAyC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACxD,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE;KAC7B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAChF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;IAC/F,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;IAC/F,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7G,IAAI,eAAe,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,eAAe,EAAE,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,+EAA+E,EAAE,CAAC;IACzH,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,MAAM,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACpC,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;QACzB,IAAI,EAAE;YACJ,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;YACvB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,aAAa,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa;SAC7H;KACF,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,0DAA0D;KACpE,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -15,11 +15,4 @@ export declare const ResponseSchema: av.ObjectSchema<{
15
15
  message: av.StringSchema;
16
16
  }>;
17
17
  export type ResponseData = Infer<typeof ResponseSchema>;
18
- export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, {
19
- session: string;
20
- key: string;
21
- }, Record<string, string>, Record<string, unknown>, {
22
- status: string;
23
- message: string;
24
- }, unknown, Record<string, unknown>>;
25
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAIjC,eAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,eAAO,MAAM,KAAK,qCAAqC,CAAC;AACxD,eAAO,MAAM,WAAW,wDAAwD,CAAC;AAEjF,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC;AAEF,eAAO,MAAM,WAAW;;;EAGI,CAAC;AAE7B,eAAO,MAAM,cAAc;;;EAGC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;oCA2CrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,eAAO,MAAM,KAAK,qCAAqC,CAAC;AACxD,eAAO,MAAM,WAAW,wDAAwD,CAAC;AAEjF,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC;AAEF,eAAO,MAAM,WAAW;;;EAGI,CAAC;AAE7B,eAAO,MAAM,cAAc;;;EAGC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,7 +1,4 @@
1
1
  import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { hashSecret, verifySecret } from "../../../../../auth.js";
4
- import { prisma } from "../../../../../prisma.js";
5
2
  export const viewId = "better-tunnels.cli-auth.verify";
6
3
  export const title = "BetterTunnels CLI Authentication";
7
4
  export const description = "Approves a pending BetterTunnels CLI login session.";
@@ -21,39 +18,4 @@ export const ResponseSchema = av.object({
21
18
  status: av.string(),
22
19
  message: av.string()
23
20
  }, { unknownKeys: "strip" });
24
- export const handleGet = createHandler({ query: QuerySchema, response: ResponseSchema }, async (ctx) => {
25
- const query = ctx.query;
26
- const session = await prisma.clientAuthSession.findUnique({
27
- where: { id: query.session }
28
- });
29
- if (!session || session.status !== "pending" || session.expiresAt <= new Date()) {
30
- return { status: "invalid", message: "This CLI authentication request is no longer valid." };
31
- }
32
- if (!verifySecret(query.key, session.browserKeyHash)) {
33
- return { status: "invalid", message: "This CLI authentication request is no longer valid." };
34
- }
35
- const configuredAppId = typeof ctx.config?.mainAuthAppId === "string" ? ctx.config.mainAuthAppId : undefined;
36
- if (configuredAppId && ctx.app.id !== configuredAppId) {
37
- return { status: "invalid", message: "This BetterPortal app is not configured for BetterTunnels CLI authentication." };
38
- }
39
- const user = ctx.user;
40
- const subject = String(user?.sub ?? user?.subject ?? user?.id ?? "unknown");
41
- const email = typeof user?.email === "string" ? user.email : undefined;
42
- await prisma.clientAuthSession.update({
43
- where: { id: session.id },
44
- data: {
45
- status: "approved",
46
- tenantId: ctx.tenant.id,
47
- appId: ctx.app.id,
48
- bpUserSubject: subject,
49
- bpUserEmail: email,
50
- approvedAt: new Date(),
51
- userAgentHash: typeof ctx.headers["user-agent"] === "string" ? hashSecret(ctx.headers["user-agent"]) : session.userAgentHash
52
- }
53
- });
54
- return {
55
- status: "approved",
56
- message: "BetterTunnels CLI authenticated. You can close this tab."
57
- };
58
- });
59
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-tunnels-admin/bp-routes/cli-auth/verify/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAO9B,MAAM,CAAC,MAAM,MAAM,GAAG,gCAAgC,CAAC;AACvD,MAAM,CAAC,MAAM,KAAK,GAAG,kCAAkC,CAAC;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,qDAAqD,CAAC;AAEjF,MAAM,CAAC,MAAM,IAAI,GAAuB;IACtC,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,EAAE;CAChB,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;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACjC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;CAC9B,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,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;CACrB,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ export { ResponseSchema } from "./index.js";
2
+ declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
3
+ activeTunnels: number;
4
+ totalTunnels: number;
5
+ anonymousAccounts: number;
6
+ registeredAccounts: number;
7
+ requests: number;
8
+ bytesIn: number;
9
+ bytesOut: number;
10
+ recentAuditEvents: {
11
+ id: string;
12
+ event: string;
13
+ createdAt: string;
14
+ subjectId?: string | undefined;
15
+ }[];
16
+ }, unknown, Record<string, unknown>>;
17
+ export default _default;
18
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/GET.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;AAE5C,wBAmCE"}
@@ -0,0 +1,30 @@
1
+ import { createHandler } from "@betterportal/framework";
2
+ import { prisma } from "../../../../prisma.js";
3
+ import { ResponseSchema } from "./index.js";
4
+ export { ResponseSchema } from "./index.js";
5
+ export default createHandler({ response: ResponseSchema }, async () => {
6
+ const [activeTunnels, totalTunnels, anonymousAccounts, registeredAccounts, usageRows, recentAuditEvents] = await Promise.all([
7
+ prisma.tunnel.count({ where: { status: "active" } }),
8
+ prisma.tunnel.count(),
9
+ prisma.account.count({ where: { plan: "anonymous" } }),
10
+ prisma.account.count({ where: { NOT: { plan: "anonymous" } } }),
11
+ prisma.usageCounter.findMany(),
12
+ prisma.auditEvent.findMany({ orderBy: { createdAt: "desc" }, take: 10 })
13
+ ]);
14
+ return {
15
+ activeTunnels,
16
+ totalTunnels,
17
+ anonymousAccounts,
18
+ registeredAccounts,
19
+ requests: usageRows.reduce((sum, row) => sum + row.requests, 0),
20
+ bytesIn: usageRows.reduce((sum, row) => sum + Number(row.bytesIn), 0),
21
+ bytesOut: usageRows.reduce((sum, row) => sum + Number(row.bytesOut), 0),
22
+ recentAuditEvents: recentAuditEvents.map((event) => ({
23
+ id: event.id,
24
+ event: event.event,
25
+ subjectId: event.subjectId ?? undefined,
26
+ createdAt: event.createdAt.toISOString()
27
+ }))
28
+ };
29
+ });
30
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAe,aAAa,CAC1B,EAAE,QAAQ,EAAE,cAAc,EAAE,EAC5B,KAAK,IAAI,EAAE;IACT,MAAM,CACJ,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,CAClB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAC/D,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC9B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO;QACL,aAAa;QACb,YAAY;QACZ,iBAAiB;QACjB,kBAAkB;QAClB,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvE,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;YACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;SACzC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -22,19 +22,4 @@ export declare const ResponseSchema: av.ObjectSchema<{
22
22
  }>>;
23
23
  }>;
24
24
  export type ResponseData = Infer<typeof ResponseSchema>;
25
- export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
26
- activeTunnels: number;
27
- totalTunnels: number;
28
- anonymousAccounts: number;
29
- registeredAccounts: number;
30
- requests: number;
31
- bytesIn: number;
32
- bytesOut: number;
33
- recentAuditEvents: {
34
- id: string;
35
- event: string;
36
- createdAt: string;
37
- subjectId?: string | undefined;
38
- }[];
39
- }, unknown, Record<string, unknown>>;
40
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAGjC,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;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAcC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;oCAmCrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,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;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAcC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { prisma } from "../../../../prisma.js";
4
2
  export const viewId = "better-tunnels.dashboard";
5
3
  export const title = "BetterTunnels Dashboard";
6
4
  export const description = "Operational summary for BetterTunnels.";
@@ -29,29 +27,4 @@ export const ResponseSchema = av.object({
29
27
  createdAt: av.string()
30
28
  }, { unknownKeys: "strip" }))
31
29
  }, { unknownKeys: "strip" });
32
- export const handleGet = createHandler({ response: ResponseSchema }, async () => {
33
- const [activeTunnels, totalTunnels, anonymousAccounts, registeredAccounts, usageRows, recentAuditEvents] = await Promise.all([
34
- prisma.tunnel.count({ where: { status: "active" } }),
35
- prisma.tunnel.count(),
36
- prisma.account.count({ where: { plan: "anonymous" } }),
37
- prisma.account.count({ where: { NOT: { plan: "anonymous" } } }),
38
- prisma.usageCounter.findMany(),
39
- prisma.auditEvent.findMany({ orderBy: { createdAt: "desc" }, take: 10 })
40
- ]);
41
- return {
42
- activeTunnels,
43
- totalTunnels,
44
- anonymousAccounts,
45
- registeredAccounts,
46
- requests: usageRows.reduce((sum, row) => sum + row.requests, 0),
47
- bytesIn: usageRows.reduce((sum, row) => sum + Number(row.bytesIn), 0),
48
- bytesOut: usageRows.reduce((sum, row) => sum + Number(row.bytesOut), 0),
49
- recentAuditEvents: recentAuditEvents.map((event) => ({
50
- id: event.id,
51
- event: event.event,
52
- subjectId: event.subjectId ?? undefined,
53
- createdAt: event.createdAt.toISOString()
54
- }))
55
- };
56
- });
57
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/dashboard/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAO9B,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;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACtC,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE;IAC1B,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE;IACzB,iBAAiB,EAAE,EAAE,CAAC,MAAM,EAAE;IAC9B,kBAAkB,EAAE,EAAE,CAAC,MAAM,EAAE;IAC/B,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE;IACrB,iBAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC;QACpC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE;QAClB,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE;KACvB,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;CAC9B,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { ResponseSchema } from "./index.js";
2
+ declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
3
+ latestTag: string;
4
+ logoUrl: string;
5
+ examples: string[];
6
+ downloads: {
7
+ os: string;
8
+ arch: string;
9
+ artifact: string;
10
+ }[];
11
+ }, unknown, Record<string, unknown>>;
12
+ export default _default;
13
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/GET.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;AAE5C,wBAsBE"}
@@ -0,0 +1,24 @@
1
+ import { createHandler } from "@betterportal/framework";
2
+ import { loadBrandAssets } from "../../brand-assets.js";
3
+ import { ResponseSchema } from "./index.js";
4
+ export { ResponseSchema } from "./index.js";
5
+ export default createHandler({ response: ResponseSchema }, async () => {
6
+ const brand = await loadBrandAssets();
7
+ return {
8
+ latestTag: "v0.1.0",
9
+ logoUrl: brand.logoUrl,
10
+ examples: [
11
+ "better-tunnels tunnel --port 3100",
12
+ "better-tunnels tunnel --host 127.0.0.1 --port 3100",
13
+ "better-tunnels tunnel --config .bettertunnel"
14
+ ],
15
+ downloads: [
16
+ { os: "Windows", arch: "amd64", artifact: "better-tunnels-windows-amd64.exe" },
17
+ { os: "Linux", arch: "amd64", artifact: "better-tunnels-linux-amd64" },
18
+ { os: "Linux", arch: "arm64", artifact: "better-tunnels-linux-arm64" },
19
+ { os: "macOS", arch: "amd64", artifact: "better-tunnels-darwin-amd64" },
20
+ { os: "macOS", arch: "arm64", artifact: "better-tunnels-darwin-arm64" }
21
+ ]
22
+ };
23
+ });
24
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,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"}
@@ -17,14 +17,4 @@ export declare const ResponseSchema: av.ObjectSchema<{
17
17
  }>>;
18
18
  }>;
19
19
  export type ResponseData = Infer<typeof ResponseSchema>;
20
- export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
21
- latestTag: string;
22
- logoUrl: string;
23
- examples: string[];
24
- downloads: {
25
- os: string;
26
- arch: string;
27
- artifact: string;
28
- }[];
29
- }, unknown, Record<string, unknown>>;
30
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAGjC,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;AAQF,eAAO,MAAM,cAAc;;;;;;;;;EAKC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;;;;oCAsBrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,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;AAQF,eAAO,MAAM,cAAc;;;;;;;;;EAKC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { loadBrandAssets } from "../../brand-assets.js";
4
2
  export const viewId = "better-tunnels.downloads";
5
3
  export const title = "BetterTunnels CLI";
6
4
  export const description = "CLI download and setup commands.";
@@ -23,23 +21,4 @@ export const ResponseSchema = av.object({
23
21
  examples: av.array(av.string()),
24
22
  downloads: av.array(DownloadSchema)
25
23
  }, { unknownKeys: "strip" });
26
- export const handleGet = createHandler({ response: ResponseSchema }, async () => {
27
- const brand = await loadBrandAssets();
28
- return {
29
- latestTag: "v0.1.0",
30
- logoUrl: brand.logoUrl,
31
- examples: [
32
- "better-tunnels tunnel --port 3100",
33
- "better-tunnels tunnel --host 127.0.0.1 --port 3100",
34
- "better-tunnels tunnel --config .bettertunnel"
35
- ],
36
- downloads: [
37
- { os: "Windows", arch: "amd64", artifact: "better-tunnels-windows-amd64.exe" },
38
- { os: "Linux", arch: "amd64", artifact: "better-tunnels-linux-amd64" },
39
- { os: "Linux", arch: "arm64", artifact: "better-tunnels-linux-arm64" },
40
- { os: "macOS", arch: "amd64", artifact: "better-tunnels-darwin-amd64" },
41
- { os: "macOS", arch: "arm64", artifact: "better-tunnels-darwin-arm64" }
42
- ]
43
- };
44
- });
45
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,aAAa,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,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;AAEF,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,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CACpC,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/downloads/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAO9B,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;AAEF,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"}
@@ -0,0 +1,18 @@
1
+ export { ResponseSchema } from "./index.js";
2
+ declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
3
+ product: string;
4
+ domain: string;
5
+ connectHost: string;
6
+ webHost: string;
7
+ logoUrl: string;
8
+ markUrl: string;
9
+ faviconUrl: string;
10
+ cliInstall: string[];
11
+ highlights: {
12
+ title: string;
13
+ body: string;
14
+ }[];
15
+ limits: string[];
16
+ }, unknown, Record<string, unknown>>;
17
+ export default _default;
18
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/GET.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;AAE5C,wBAoCE"}
@@ -0,0 +1,38 @@
1
+ import { createHandler } from "@betterportal/framework";
2
+ import { loadBrandAssets } from "../../brand-assets.js";
3
+ import { ResponseSchema } from "./index.js";
4
+ export { ResponseSchema } from "./index.js";
5
+ export default createHandler({ response: ResponseSchema }, async () => {
6
+ const brand = await loadBrandAssets();
7
+ return {
8
+ product: "BetterTunnels",
9
+ domain: "tunnels.betterportal.dev",
10
+ connectHost: "connect.tunnels.betterportal.dev",
11
+ webHost: "betterportal.tunnels.betterportal.dev",
12
+ ...brand,
13
+ cliInstall: [
14
+ "better-tunnels tunnel --port 3100",
15
+ "better-tunnels tunnel --config .bettertunnel"
16
+ ],
17
+ highlights: [
18
+ {
19
+ title: "HTTP and HTTPS tunnels",
20
+ body: "Expose local development servers through generated, short-lived public URLs."
21
+ },
22
+ {
23
+ title: "Verification-first access",
24
+ body: "Visitors pass through a clear development-tunnel warning before reaching a tunnel."
25
+ },
26
+ {
27
+ title: "Built for operations",
28
+ body: "Structured request timings, trace-friendly sessions, and BetterPortal management routes."
29
+ }
30
+ ],
31
+ limits: [
32
+ "Anonymous sessions are temporary.",
33
+ "Tunnel subdomains are generated by the platform.",
34
+ "Registered accounts can unlock higher limits and verification controls later."
35
+ ]
36
+ };
37
+ });
38
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,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"}
@@ -22,19 +22,4 @@ export declare const ResponseSchema: av.ObjectSchema<{
22
22
  limits: av.ArraySchema<av.StringSchema>;
23
23
  }>;
24
24
  export type ResponseData = Infer<typeof ResponseSchema>;
25
- export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
26
- product: string;
27
- domain: string;
28
- connectHost: string;
29
- webHost: string;
30
- logoUrl: string;
31
- markUrl: string;
32
- faviconUrl: string;
33
- cliInstall: string[];
34
- highlights: {
35
- title: string;
36
- body: string;
37
- }[];
38
- limits: string[];
39
- }, unknown, Record<string, unknown>>;
40
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAGjC,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;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAcC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;oCAoCrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,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;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAcC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { loadBrandAssets } from "../../brand-assets.js";
4
2
  export const viewId = "better-tunnels.landing";
5
3
  export const title = "BetterTunnels";
6
4
  export const description = "Public landing page for BetterTunnels.";
@@ -27,37 +25,4 @@ export const ResponseSchema = av.object({
27
25
  }, { unknownKeys: "strip" })),
28
26
  limits: av.array(av.string())
29
27
  }, { unknownKeys: "strip" });
30
- export const handleGet = createHandler({ response: ResponseSchema }, async () => {
31
- const brand = await loadBrandAssets();
32
- return {
33
- product: "BetterTunnels",
34
- domain: "tunnels.betterportal.dev",
35
- connectHost: "connect.tunnels.betterportal.dev",
36
- webHost: "betterportal.tunnels.betterportal.dev",
37
- ...brand,
38
- cliInstall: [
39
- "better-tunnels tunnel --port 3100",
40
- "better-tunnels tunnel --config .bettertunnel"
41
- ],
42
- highlights: [
43
- {
44
- title: "HTTP and HTTPS tunnels",
45
- body: "Expose local development servers through generated, short-lived public URLs."
46
- },
47
- {
48
- title: "Verification-first access",
49
- body: "Visitors pass through a clear development-tunnel warning before reaching a tunnel."
50
- },
51
- {
52
- title: "Built for operations",
53
- body: "Structured request timings, trace-friendly sessions, and BetterPortal management routes."
54
- }
55
- ],
56
- limits: [
57
- "Anonymous sessions are temporary.",
58
- "Tunnel subdomains are generated by the platform.",
59
- "Registered accounts can unlock higher limits and verification controls later."
60
- ]
61
- };
62
- });
63
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,aAAa,EAGd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,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;AAEF,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,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CACpC,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAO9B,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;AAEF,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"}
@@ -0,0 +1,20 @@
1
+ export { ResponseSchema } from "./index.js";
2
+ declare const _default: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
3
+ active: number;
4
+ total: number;
5
+ tunnels: {
6
+ id: string;
7
+ subdomain: string;
8
+ target: string;
9
+ authenticated: boolean;
10
+ status: string;
11
+ createdAt: string;
12
+ expiresAt: string;
13
+ requests: number;
14
+ bytesIn: number;
15
+ bytesOut: number;
16
+ ownerServerId?: string | undefined;
17
+ }[];
18
+ }, unknown, Record<string, unknown>>;
19
+ export default _default;
20
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/GET.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;;;;;;;;;;;;;;;;;;AAE5C,wBA2BE"}
@@ -0,0 +1,29 @@
1
+ import { createHandler } from "@betterportal/framework";
2
+ import { prisma } from "../../../../prisma.js";
3
+ import { ResponseSchema } from "./index.js";
4
+ export { ResponseSchema } from "./index.js";
5
+ export default createHandler({ response: ResponseSchema }, async () => {
6
+ const rows = await prisma.tunnel.findMany({
7
+ orderBy: { createdAt: "desc" },
8
+ take: 50,
9
+ include: { usage: true }
10
+ });
11
+ return {
12
+ active: rows.filter((row) => row.status === "active").length,
13
+ total: rows.length,
14
+ tunnels: rows.map((row) => ({
15
+ id: row.id,
16
+ subdomain: row.subdomain,
17
+ target: `${row.targetHost}:${row.targetPort}`,
18
+ authenticated: row.authenticated,
19
+ status: row.status,
20
+ ownerServerId: row.ownerServerId ?? undefined,
21
+ createdAt: row.createdAt.toISOString(),
22
+ expiresAt: row.expiresAt.toISOString(),
23
+ requests: row.usage?.requests ?? 0,
24
+ bytesIn: Number(row.usage?.bytesIn ?? 0n),
25
+ bytesOut: Number(row.usage?.bytesOut ?? 0n)
26
+ }))
27
+ };
28
+ });
29
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,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"}
@@ -24,21 +24,4 @@ export declare const ResponseSchema: av.ObjectSchema<{
24
24
  }>>;
25
25
  }>;
26
26
  export type ResponseData = Infer<typeof ResponseSchema>;
27
- export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, Record<string, unknown>, Record<string, string>, Record<string, unknown>, {
28
- active: number;
29
- total: number;
30
- tunnels: {
31
- id: string;
32
- subdomain: string;
33
- target: string;
34
- authenticated: boolean;
35
- status: string;
36
- createdAt: string;
37
- expiresAt: string;
38
- requests: number;
39
- bytesIn: number;
40
- bytesOut: number;
41
- ownerServerId?: string | undefined;
42
- }[];
43
- }, unknown, Record<string, unknown>>;
44
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAGjC,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;AAgBF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAIC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;oCA2BrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,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;AAgBF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAIC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import * as av from "anyvali";
2
- import { createHandler } from "@betterportal/framework";
3
- import { prisma } from "../../../../prisma.js";
4
2
  export const viewId = "better-tunnels.tunnels";
5
3
  export const title = "BetterTunnels";
6
4
  export const description = "Tunnel sessions, status, and recent activity.";
@@ -32,28 +30,4 @@ export const ResponseSchema = av.object({
32
30
  total: av.number(),
33
31
  tunnels: av.array(TunnelRowSchema)
34
32
  }, { unknownKeys: "strip" });
35
- export const handleGet = createHandler({ response: ResponseSchema }, async () => {
36
- const rows = await prisma.tunnel.findMany({
37
- orderBy: { createdAt: "desc" },
38
- take: 50,
39
- include: { usage: true }
40
- });
41
- return {
42
- active: rows.filter((row) => row.status === "active").length,
43
- total: rows.length,
44
- tunnels: rows.map((row) => ({
45
- id: row.id,
46
- subdomain: row.subdomain,
47
- target: `${row.targetHost}:${row.targetPort}`,
48
- authenticated: row.authenticated,
49
- status: row.status,
50
- ownerServerId: row.ownerServerId ?? undefined,
51
- createdAt: row.createdAt.toISOString(),
52
- expiresAt: row.expiresAt.toISOString(),
53
- requests: row.usage?.requests ?? 0,
54
- bytesIn: Number(row.usage?.bytesIn ?? 0n),
55
- bytesOut: Number(row.usage?.bytesOut ?? 0n)
56
- }))
57
- };
58
- });
59
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-tunnels-admin/bp-routes/tunnels/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAO9B,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;AAEF,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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "pluginName": "service-tunnels-admin",
3
3
  "events": {},
4
- "version": "1.0.7",
4
+ "version": "1.0.9",
5
5
  "configSchema": {
6
6
  "anyvaliVersion": "1.0",
7
7
  "schemaVersion": "1.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "service-tunnels-admin",
3
3
  "name": "service-tunnels-admin",
4
- "version": "1.0.7",
4
+ "version": "1.0.9",
5
5
  "description": "BetterPortal public and management UI for BetterTunnels",
6
6
  "category": "service",
7
7
  "tags": [
@@ -232,7 +232,7 @@
232
232
  }
233
233
  }
234
234
  },
235
- "version": "1.0.7",
235
+ "version": "1.0.9",
236
236
  "configSchema": {
237
237
  "anyvaliVersion": "1.0",
238
238
  "schemaVersion": "1.1",
@@ -314,7 +314,7 @@
314
314
  "dependencies": [
315
315
  {
316
316
  "id": "betterportal/service-tunnels-proxy.js",
317
- "version": "1.0.7"
317
+ "version": "1.0.9"
318
318
  }
319
319
  ]
320
320
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "service-tunnels-client",
3
3
  "name": "service-tunnels-client",
4
- "version": "1.0.7",
4
+ "version": "1.0.9",
5
5
  "description": "Client websocket/API service",
6
6
  "category": "service",
7
7
  "tags": [
@@ -13,7 +13,7 @@
13
13
  "dependencies": [
14
14
  {
15
15
  "id": "betterportal/service-tunnels-proxy.js",
16
- "version": "1.0.7"
16
+ "version": "1.0.9"
17
17
  }
18
18
  ],
19
19
  "license": "(AGPL-3.0-only OR Commercial)",
@@ -46,7 +46,7 @@
46
46
  "outputSchema": null
47
47
  }
48
48
  },
49
- "version": "1.0.7",
49
+ "version": "1.0.9",
50
50
  "configSchema": {
51
51
  "anyvaliVersion": "1.0",
52
52
  "schemaVersion": "1.1",
@@ -154,7 +154,7 @@
154
154
  "dependencies": [
155
155
  {
156
156
  "id": "betterportal/service-tunnels-client.js",
157
- "version": "1.0.7"
157
+ "version": "1.0.9"
158
158
  }
159
159
  ]
160
160
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "service-tunnels-proxy",
3
3
  "name": "service-tunnels-proxy",
4
- "version": "1.0.7",
4
+ "version": "1.0.9",
5
5
  "description": "Front-facing H3 tunnel service",
6
6
  "category": "service",
7
7
  "tags": [
@@ -13,7 +13,7 @@
13
13
  "dependencies": [
14
14
  {
15
15
  "id": "betterportal/service-tunnels-client.js",
16
- "version": "1.0.7"
16
+ "version": "1.0.9"
17
17
  }
18
18
  ],
19
19
  "license": "(AGPL-3.0-only OR Commercial)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterportal/tunnels",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "type": "module",
5
5
  "license": "(AGPL-3.0-only OR Commercial)",
6
6
  "repository": {
@@ -37,8 +37,8 @@
37
37
  "check": "npm run build && npm test"
38
38
  },
39
39
  "dependencies": {
40
- "@betterportal/framework": "^10.0.0",
41
- "@betterportal/plugin-bsb": "^10.0.0",
40
+ "@betterportal/framework": "^10.0.30",
41
+ "@betterportal/plugin-bsb": "^10.0.30",
42
42
  "@bsb/base": "^9.6.41",
43
43
  "@bsb/config-vault": "^9.6.47",
44
44
  "@prisma/adapter-pg": "^7.8.0",