@getstrata/bootstrap 2.0.2 → 2.0.3

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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # @getstrata/bootstrap changelog
2
2
 
3
+ ## 2.0.3
4
+
5
+ - Persist transactional events with leased tenant-aware SQL outbox workers
6
+
3
7
  ## 2.0.2
4
8
 
5
9
  - Adopt TypeScript 7.0.2 in framework and generated apps; preserve tested TypeScript 5.9 and 6.x consumer compatibility.
@@ -7,7 +7,7 @@ type WebGuestHome = string | ((user: AuthUser) => string | Promise<string>);
7
7
  declare class HttpKernel {
8
8
  private readonly dependencies;
9
9
  constructor(dependencies: AppDependencies);
10
- globalMiddleware(): Middleware[];
10
+ globalMiddleware(errorFormat?: "json" | "web"): Middleware[];
11
11
  group(name: MiddlewareGroupName): Middleware[];
12
12
  wrap(groups: MiddlewareGroupName | MiddlewareGroupName[], handler: RouteHandler): RouteHandler;
13
13
  wrapApi(handler: RouteHandler): RouteHandler;
@@ -2,7 +2,6 @@
2
2
  // ../../src/bootstrap/buildModuleRoutes.ts
3
3
  import { conditionalJsonResponse } from "@getstrata/core/http/conditionalResponse";
4
4
  import { applyMiddlewareToRoutes } from "@getstrata/core/http/middleware";
5
- import { createJsonErrorMiddleware } from "@getstrata/core/http/response";
6
5
 
7
6
  // ../../src/bootstrap/httpKernel.ts
8
7
  import {
@@ -27,7 +26,12 @@ import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/require
27
26
  import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
28
27
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
29
28
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
30
- import { withErrorHandling, withJsonErrorHandling } from "@getstrata/core/http/response";
29
+ import {
30
+ createJsonErrorMiddleware,
31
+ createWebErrorMiddleware,
32
+ withErrorHandling,
33
+ withJsonErrorHandling
34
+ } from "@getstrata/core/http/response";
31
35
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
32
36
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
33
37
  import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
@@ -116,7 +120,7 @@ class HttpKernel {
116
120
  constructor(dependencies) {
117
121
  this.dependencies = dependencies;
118
122
  }
119
- globalMiddleware() {
123
+ globalMiddleware(errorFormat = "json") {
120
124
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
121
125
  return [
122
126
  createCorsMiddleware(),
@@ -126,6 +130,7 @@ class HttpKernel {
126
130
  createMetricsMiddleware(),
127
131
  createRequestLoggingMiddleware(),
128
132
  requestIdMiddleware,
133
+ errorFormat === "json" ? createJsonErrorMiddleware() : createWebErrorMiddleware(),
129
134
  createAuthMiddleware(auth),
130
135
  createMembershipMiddleware(),
131
136
  createTenantMiddleware()
@@ -454,11 +459,7 @@ function buildModuleRoutes(dependencies, options = {}) {
454
459
  routeRegistry.clear();
455
460
  }
456
461
  const kernel = createHttpKernel(dependencies);
457
- const middleware = [
458
- ...kernel.globalMiddleware(),
459
- createJsonErrorMiddleware(),
460
- ...kernel.group("api")
461
- ];
462
+ const middleware = [...kernel.globalMiddleware(), ...kernel.group("api")];
462
463
  const cachedJson = createCachedJson(dependencies);
463
464
  const moduleRoutes = {};
464
465
  for (const module of modules) {
@@ -5,7 +5,6 @@ import { applyMiddlewareToRoutes as applyMiddlewareToRoutes2 } from "@getstrata/
5
5
  // ../../src/bootstrap/buildModuleRoutes.ts
6
6
  import { conditionalJsonResponse } from "@getstrata/core/http/conditionalResponse";
7
7
  import { applyMiddlewareToRoutes } from "@getstrata/core/http/middleware";
8
- import { createJsonErrorMiddleware } from "@getstrata/core/http/response";
9
8
 
10
9
  // ../../src/bootstrap/httpKernel.ts
11
10
  import {
@@ -30,7 +29,12 @@ import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/require
30
29
  import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
31
30
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
32
31
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
33
- import { withErrorHandling, withJsonErrorHandling } from "@getstrata/core/http/response";
32
+ import {
33
+ createJsonErrorMiddleware,
34
+ createWebErrorMiddleware,
35
+ withErrorHandling,
36
+ withJsonErrorHandling
37
+ } from "@getstrata/core/http/response";
34
38
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
35
39
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
36
40
  import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
@@ -119,7 +123,7 @@ class HttpKernel {
119
123
  constructor(dependencies) {
120
124
  this.dependencies = dependencies;
121
125
  }
122
- globalMiddleware() {
126
+ globalMiddleware(errorFormat = "json") {
123
127
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
124
128
  return [
125
129
  createCorsMiddleware(),
@@ -129,6 +133,7 @@ class HttpKernel {
129
133
  createMetricsMiddleware(),
130
134
  createRequestLoggingMiddleware(),
131
135
  requestIdMiddleware,
136
+ errorFormat === "json" ? createJsonErrorMiddleware() : createWebErrorMiddleware(),
132
137
  createAuthMiddleware(auth),
133
138
  createMembershipMiddleware(),
134
139
  createTenantMiddleware()
@@ -457,11 +462,7 @@ function buildModuleRoutes(dependencies, options = {}) {
457
462
  routeRegistry.clear();
458
463
  }
459
464
  const kernel = createHttpKernel(dependencies);
460
- const middleware = [
461
- ...kernel.globalMiddleware(),
462
- createJsonErrorMiddleware(),
463
- ...kernel.group("api")
464
- ];
465
+ const middleware = [...kernel.globalMiddleware(), ...kernel.group("api")];
465
466
  const cachedJson = createCachedJson(dependencies);
466
467
  const moduleRoutes = {};
467
468
  for (const module of modules) {
@@ -481,7 +482,7 @@ function buildWebModuleRoutes(dependencies, options = {}) {
481
482
  routeRegistry.clear();
482
483
  }
483
484
  const kernel = createHttpKernel(dependencies);
484
- const middleware = kernel.globalMiddleware();
485
+ const middleware = kernel.globalMiddleware("web");
485
486
  const moduleRoutes = { ...seedRoutes };
486
487
  for (const module of modules) {
487
488
  if (!module.webRoutes) {
@@ -11,7 +11,6 @@ import { applyMiddlewareToRoutes as applyMiddlewareToRoutes2 } from "@getstrata/
11
11
  // ../../src/bootstrap/buildModuleRoutes.ts
12
12
  import { conditionalJsonResponse } from "@getstrata/core/http/conditionalResponse";
13
13
  import { applyMiddlewareToRoutes } from "@getstrata/core/http/middleware";
14
- import { createJsonErrorMiddleware } from "@getstrata/core/http/response";
15
14
 
16
15
  // ../../src/bootstrap/httpKernel.ts
17
16
  import {
@@ -36,7 +35,12 @@ import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/require
36
35
  import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
37
36
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
38
37
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
39
- import { withErrorHandling, withJsonErrorHandling } from "@getstrata/core/http/response";
38
+ import {
39
+ createJsonErrorMiddleware,
40
+ createWebErrorMiddleware,
41
+ withErrorHandling,
42
+ withJsonErrorHandling
43
+ } from "@getstrata/core/http/response";
40
44
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
41
45
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
42
46
  import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
@@ -125,7 +129,7 @@ class HttpKernel {
125
129
  constructor(dependencies) {
126
130
  this.dependencies = dependencies;
127
131
  }
128
- globalMiddleware() {
132
+ globalMiddleware(errorFormat = "json") {
129
133
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
130
134
  return [
131
135
  createCorsMiddleware(),
@@ -135,6 +139,7 @@ class HttpKernel {
135
139
  createMetricsMiddleware(),
136
140
  createRequestLoggingMiddleware(),
137
141
  requestIdMiddleware,
142
+ errorFormat === "json" ? createJsonErrorMiddleware() : createWebErrorMiddleware(),
138
143
  createAuthMiddleware(auth),
139
144
  createMembershipMiddleware(),
140
145
  createTenantMiddleware()
@@ -463,11 +468,7 @@ function buildModuleRoutes(dependencies, options = {}) {
463
468
  routeRegistry.clear();
464
469
  }
465
470
  const kernel = createHttpKernel(dependencies);
466
- const middleware = [
467
- ...kernel.globalMiddleware(),
468
- createJsonErrorMiddleware(),
469
- ...kernel.group("api")
470
- ];
471
+ const middleware = [...kernel.globalMiddleware(), ...kernel.group("api")];
471
472
  const cachedJson = createCachedJson(dependencies);
472
473
  const moduleRoutes = {};
473
474
  for (const module of modules) {
@@ -487,7 +488,7 @@ function buildWebModuleRoutes(dependencies, options = {}) {
487
488
  routeRegistry.clear();
488
489
  }
489
490
  const kernel = createHttpKernel(dependencies);
490
- const middleware = kernel.globalMiddleware();
491
+ const middleware = kernel.globalMiddleware("web");
491
492
  const moduleRoutes = { ...seedRoutes };
492
493
  for (const module of modules) {
493
494
  if (!module.webRoutes) {
@@ -22,7 +22,12 @@ import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/require
22
22
  import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
23
23
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
24
24
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
25
- import { withErrorHandling, withJsonErrorHandling } from "@getstrata/core/http/response";
25
+ import {
26
+ createJsonErrorMiddleware,
27
+ createWebErrorMiddleware,
28
+ withErrorHandling,
29
+ withJsonErrorHandling
30
+ } from "@getstrata/core/http/response";
26
31
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
27
32
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
28
33
  import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
@@ -111,7 +116,7 @@ class HttpKernel {
111
116
  constructor(dependencies) {
112
117
  this.dependencies = dependencies;
113
118
  }
114
- globalMiddleware() {
119
+ globalMiddleware(errorFormat = "json") {
115
120
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
116
121
  return [
117
122
  createCorsMiddleware(),
@@ -121,6 +126,7 @@ class HttpKernel {
121
126
  createMetricsMiddleware(),
122
127
  createRequestLoggingMiddleware(),
123
128
  requestIdMiddleware,
129
+ errorFormat === "json" ? createJsonErrorMiddleware() : createWebErrorMiddleware(),
124
130
  createAuthMiddleware(auth),
125
131
  createMembershipMiddleware(),
126
132
  createTenantMiddleware()
@@ -32,7 +32,12 @@ import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/require
32
32
  import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
33
33
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
34
34
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
35
- import { withErrorHandling, withJsonErrorHandling } from "@getstrata/core/http/response";
35
+ import {
36
+ createJsonErrorMiddleware,
37
+ createWebErrorMiddleware,
38
+ withErrorHandling,
39
+ withJsonErrorHandling
40
+ } from "@getstrata/core/http/response";
36
41
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
37
42
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
38
43
  import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
@@ -121,7 +126,7 @@ class HttpKernel {
121
126
  constructor(dependencies) {
122
127
  this.dependencies = dependencies;
123
128
  }
124
- globalMiddleware() {
129
+ globalMiddleware(errorFormat = "json") {
125
130
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
126
131
  return [
127
132
  createCorsMiddleware(),
@@ -131,6 +136,7 @@ class HttpKernel {
131
136
  createMetricsMiddleware(),
132
137
  createRequestLoggingMiddleware(),
133
138
  requestIdMiddleware,
139
+ errorFormat === "json" ? createJsonErrorMiddleware() : createWebErrorMiddleware(),
134
140
  createAuthMiddleware(auth),
135
141
  createMembershipMiddleware(),
136
142
  createTenantMiddleware()
package/dist/index.js CHANGED
@@ -17,7 +17,6 @@ import {
17
17
  // ../../src/bootstrap/buildModuleRoutes.ts
18
18
  import { conditionalJsonResponse } from "@getstrata/core/http/conditionalResponse";
19
19
  import { applyMiddlewareToRoutes } from "@getstrata/core/http/middleware";
20
- import { createJsonErrorMiddleware } from "@getstrata/core/http/response";
21
20
 
22
21
  // ../../src/bootstrap/httpKernel.ts
23
22
  import {
@@ -42,7 +41,12 @@ import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/require
42
41
  import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
43
42
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
44
43
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
45
- import { withErrorHandling, withJsonErrorHandling } from "@getstrata/core/http/response";
44
+ import {
45
+ createJsonErrorMiddleware,
46
+ createWebErrorMiddleware,
47
+ withErrorHandling,
48
+ withJsonErrorHandling
49
+ } from "@getstrata/core/http/response";
46
50
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
47
51
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
48
52
  import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
@@ -130,7 +134,7 @@ class HttpKernel {
130
134
  constructor(dependencies) {
131
135
  this.dependencies = dependencies;
132
136
  }
133
- globalMiddleware() {
137
+ globalMiddleware(errorFormat = "json") {
134
138
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
135
139
  return [
136
140
  createCorsMiddleware(),
@@ -140,6 +144,7 @@ class HttpKernel {
140
144
  createMetricsMiddleware(),
141
145
  createRequestLoggingMiddleware(),
142
146
  requestIdMiddleware,
147
+ errorFormat === "json" ? createJsonErrorMiddleware() : createWebErrorMiddleware(),
143
148
  createAuthMiddleware(auth),
144
149
  createMembershipMiddleware(),
145
150
  createTenantMiddleware()
@@ -462,11 +467,7 @@ function buildModuleRoutes(dependencies, options = {}) {
462
467
  routeRegistry.clear();
463
468
  }
464
469
  const kernel = createHttpKernel(dependencies);
465
- const middleware = [
466
- ...kernel.globalMiddleware(),
467
- createJsonErrorMiddleware(),
468
- ...kernel.group("api")
469
- ];
470
+ const middleware = [...kernel.globalMiddleware(), ...kernel.group("api")];
470
471
  const cachedJson = createCachedJson(dependencies);
471
472
  const moduleRoutes = {};
472
473
  for (const module of modules) {
@@ -486,7 +487,7 @@ function buildWebModuleRoutes(dependencies, options = {}) {
486
487
  routeRegistry.clear();
487
488
  }
488
489
  const kernel = createHttpKernel(dependencies);
489
- const middleware = kernel.globalMiddleware();
490
+ const middleware = kernel.globalMiddleware("web");
490
491
  const moduleRoutes = { ...seedRoutes };
491
492
  for (const module of modules) {
492
493
  if (!module.webRoutes) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getstrata/bootstrap",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Strata application bootstrap: HttpKernel, DI, web session helpers",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -185,7 +185,7 @@
185
185
  "access": "public"
186
186
  },
187
187
  "peerDependencies": {
188
- "@getstrata/core": "^2.0.2",
188
+ "@getstrata/core": "^2.0.3",
189
189
  "typescript": "^5.9.0 || ^6.0.0 || ^7.0.0"
190
190
  },
191
191
  "engines": {