@getstrata/bootstrap 2.2.12 → 2.2.14
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.
- package/CHANGELOG.md +10 -0
- package/dist/bootstrap/providers/view.d.ts +10 -1
- package/dist/entries/context.js +22 -1
- package/dist/entries/dependencies.js +22 -1
- package/dist/entries/providers/view.js +23 -1
- package/dist/entries/providers.js +22 -1
- package/dist/index.js +5 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @getstrata/bootstrap changelog
|
|
2
2
|
|
|
3
|
+
## 2.2.14
|
|
4
|
+
|
|
5
|
+
Complete the scoped HTML rendering starter adoption: generated apps inject ViewRenderer through createViewProvider instead of copying renderPage; welcome pages opt into HTMX fragments with full-page fallbacks, auth retains existing contracts, and CORS preserves representation Vary headers. Includes generator, runtime auth and cache-header regressions.
|
|
6
|
+
|
|
7
|
+
Add optional typed resourceRoutes and strict mergeRouteMaps composition, preserving native Bun routing and app-owned middleware. Add explicit ViewRenderer.namespace prefixes with unchanged layout/Response/HTMX contracts; generated auth controllers use the namespace. Includes native HTTP, compile-time, rendering isolation and generator regressions.
|
|
8
|
+
|
|
9
|
+
## 2.2.13
|
|
10
|
+
|
|
11
|
+
- Improve view rendering and better htmx support
|
|
12
|
+
|
|
3
13
|
## 2.2.12
|
|
4
14
|
|
|
5
15
|
- Require Bun >=1.4.3; align CI, generated/existing example runtime pins and Docker stages to 1.4.3, with bun-types >=1.4.3 behind the official @types/bun shim.
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import type { WebLayoutDataOptions } from "@getstrata/core/view";
|
|
1
2
|
import type { ServiceProvider } from "../contracts";
|
|
2
3
|
declare const CORE_VIEW_TOKEN = "core.view";
|
|
3
4
|
declare const VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
|
|
5
|
+
interface ViewProviderOptions {
|
|
6
|
+
directory?: string;
|
|
7
|
+
layout?: string | false;
|
|
8
|
+
data?: WebLayoutDataOptions;
|
|
9
|
+
}
|
|
10
|
+
/** Per-app view configuration for generated and custom bootstraps. */
|
|
11
|
+
declare function createViewProvider(options?: ViewProviderOptions): ServiceProvider;
|
|
4
12
|
declare const viewProvider: ServiceProvider;
|
|
5
|
-
export {
|
|
13
|
+
export type { ViewProviderOptions };
|
|
14
|
+
export { CORE_VIEW_TOKEN, createViewProvider, VIEW_DIRECTORY_CONFIG_KEY, viewProvider };
|
package/dist/entries/context.js
CHANGED
|
@@ -835,15 +835,35 @@ import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
|
|
|
835
835
|
import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
|
|
836
836
|
import { isViewsEnabled } from "@getstrata/core/runtime/frontendMode";
|
|
837
837
|
import {
|
|
838
|
+
CORE_VIEW_RENDERER_TOKEN,
|
|
838
839
|
configureWebErrorView,
|
|
839
840
|
configureWebLayoutData,
|
|
841
|
+
createWebLayoutDataResolver,
|
|
840
842
|
DEFAULT_VIEWS_DIRECTORY,
|
|
841
843
|
EtaViewEngine,
|
|
842
844
|
errorTemplateName,
|
|
843
|
-
resolveWebLayoutData
|
|
845
|
+
resolveWebLayoutData,
|
|
846
|
+
ViewRenderer
|
|
844
847
|
} from "@getstrata/core/view";
|
|
845
848
|
var CORE_VIEW_TOKEN = "core.view";
|
|
846
849
|
var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
|
|
850
|
+
function createViewProvider(options = {}) {
|
|
851
|
+
const directory = options.directory;
|
|
852
|
+
const layout = options.layout;
|
|
853
|
+
const data = { ...options.data };
|
|
854
|
+
return {
|
|
855
|
+
name: "view",
|
|
856
|
+
register({ container, config }) {
|
|
857
|
+
if (!isViewsEnabled())
|
|
858
|
+
return;
|
|
859
|
+
const viewsDirectory = directory ?? (process.env.VIEW_DIRECTORY?.trim() || DEFAULT_VIEWS_DIRECTORY);
|
|
860
|
+
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
861
|
+
const engine = new EtaViewEngine(viewsDirectory, createWebLayoutDataResolver(container, data));
|
|
862
|
+
container.set(CORE_VIEW_TOKEN, engine);
|
|
863
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine, layout));
|
|
864
|
+
}
|
|
865
|
+
};
|
|
866
|
+
}
|
|
847
867
|
var viewProvider = {
|
|
848
868
|
name: "view",
|
|
849
869
|
register({ container, config }) {
|
|
@@ -854,6 +874,7 @@ var viewProvider = {
|
|
|
854
874
|
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
855
875
|
const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
|
|
856
876
|
container.set(CORE_VIEW_TOKEN, engine);
|
|
877
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine));
|
|
857
878
|
configureWebLayoutData({
|
|
858
879
|
extra: async () => ({
|
|
859
880
|
appName: appDisplayName(),
|
|
@@ -835,15 +835,35 @@ import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
|
|
|
835
835
|
import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
|
|
836
836
|
import { isViewsEnabled } from "@getstrata/core/runtime/frontendMode";
|
|
837
837
|
import {
|
|
838
|
+
CORE_VIEW_RENDERER_TOKEN,
|
|
838
839
|
configureWebErrorView,
|
|
839
840
|
configureWebLayoutData,
|
|
841
|
+
createWebLayoutDataResolver,
|
|
840
842
|
DEFAULT_VIEWS_DIRECTORY,
|
|
841
843
|
EtaViewEngine,
|
|
842
844
|
errorTemplateName,
|
|
843
|
-
resolveWebLayoutData
|
|
845
|
+
resolveWebLayoutData,
|
|
846
|
+
ViewRenderer
|
|
844
847
|
} from "@getstrata/core/view";
|
|
845
848
|
var CORE_VIEW_TOKEN = "core.view";
|
|
846
849
|
var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
|
|
850
|
+
function createViewProvider(options = {}) {
|
|
851
|
+
const directory = options.directory;
|
|
852
|
+
const layout = options.layout;
|
|
853
|
+
const data = { ...options.data };
|
|
854
|
+
return {
|
|
855
|
+
name: "view",
|
|
856
|
+
register({ container, config }) {
|
|
857
|
+
if (!isViewsEnabled())
|
|
858
|
+
return;
|
|
859
|
+
const viewsDirectory = directory ?? (process.env.VIEW_DIRECTORY?.trim() || DEFAULT_VIEWS_DIRECTORY);
|
|
860
|
+
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
861
|
+
const engine = new EtaViewEngine(viewsDirectory, createWebLayoutDataResolver(container, data));
|
|
862
|
+
container.set(CORE_VIEW_TOKEN, engine);
|
|
863
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine, layout));
|
|
864
|
+
}
|
|
865
|
+
};
|
|
866
|
+
}
|
|
847
867
|
var viewProvider = {
|
|
848
868
|
name: "view",
|
|
849
869
|
register({ container, config }) {
|
|
@@ -854,6 +874,7 @@ var viewProvider = {
|
|
|
854
874
|
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
855
875
|
const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
|
|
856
876
|
container.set(CORE_VIEW_TOKEN, engine);
|
|
877
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine));
|
|
857
878
|
configureWebLayoutData({
|
|
858
879
|
extra: async () => ({
|
|
859
880
|
appName: appDisplayName(),
|
|
@@ -4,15 +4,35 @@ import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
|
|
|
4
4
|
import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
|
|
5
5
|
import { isViewsEnabled } from "@getstrata/core/runtime/frontendMode";
|
|
6
6
|
import {
|
|
7
|
+
CORE_VIEW_RENDERER_TOKEN,
|
|
7
8
|
configureWebErrorView,
|
|
8
9
|
configureWebLayoutData,
|
|
10
|
+
createWebLayoutDataResolver,
|
|
9
11
|
DEFAULT_VIEWS_DIRECTORY,
|
|
10
12
|
EtaViewEngine,
|
|
11
13
|
errorTemplateName,
|
|
12
|
-
resolveWebLayoutData
|
|
14
|
+
resolveWebLayoutData,
|
|
15
|
+
ViewRenderer
|
|
13
16
|
} from "@getstrata/core/view";
|
|
14
17
|
var CORE_VIEW_TOKEN = "core.view";
|
|
15
18
|
var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
|
|
19
|
+
function createViewProvider(options = {}) {
|
|
20
|
+
const directory = options.directory;
|
|
21
|
+
const layout = options.layout;
|
|
22
|
+
const data = { ...options.data };
|
|
23
|
+
return {
|
|
24
|
+
name: "view",
|
|
25
|
+
register({ container, config }) {
|
|
26
|
+
if (!isViewsEnabled())
|
|
27
|
+
return;
|
|
28
|
+
const viewsDirectory = directory ?? (process.env.VIEW_DIRECTORY?.trim() || DEFAULT_VIEWS_DIRECTORY);
|
|
29
|
+
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
30
|
+
const engine = new EtaViewEngine(viewsDirectory, createWebLayoutDataResolver(container, data));
|
|
31
|
+
container.set(CORE_VIEW_TOKEN, engine);
|
|
32
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine, layout));
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
16
36
|
var viewProvider = {
|
|
17
37
|
name: "view",
|
|
18
38
|
register({ container, config }) {
|
|
@@ -23,6 +43,7 @@ var viewProvider = {
|
|
|
23
43
|
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
24
44
|
const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
|
|
25
45
|
container.set(CORE_VIEW_TOKEN, engine);
|
|
46
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine));
|
|
26
47
|
configureWebLayoutData({
|
|
27
48
|
extra: async () => ({
|
|
28
49
|
appName: appDisplayName(),
|
|
@@ -42,5 +63,6 @@ var viewProvider = {
|
|
|
42
63
|
export {
|
|
43
64
|
CORE_VIEW_TOKEN,
|
|
44
65
|
VIEW_DIRECTORY_CONFIG_KEY,
|
|
66
|
+
createViewProvider,
|
|
45
67
|
viewProvider
|
|
46
68
|
};
|
|
@@ -820,15 +820,35 @@ import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
|
|
|
820
820
|
import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
|
|
821
821
|
import { isViewsEnabled } from "@getstrata/core/runtime/frontendMode";
|
|
822
822
|
import {
|
|
823
|
+
CORE_VIEW_RENDERER_TOKEN,
|
|
823
824
|
configureWebErrorView,
|
|
824
825
|
configureWebLayoutData,
|
|
826
|
+
createWebLayoutDataResolver,
|
|
825
827
|
DEFAULT_VIEWS_DIRECTORY,
|
|
826
828
|
EtaViewEngine,
|
|
827
829
|
errorTemplateName,
|
|
828
|
-
resolveWebLayoutData
|
|
830
|
+
resolveWebLayoutData,
|
|
831
|
+
ViewRenderer
|
|
829
832
|
} from "@getstrata/core/view";
|
|
830
833
|
var CORE_VIEW_TOKEN = "core.view";
|
|
831
834
|
var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
|
|
835
|
+
function createViewProvider(options = {}) {
|
|
836
|
+
const directory = options.directory;
|
|
837
|
+
const layout = options.layout;
|
|
838
|
+
const data = { ...options.data };
|
|
839
|
+
return {
|
|
840
|
+
name: "view",
|
|
841
|
+
register({ container, config }) {
|
|
842
|
+
if (!isViewsEnabled())
|
|
843
|
+
return;
|
|
844
|
+
const viewsDirectory = directory ?? (process.env.VIEW_DIRECTORY?.trim() || DEFAULT_VIEWS_DIRECTORY);
|
|
845
|
+
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
846
|
+
const engine = new EtaViewEngine(viewsDirectory, createWebLayoutDataResolver(container, data));
|
|
847
|
+
container.set(CORE_VIEW_TOKEN, engine);
|
|
848
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine, layout));
|
|
849
|
+
}
|
|
850
|
+
};
|
|
851
|
+
}
|
|
832
852
|
var viewProvider = {
|
|
833
853
|
name: "view",
|
|
834
854
|
register({ container, config }) {
|
|
@@ -839,6 +859,7 @@ var viewProvider = {
|
|
|
839
859
|
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
840
860
|
const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
|
|
841
861
|
container.set(CORE_VIEW_TOKEN, engine);
|
|
862
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine));
|
|
842
863
|
configureWebLayoutData({
|
|
843
864
|
extra: async () => ({
|
|
844
865
|
appName: appDisplayName(),
|
package/dist/index.js
CHANGED
|
@@ -1263,12 +1263,15 @@ import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
|
|
|
1263
1263
|
import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
|
|
1264
1264
|
import { isViewsEnabled as isViewsEnabled2 } from "@getstrata/core/runtime/frontendMode";
|
|
1265
1265
|
import {
|
|
1266
|
+
CORE_VIEW_RENDERER_TOKEN,
|
|
1266
1267
|
configureWebErrorView,
|
|
1267
1268
|
configureWebLayoutData,
|
|
1269
|
+
createWebLayoutDataResolver,
|
|
1268
1270
|
DEFAULT_VIEWS_DIRECTORY,
|
|
1269
1271
|
EtaViewEngine,
|
|
1270
1272
|
errorTemplateName,
|
|
1271
|
-
resolveWebLayoutData
|
|
1273
|
+
resolveWebLayoutData,
|
|
1274
|
+
ViewRenderer
|
|
1272
1275
|
} from "@getstrata/core/view";
|
|
1273
1276
|
var CORE_VIEW_TOKEN = "core.view";
|
|
1274
1277
|
var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
|
|
@@ -1282,6 +1285,7 @@ var viewProvider = {
|
|
|
1282
1285
|
config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
|
|
1283
1286
|
const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
|
|
1284
1287
|
container.set(CORE_VIEW_TOKEN, engine);
|
|
1288
|
+
container.set(CORE_VIEW_RENDERER_TOKEN, new ViewRenderer(engine));
|
|
1285
1289
|
configureWebLayoutData({
|
|
1286
1290
|
extra: async () => ({
|
|
1287
1291
|
appName: appDisplayName(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getstrata/bootstrap",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.14",
|
|
4
4
|
"description": "Strata application bootstrap: HttpKernel, DI, web session helpers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"access": "public"
|
|
191
191
|
},
|
|
192
192
|
"peerDependencies": {
|
|
193
|
-
"@getstrata/core": "^2.2.
|
|
193
|
+
"@getstrata/core": "^2.2.14",
|
|
194
194
|
"typescript": "^5.9.0 || ^6.0.0 || ^7.0.0"
|
|
195
195
|
},
|
|
196
196
|
"engines": {
|