@betterportal/hello-view 10.0.25 → 10.0.26

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 (38) hide show
  1. package/lib/plugins/service-betterportal-hello-view/.bp-generated/registry.d.ts.map +1 -1
  2. package/lib/plugins/service-betterportal-hello-view/.bp-generated/registry.js +68 -0
  3. package/lib/plugins/service-betterportal-hello-view/.bp-generated/registry.js.map +1 -1
  4. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/GET.d.ts +3 -0
  5. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/GET.d.ts.map +1 -0
  6. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/GET.js +3 -0
  7. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/GET.js.map +1 -0
  8. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.d.ts +5 -0
  9. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.d.ts.map +1 -0
  10. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.js +33 -0
  11. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.js.map +1 -0
  12. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/index.d.ts +2 -0
  13. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/index.d.ts.map +1 -0
  14. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/index.js +2 -0
  15. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/index.js.map +1 -0
  16. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/route.impl.d.ts +38 -0
  17. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/route.impl.d.ts.map +1 -0
  18. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/route.impl.js +72 -0
  19. package/lib/plugins/service-betterportal-hello-view/bp-routes/about/route.impl.js.map +1 -0
  20. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/GET.d.ts +3 -0
  21. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/GET.d.ts.map +1 -0
  22. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/GET.js +3 -0
  23. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/GET.js.map +1 -0
  24. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.d.ts +5 -0
  25. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.d.ts.map +1 -0
  26. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.js +57 -0
  27. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.js.map +1 -0
  28. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/index.d.ts +2 -0
  29. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/index.d.ts.map +1 -0
  30. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/index.js +2 -0
  31. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/index.js.map +1 -0
  32. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/route.impl.d.ts +40 -0
  33. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/route.impl.d.ts.map +1 -0
  34. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/route.impl.js +70 -0
  35. package/lib/plugins/service-betterportal-hello-view/bp-routes/landing/route.impl.js.map +1 -0
  36. package/lib/schemas/service-betterportal-hello-view.json +1 -1
  37. package/lib/schemas/service-betterportal-hello-view.plugin.json +1 -1
  38. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-hello-view/.bp-generated/registry.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,QAAQ,EAAE,oBAwEtB,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-hello-view/.bp-generated/registry.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,QAAQ,EAAE,oBAsItB,CAAC"}
@@ -1,4 +1,7 @@
1
1
  // AUTO-GENERATED by BetterPortal codegen - DO NOT EDIT
2
+ import * as aboutRoute from "../bp-routes/about/index.js";
3
+ import * as aboutGETRoute from "../bp-routes/about/GET.js";
4
+ import * as aboutBootstrap1PageGET from "../bp-routes/about/_theme.bootstrap1/GET.js";
2
5
  import * as delayedRoute from "../bp-routes/delayed/index.js";
3
6
  import * as delayedGETRoute from "../bp-routes/delayed/GET.js";
4
7
  import * as delayedBootstrap1PageGET from "../bp-routes/delayed/_theme.bootstrap1/GET.js";
@@ -18,8 +21,42 @@ import * as helloBootstrap1ShowcaseInteractiveGET from "../bp-routes/hello/_them
18
21
  import * as helloBootstrap1ShowcaseOverlaysGET from "../bp-routes/hello/_theme.bootstrap1/showcase-overlays.GET.js";
19
22
  import * as helloBootstrap1ShowcasePatternsGET from "../bp-routes/hello/_theme.bootstrap1/showcase-patterns.GET.js";
20
23
  import * as helloEmbeddedPageGET from "../bp-routes/hello/_theme.embedded/GET.js";
24
+ import * as landingRoute from "../bp-routes/landing/index.js";
25
+ import * as landingGETRoute from "../bp-routes/landing/GET.js";
26
+ import * as landingBootstrap1PageGET from "../bp-routes/landing/_theme.bootstrap1/GET.js";
21
27
  export const registry = {
22
28
  routes: [
29
+ {
30
+ viewId: "about.index",
31
+ path: "/about",
32
+ methods: ["GET"],
33
+ paramNames: [],
34
+ schemas: {
35
+ response: aboutGETRoute.ResponseSchema,
36
+ query: aboutGETRoute.QuerySchema,
37
+ headers: aboutGETRoute.HeadersSchema,
38
+ request: aboutGETRoute.RequestSchema
39
+ },
40
+ methodRoutes: { GET: { method: "GET", schemas: {
41
+ response: aboutGETRoute.ResponseSchema,
42
+ query: aboutGETRoute.QuerySchema,
43
+ headers: aboutGETRoute.HeadersSchema,
44
+ request: aboutGETRoute.RequestSchema
45
+ }, handler: aboutGETRoute.default } },
46
+ handlers: { GET: aboutGETRoute.default },
47
+ title: aboutRoute.title,
48
+ description: aboutRoute.description,
49
+ auth: aboutRoute.auth,
50
+ cacheHints: aboutRoute.cacheHints,
51
+ demoScenarios: [],
52
+ themeRenderers: {
53
+ "bootstrap1": {
54
+ pages: [{ rendererId: "default", type: "page", method: "GET", render: aboutBootstrap1PageGET.render }],
55
+ components: [],
56
+ fragments: []
57
+ }
58
+ }
59
+ },
23
60
  {
24
61
  viewId: "delayed.index",
25
62
  path: "/delayed",
@@ -88,6 +125,37 @@ export const registry = {
88
125
  }
89
126
  },
90
127
  sse: { handler: helloSse.handleSSE, tickSchema: helloSse.tickSchema }
128
+ },
129
+ {
130
+ viewId: "landing.index",
131
+ path: "/landing",
132
+ methods: ["GET"],
133
+ paramNames: [],
134
+ schemas: {
135
+ response: landingGETRoute.ResponseSchema,
136
+ query: landingGETRoute.QuerySchema,
137
+ headers: landingGETRoute.HeadersSchema,
138
+ request: landingGETRoute.RequestSchema
139
+ },
140
+ methodRoutes: { GET: { method: "GET", schemas: {
141
+ response: landingGETRoute.ResponseSchema,
142
+ query: landingGETRoute.QuerySchema,
143
+ headers: landingGETRoute.HeadersSchema,
144
+ request: landingGETRoute.RequestSchema
145
+ }, handler: landingGETRoute.default } },
146
+ handlers: { GET: landingGETRoute.default },
147
+ title: landingRoute.title,
148
+ description: landingRoute.description,
149
+ auth: landingRoute.auth,
150
+ cacheHints: landingRoute.cacheHints,
151
+ demoScenarios: [],
152
+ themeRenderers: {
153
+ "bootstrap1": {
154
+ pages: [{ rendererId: "default", type: "page", method: "GET", render: landingBootstrap1PageGET.render }],
155
+ components: [],
156
+ fragments: []
157
+ }
158
+ }
91
159
  }
92
160
  ]
93
161
  };
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-hello-view/.bp-generated/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-hello-view/.bp-generated/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ResponseSchema, QuerySchema, HeadersSchema, RequestSchema } from "./route.impl.js";
2
+ export { handleGet as default } from "./route.impl.js";
3
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ResponseSchema, QuerySchema, HeadersSchema, RequestSchema } from "./route.impl.js";
2
+ export { handleGet as default } from "./route.impl.js";
3
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** @jsxImportSource jsx-htmx */
2
+ import type { HtmlRenderable } from "@betterportal/framework";
3
+ import type { ResponseData } from "../route.impl.js";
4
+ export declare function render(data: ResponseData): HtmlRenderable;
5
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA8BrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAmFzD"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
+ function sectionList(items) {
3
+ return (_jsx("div", { class: "d-flex flex-column gap-3", children: items.map((item) => (_jsxs("section", { class: "border-bottom pb-3", children: [_jsx("h2", { class: "h4 mb-2", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.text })] }))) }));
4
+ }
5
+ function principleGrid(items) {
6
+ return (_jsx("div", { class: "row row-cols-1 row-cols-md-2 g-3", children: items.map((item) => (_jsx("div", { class: "col", children: _jsxs("article", { class: "h-100 p-4 rounded-3 border bg-body", children: [_jsx("h3", { class: "h5 mb-2", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.text })] }) }))) }));
7
+ }
8
+ export function render(data) {
9
+ return (_jsxs("main", { class: "container-fluid px-0", children: [_jsx("style", { children: `
10
+ .bp-about-hero {
11
+ border-bottom: 1px solid var(--bs-border-color);
12
+ background:
13
+ linear-gradient(120deg, rgba(var(--bs-info-rgb), .10), transparent 34%),
14
+ linear-gradient(180deg, rgba(var(--bs-body-bg-rgb), .98), var(--bs-body-bg));
15
+ }
16
+ .bp-about-map {
17
+ display: grid;
18
+ grid-template-columns: repeat(2, minmax(0, 1fr));
19
+ gap: .75rem;
20
+ }
21
+ .bp-about-map__item {
22
+ min-height: 7rem;
23
+ border: 1px solid var(--bs-border-color);
24
+ border-radius: .75rem;
25
+ padding: 1rem;
26
+ background: var(--bs-tertiary-bg);
27
+ }
28
+ @media (max-width: 575.98px) {
29
+ .bp-about-map { grid-template-columns: 1fr; }
30
+ }
31
+ ` }), _jsx("section", { class: "bp-about-hero", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-5 align-items-center", children: [_jsxs("div", { class: "col-lg-7", children: [_jsx("a", { class: "btn btn-sm btn-outline-secondary mb-4", href: data.landingHref, children: "Back to landing" }), _jsx("h1", { class: "display-5 fw-semibold mb-3", children: data.title }), _jsx("p", { class: "lead text-body-secondary mb-0", children: data.intro })] }), _jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "bp-about-map", children: [_jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "01" }), _jsx("strong", { children: "Control plane" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "02" }), _jsx("strong", { children: "Runtime services" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "03" }), _jsx("strong", { children: "Themes" })] }), _jsxs("div", { class: "bp-about-map__item", children: [_jsx("div", { class: "small text-body-secondary", children: "04" }), _jsx("strong", { children: "Auth" })] })] }) })] }) }) }), _jsx("section", { children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-5", children: [_jsx("div", { class: "col-lg-5", children: _jsxs("div", { class: "sticky-lg-top", style: "top: 2rem;", children: [_jsx("div", { class: "small text-uppercase text-body-secondary fw-semibold mb-2", children: "Architecture" }), _jsx("h2", { class: "h1 mb-3", children: "One platform contract, many deployable services." }), _jsx("p", { class: "text-body-secondary", children: "BetterPortal keeps routing, configuration, auth, and rendering explicit. That makes the portal easier to operate, inspect, and extend." })] }) }), _jsx("div", { class: "col-lg-7", children: sectionList(data.sections) })] }) }) }), _jsx("section", { class: "border-top", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-4 align-items-start", children: [_jsxs("div", { class: "col-lg-4", children: [_jsx("div", { class: "small text-uppercase text-body-secondary fw-semibold mb-2", children: "Principles" }), _jsx("h2", { class: "h1 mb-0", children: "Designed for typed, observable composition." })] }), _jsx("div", { class: "col-lg-8", children: principleGrid(data.principles) })] }) }) })] }));
32
+ }
33
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { title, description, auth, cacheHints } from "./route.impl.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { title, description, auth, cacheHints } from "./route.impl.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import * as av from "anyvali";
2
+ import type { Infer } from "anyvali";
3
+ import { type ApiAuthRequirement, type CacheHints } from "@betterportal/framework";
4
+ export declare const QuerySchema: av.ObjectSchema<{}>;
5
+ export declare const HeadersSchema: av.ObjectSchema<{}>;
6
+ export declare const RequestSchema: av.ObjectSchema<{}>;
7
+ export declare const ResponseSchema: av.ObjectSchema<{
8
+ title: av.StringSchema;
9
+ intro: av.StringSchema;
10
+ sections: av.ArraySchema<av.ObjectSchema<{
11
+ title: av.StringSchema;
12
+ text: av.StringSchema;
13
+ }>>;
14
+ principles: av.ArraySchema<av.ObjectSchema<{
15
+ title: av.StringSchema;
16
+ text: av.StringSchema;
17
+ }>>;
18
+ landingHref: av.StringSchema;
19
+ }>;
20
+ export type ResponseData = Infer<typeof ResponseSchema>;
21
+ export declare const title = "About BetterPortal";
22
+ export declare const description = "Overview of BetterPortal architecture and design principles.";
23
+ export declare const auth: ApiAuthRequirement;
24
+ export declare const cacheHints: CacheHints;
25
+ export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, {}, {}, {}, {
26
+ title: string;
27
+ intro: string;
28
+ sections: {
29
+ title: string;
30
+ text: string;
31
+ }[];
32
+ principles: {
33
+ title: string;
34
+ text: string;
35
+ }[];
36
+ landingHref: string;
37
+ }, unknown, Record<string, unknown>>;
38
+ //# sourceMappingURL=route.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.impl.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/route.impl.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;AAEjC,eAAO,MAAM,WAAW,qBAA0C,CAAC;AACnE,eAAO,MAAM,aAAa,qBAA0C,CAAC;AACrE,eAAO,MAAM,aAAa,qBAA0C,CAAC;AAYrE,eAAO,MAAM,cAAc;;;;;;;;;;;;EAMC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,uBAAuB,CAAC;AAC1C,eAAO,MAAM,WAAW,iEAAiE,CAAC;AAE1F,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;oCA2CrB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import * as av from "anyvali";
2
+ import { createHandler } from "@betterportal/framework";
3
+ export const QuerySchema = av.object({}, { unknownKeys: "strip" });
4
+ export const HeadersSchema = av.object({}, { unknownKeys: "strip" });
5
+ export const RequestSchema = av.object({}, { unknownKeys: "strip" });
6
+ const SectionSchema = av.object({
7
+ title: av.string().minLength(1),
8
+ text: av.string().minLength(1)
9
+ }, { unknownKeys: "strip" });
10
+ const PrincipleSchema = av.object({
11
+ title: av.string().minLength(1),
12
+ text: av.string().minLength(1)
13
+ }, { unknownKeys: "strip" });
14
+ export const ResponseSchema = av.object({
15
+ title: av.string().minLength(1),
16
+ intro: av.string().minLength(1),
17
+ sections: av.array(SectionSchema),
18
+ principles: av.array(PrincipleSchema),
19
+ landingHref: av.string().minLength(1)
20
+ }, { unknownKeys: "strip" });
21
+ export const title = "About BetterPortal";
22
+ export const description = "Overview of BetterPortal architecture and design principles.";
23
+ export const auth = {
24
+ required: false,
25
+ permissions: []
26
+ };
27
+ export const cacheHints = {
28
+ ttlSeconds: 300,
29
+ varyBy: ["accept", "origin", "referer", ":origin", ":referer"]
30
+ };
31
+ export const handleGet = createHandler({ response: ResponseSchema, query: QuerySchema, headers: HeadersSchema, request: RequestSchema }, () => ({
32
+ title: "About BetterPortal",
33
+ intro: "BetterPortal is a framework for building tenant-aware portals from independently deployed services. The platform gives services a shared contract without forcing them into a shared process.",
34
+ sections: [
35
+ {
36
+ title: "Control plane",
37
+ text: "The config manager owns platform state, service activation, app routes, shared service bindings, and scoped configuration. Services pull what they need and apply it locally."
38
+ },
39
+ {
40
+ title: "Runtime services",
41
+ text: "A service can expose APIs, views, fragments, streaming endpoints, raw file responses, and service metadata. The same route remains useful to browsers, integrations, and agents."
42
+ },
43
+ {
44
+ title: "Themes",
45
+ text: "Themes render the shell and negotiate content from services. They keep navigation, profile fragments, background fragments, and chrome behavior outside business services."
46
+ },
47
+ {
48
+ title: "Auth",
49
+ text: "Auth providers plug into the same service model. Apps choose an auth service, while service routes keep their own explicit auth and permission requirements."
50
+ }
51
+ ],
52
+ principles: [
53
+ {
54
+ title: "Typed boundaries",
55
+ text: "Inputs, outputs, scoped config, and metadata are declared as schemas so runtime behavior stays observable and predictable."
56
+ },
57
+ {
58
+ title: "No hidden platform reach",
59
+ text: "Browser-driven setup and pull-based sync avoid assuming the config manager can directly reach every deployed service."
60
+ },
61
+ {
62
+ title: "Local ownership",
63
+ text: "Services own their route behavior and view renderers. The platform decides which routes are mounted for each app."
64
+ },
65
+ {
66
+ title: "Composable operations",
67
+ text: "The same discovery surface supports users, admins, automation systems, and AI agents without separate bespoke integration layers."
68
+ }
69
+ ],
70
+ landingHref: "/landing"
71
+ }));
72
+ //# sourceMappingURL=route.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.impl.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/about/route.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { ResponseSchema, QuerySchema, HeadersSchema, RequestSchema } from "./route.impl.js";
2
+ export { handleGet as default } from "./route.impl.js";
3
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ResponseSchema, QuerySchema, HeadersSchema, RequestSchema } from "./route.impl.js";
2
+ export { handleGet as default } from "./route.impl.js";
3
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** @jsxImportSource jsx-htmx */
2
+ import type { HtmlRenderable } from "@betterportal/framework";
3
+ import type { ResponseData } from "../route.impl.js";
4
+ export declare function render(data: ResponseData): HtmlRenderable;
5
+ //# sourceMappingURL=GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.d.ts","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/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,kBAAkB,CAAC;AAgCrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAuHzD"}
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "jsx-htmx/jsx-runtime";
2
+ function featureGrid(items) {
3
+ return (_jsx("div", { class: "row row-cols-1 row-cols-md-2 g-3", children: items.map((item) => (_jsx("div", { class: "col", children: _jsxs("article", { class: "border rounded-3 h-100 p-4 bg-body", children: [_jsx("h3", { class: "h5 mb-2", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.text })] }) }))) }));
4
+ }
5
+ function platformStrip(items) {
6
+ return (_jsx("div", { class: "row row-cols-1 row-cols-lg-3 g-3", children: items.map((item) => (_jsx("div", { class: "col", children: _jsxs("div", { class: "h-100 border-top border-3 border-primary pt-3", children: [_jsx("h2", { class: "h5", children: item.title }), _jsx("p", { class: "text-body-secondary mb-0", children: item.text })] }) }))) }));
7
+ }
8
+ export function render(data) {
9
+ return (_jsxs("main", { class: "container-fluid px-0", children: [_jsx("style", { children: `
10
+ .bp-landing-hero {
11
+ min-height: min(680px, calc(100vh - 10rem));
12
+ display: grid;
13
+ align-items: center;
14
+ border-bottom: 1px solid var(--bs-border-color);
15
+ background:
16
+ linear-gradient(120deg, rgba(var(--bs-primary-rgb), .10), transparent 38%),
17
+ linear-gradient(180deg, rgba(var(--bs-body-bg-rgb), .98), var(--bs-body-bg));
18
+ }
19
+ .bp-landing-wordmark {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ gap: .75rem;
23
+ color: var(--bs-primary);
24
+ font-weight: 700;
25
+ }
26
+ .bp-landing-mark {
27
+ width: 2.75rem;
28
+ height: 2.75rem;
29
+ display: inline-grid;
30
+ place-items: center;
31
+ border: 1px solid rgba(var(--bs-primary-rgb), .35);
32
+ border-radius: .75rem;
33
+ background: rgba(var(--bs-primary-rgb), .08);
34
+ }
35
+ .bp-landing-diagram {
36
+ border: 1px solid var(--bs-border-color);
37
+ border-radius: 1rem;
38
+ background: var(--bs-body-bg);
39
+ box-shadow: 0 1rem 3rem rgba(0,0,0,.08);
40
+ overflow: hidden;
41
+ }
42
+ .bp-landing-diagram__bar {
43
+ height: .7rem;
44
+ background: linear-gradient(90deg, var(--bs-primary), var(--bs-info), var(--bs-success));
45
+ }
46
+ .bp-landing-node {
47
+ border: 1px solid var(--bs-border-color);
48
+ border-radius: .75rem;
49
+ padding: 1rem;
50
+ background: var(--bs-tertiary-bg);
51
+ }
52
+ .bp-landing-band {
53
+ border-bottom: 1px solid var(--bs-border-color);
54
+ }
55
+ ` }), _jsx("section", { class: "bp-landing-hero", children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row align-items-center g-5", children: [_jsxs("div", { class: "col-lg-6", children: [_jsxs("div", { class: "bp-landing-wordmark mb-4", children: [_jsx("span", { class: "bp-landing-mark", children: "BP" }), _jsx("span", { children: "BetterPortal" })] }), _jsx("h1", { class: "display-4 fw-semibold mb-3", children: data.headline }), _jsx("p", { class: "lead text-body-secondary mb-4", children: data.subheading }), _jsx("p", { class: "fs-5 text-body-secondary mb-4", children: data.summary }), _jsxs("div", { class: "d-flex flex-wrap gap-2", children: [_jsx("a", { class: "btn btn-primary btn-lg", href: data.aboutHref, children: "About BetterPortal" }), _jsx("a", { class: "btn btn-outline-secondary btn-lg", href: "/hello", children: "View service demo" })] })] }), _jsx("div", { class: "col-lg-6", children: _jsxs("div", { class: "bp-landing-diagram", children: [_jsx("div", { class: "bp-landing-diagram__bar" }), _jsxs("div", { class: "p-4", children: [_jsxs("div", { class: "d-flex justify-content-between align-items-center mb-4", children: [_jsxs("div", { children: [_jsx("div", { class: "small text-body-secondary", children: "Platform runtime" }), _jsx("div", { class: "h5 mb-0", children: "Service graph" })] }), _jsx("span", { class: "badge text-bg-success", children: "Live config" })] }), _jsxs("div", { class: "row g-3", children: [_jsx("div", { class: "col-6", children: _jsxs("div", { class: "bp-landing-node", children: [_jsx("div", { class: "small text-body-secondary", children: "Theme" }), _jsx("strong", { children: "Bootstrap1" })] }) }), _jsx("div", { class: "col-6", children: _jsxs("div", { class: "bp-landing-node", children: [_jsx("div", { class: "small text-body-secondary", children: "Auth" }), _jsx("strong", { children: "Provider" })] }) }), _jsx("div", { class: "col-6", children: _jsxs("div", { class: "bp-landing-node", children: [_jsx("div", { class: "small text-body-secondary", children: "Service" }), _jsx("strong", { children: "Views" })] }) }), _jsx("div", { class: "col-6", children: _jsxs("div", { class: "bp-landing-node", children: [_jsx("div", { class: "small text-body-secondary", children: "Control" }), _jsx("strong", { children: "Config" })] }) })] }), _jsx("div", { class: "mt-4 p-3 rounded-3 bg-primary-subtle text-primary-emphasis", children: "Typed routes, scoped config, and AI-readable discovery stay aligned." })] })] }) })] }) }) }), _jsx("section", { class: "bp-landing-band", children: _jsx("div", { class: "container py-5", children: platformStrip(data.highlights) }) }), _jsx("section", { children: _jsx("div", { class: "container py-5", children: _jsxs("div", { class: "row g-4 mb-4", children: [_jsxs("div", { class: "col-lg-4", children: [_jsx("h2", { class: "h1 mb-3", children: "Built from independent parts." }), _jsx("p", { class: "text-body-secondary mb-0", children: "BetterPortal gives each service a strong local contract while the app decides what is mounted, themed, and visible." })] }), _jsx("div", { class: "col-lg-8", children: featureGrid(data.capabilities) })] }) }) })] }));
56
+ }
57
+ //# sourceMappingURL=GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GET.js","sourceRoot":"","sources":["../../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/_theme.bootstrap1/GET.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { title, description, auth, cacheHints } from "./route.impl.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { title, description, auth, cacheHints } from "./route.impl.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import * as av from "anyvali";
2
+ import type { Infer } from "anyvali";
3
+ import { type ApiAuthRequirement, type CacheHints } from "@betterportal/framework";
4
+ export declare const QuerySchema: av.ObjectSchema<{}>;
5
+ export declare const HeadersSchema: av.ObjectSchema<{}>;
6
+ export declare const RequestSchema: av.ObjectSchema<{}>;
7
+ export declare const ResponseSchema: av.ObjectSchema<{
8
+ headline: av.StringSchema;
9
+ subheading: av.StringSchema;
10
+ summary: av.StringSchema;
11
+ highlights: av.ArraySchema<av.ObjectSchema<{
12
+ title: av.StringSchema;
13
+ text: av.StringSchema;
14
+ }>>;
15
+ capabilities: av.ArraySchema<av.ObjectSchema<{
16
+ title: av.StringSchema;
17
+ text: av.StringSchema;
18
+ }>>;
19
+ aboutHref: av.StringSchema;
20
+ }>;
21
+ export type ResponseData = Infer<typeof ResponseSchema>;
22
+ export declare const title = "BetterPortal";
23
+ export declare const description = "Landing page for BetterPortal, the service-oriented portal framework.";
24
+ export declare const auth: ApiAuthRequirement;
25
+ export declare const cacheHints: CacheHints;
26
+ export declare const handleGet: import("@betterportal/framework").RouteHandler<Record<string, string>, {}, {}, {}, {
27
+ headline: string;
28
+ subheading: string;
29
+ summary: string;
30
+ highlights: {
31
+ title: string;
32
+ text: string;
33
+ }[];
34
+ capabilities: {
35
+ title: string;
36
+ text: string;
37
+ }[];
38
+ aboutHref: string;
39
+ }, unknown, Record<string, unknown>>;
40
+ //# sourceMappingURL=route.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.impl.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/route.impl.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;AAEjC,eAAO,MAAM,WAAW,qBAA0C,CAAC;AACnE,eAAO,MAAM,aAAa,qBAA0C,CAAC;AACrE,eAAO,MAAM,aAAa,qBAA0C,CAAC;AAYrE,eAAO,MAAM,cAAc;;;;;;;;;;;;;EAOC,CAAC;AAC7B,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,iBAAiB,CAAC;AACpC,eAAO,MAAM,WAAW,0EAA0E,CAAC;AAEnG,eAAO,MAAM,IAAI,EAAE,kBAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAGxB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;oCAwCrB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import * as av from "anyvali";
2
+ import { createHandler } from "@betterportal/framework";
3
+ export const QuerySchema = av.object({}, { unknownKeys: "strip" });
4
+ export const HeadersSchema = av.object({}, { unknownKeys: "strip" });
5
+ export const RequestSchema = av.object({}, { unknownKeys: "strip" });
6
+ const HighlightSchema = av.object({
7
+ title: av.string().minLength(1),
8
+ text: av.string().minLength(1)
9
+ }, { unknownKeys: "strip" });
10
+ const CapabilitySchema = av.object({
11
+ title: av.string().minLength(1),
12
+ text: av.string().minLength(1)
13
+ }, { unknownKeys: "strip" });
14
+ export const ResponseSchema = av.object({
15
+ headline: av.string().minLength(1),
16
+ subheading: av.string().minLength(1),
17
+ summary: av.string().minLength(1),
18
+ highlights: av.array(HighlightSchema),
19
+ capabilities: av.array(CapabilitySchema),
20
+ aboutHref: av.string().minLength(1)
21
+ }, { unknownKeys: "strip" });
22
+ export const title = "BetterPortal";
23
+ export const description = "Landing page for BetterPortal, the service-oriented portal framework.";
24
+ export const auth = {
25
+ required: false,
26
+ permissions: []
27
+ };
28
+ export const cacheHints = {
29
+ ttlSeconds: 300,
30
+ varyBy: ["accept", "origin", "referer", ":origin", ":referer"]
31
+ };
32
+ export const handleGet = createHandler({ response: ResponseSchema, query: QuerySchema, headers: HeadersSchema, request: RequestSchema }, () => ({
33
+ headline: "BetterPortal",
34
+ subheading: "Composable portals for serious service platforms.",
35
+ summary: "BetterPortal lets teams ship independent services, views, auth providers, themes, and automation surfaces without forcing every part of the stack into one deployable application.",
36
+ highlights: [
37
+ {
38
+ title: "Service-first",
39
+ text: "Each capability is owned by the service that implements it, with typed routes, views, schemas, and manifests exposed through the BP runtime."
40
+ },
41
+ {
42
+ title: "Tenant aware",
43
+ text: "Configuration is scoped through the platform, then resolved per tenant and app so shared services can still behave locally."
44
+ },
45
+ {
46
+ title: "AI ready",
47
+ text: "Discovery documents, schema-backed APIs, and route metadata give agents enough structure to understand what the portal can do."
48
+ }
49
+ ],
50
+ capabilities: [
51
+ {
52
+ title: "Typed service routes",
53
+ text: "Handlers validate input and output with schemas, then negotiate JSON, HTML, streams, or raw responses through the framework."
54
+ },
55
+ {
56
+ title: "Config-managed delivery",
57
+ text: "Services can run separately and pull scoped platform configuration without requiring direct service-to-service access."
58
+ },
59
+ {
60
+ title: "Theme and auth independence",
61
+ text: "Themes, auth providers, and business services are peers. Apps decide what to activate and expose."
62
+ },
63
+ {
64
+ title: "Automation surface",
65
+ text: "The same route and manifest model can drive human UIs, integrations, AI tools, and workflow platforms."
66
+ }
67
+ ],
68
+ aboutHref: "/about"
69
+ }));
70
+ //# sourceMappingURL=route.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.impl.js","sourceRoot":"","sources":["../../../../../src/plugins/service-betterportal-hello-view/bp-routes/landing/route.impl.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "pluginName": "service-betterportal-hello-view",
3
3
  "events": {},
4
- "version": "10.0.25",
4
+ "version": "10.0.26",
5
5
  "configSchema": {
6
6
  "anyvaliVersion": "1.0",
7
7
  "schemaVersion": "1.1",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "service-betterportal-hello-view",
3
3
  "name": "service-betterportal-hello-view",
4
- "version": "10.0.25",
4
+ "version": "10.0.26",
5
5
  "description": "Hello view example service for BetterPortal v10",
6
6
  "category": "service",
7
7
  "tags": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@betterportal/hello-view",
3
- "version": "10.0.25",
3
+ "version": "10.0.26",
4
4
  "description": "BetterPortal v10 example service plugin for Node.js",
5
5
  "main": "lib/index.js",
6
6
  "types": "src/index.ts",
@@ -30,8 +30,8 @@
30
30
  "typescript": "^6.0.3"
31
31
  },
32
32
  "dependencies": {
33
- "@betterportal/framework": "10.0.25",
34
- "@betterportal/plugin-bsb": "10.0.25",
33
+ "@betterportal/framework": "10.0.26",
34
+ "@betterportal/plugin-bsb": "10.0.26",
35
35
  "@bsb/base": "^9.6.41",
36
36
  "anyvali": "^1.0.6",
37
37
  "jsx-htmx": "4.0.0-beta4"