@getstrata/bootstrap 0.2.52 → 0.2.54

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,14 @@
1
1
  # @getstrata/bootstrap changelog
2
2
 
3
+ ## 0.2.54
4
+
5
+ - `HttpKernel.wrapSigned()` applies `createValidateSignatureMiddleware` so HTMX routes can require a valid signed URL.
6
+
7
+ ## 0.2.53
8
+
9
+ - `registerDefaultJobs()` also registers `audit.export` (`ExportAuditLogsJob`).
10
+ - In-process `audit-export` schedule runs that job instead of calling `exportPendingAuditLogs()` inline.
11
+
3
12
  ## 0.2.52
4
13
 
5
14
  - View provider registers `configureWebErrorView` so `errors/*.eta` render through the app Eta layout. `EtaViewEngine` receives `Request` from the layout-data resolver.
@@ -20,6 +20,7 @@ declare class HttpKernel {
20
20
  wrapAbility(ability: string, handler: RouteHandler): RouteHandler;
21
21
  wrapPolicy(resource: string, action: keyof Policy, handler: RouteHandler): RouteHandler;
22
22
  wrapLogin(handler: RouteHandler): RouteHandler;
23
+ wrapSigned(handler: RouteHandler): RouteHandler;
23
24
  wrapRegister(handler: RouteHandler): RouteHandler;
24
25
  private wrapThrottle;
25
26
  }
@@ -25,6 +25,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
25
25
  import { withErrorHandling } from "@getstrata/core/http/response";
26
26
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
27
27
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
28
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
28
29
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
29
30
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
30
31
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -240,6 +241,9 @@ class HttpKernel {
240
241
  wrapLogin(handler) {
241
242
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
242
243
  }
244
+ wrapSigned(handler) {
245
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
246
+ }
243
247
  wrapRegister(handler) {
244
248
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
245
249
  }
@@ -28,6 +28,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
28
28
  import { withErrorHandling } from "@getstrata/core/http/response";
29
29
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
30
30
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
31
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
31
32
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
32
33
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
33
34
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -243,6 +244,9 @@ class HttpKernel {
243
244
  wrapLogin(handler) {
244
245
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
245
246
  }
247
+ wrapSigned(handler) {
248
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
249
+ }
246
250
  wrapRegister(handler) {
247
251
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
248
252
  }
@@ -170,7 +170,7 @@ import { validateEnv } from "@getstrata/core/config/envSchema";
170
170
 
171
171
  // ../../src/config/app.ts
172
172
  var appConfig = {
173
- name: "WorkHub",
173
+ name: process.env.APP_NAME?.trim() || "WorkHub",
174
174
  env: process.env.APP_ENV ?? "local",
175
175
  debug: (process.env.APP_DEBUG ?? "true") !== "false",
176
176
  url: process.env.APP_URL ?? "http://localhost:3000",
@@ -424,6 +424,7 @@ import {
424
424
 
425
425
  // ../../src/bootstrap/queue/defaultJobs.ts
426
426
  import { DispatchWebhookJob } from "@getstrata/core/jobs/dispatchWebhookJob";
427
+ import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
427
428
  import { InvalidateCacheTagsJob as InvalidateCacheTagsJob2 } from "@getstrata/core/jobs/invalidateCacheTagsJob";
428
429
  import { jobRegistry } from "@getstrata/core/queue/jobRegistry";
429
430
  import { resolveApplicationCache as resolveApplicationCache2 } from "@getstrata/core/runtime/applicationRegistry";
@@ -432,6 +433,7 @@ function registerDefaultJobs() {
432
433
  return new InvalidateCacheTagsJob2(resolveApplicationCache2());
433
434
  });
434
435
  jobRegistry.register("webhook.dispatch", () => new DispatchWebhookJob);
436
+ jobRegistry.register("audit.export", () => new ExportAuditLogsJob);
435
437
  }
436
438
 
437
439
  // ../../src/bootstrap/providers/queue.ts
@@ -11,7 +11,7 @@ var strata_default = __jsonParse("{\"index\":\"_.._/_.._/index.html\",\"files\":
11
11
 
12
12
  // ../../src/config/app.ts
13
13
  var appConfig = {
14
- name: "WorkHub",
14
+ name: process.env.APP_NAME?.trim() || "WorkHub",
15
15
  env: process.env.APP_ENV ?? "local",
16
16
  debug: (process.env.APP_DEBUG ?? "true") !== "false",
17
17
  url: process.env.APP_URL ?? "http://localhost:3000",
@@ -81,6 +81,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
81
81
  import { withErrorHandling } from "@getstrata/core/http/response";
82
82
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
83
83
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
84
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
84
85
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
85
86
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
86
87
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -278,6 +279,9 @@ class HttpKernel {
278
279
  wrapLogin(handler) {
279
280
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
280
281
  }
282
+ wrapSigned(handler) {
283
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
284
+ }
281
285
  wrapRegister(handler) {
282
286
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
283
287
  }
@@ -751,7 +755,7 @@ function assertScimIfMatch(request, etagSource) {
751
755
  }
752
756
 
753
757
  // ../../src/modules/scim/service.ts
754
- import { hashPassword } from "@getstrata/core/auth/password";
758
+ import { hashPassword as hashPassword3 } from "@getstrata/core/auth/password";
755
759
  import { resolveService } from "@getstrata/core/contracts/di";
756
760
  import { NotFoundError as NotFoundError4 } from "@getstrata/core/errors/http";
757
761
  import { currentTenantId as currentTenantId4 } from "@getstrata/core/tenant/tenantContext";
@@ -1013,12 +1017,12 @@ var apiTokenTable = defineTable2({
1013
1017
  });
1014
1018
 
1015
1019
  // ../../src/modules/user/authService.ts
1016
- import { verifyPassword } from "@getstrata/core/auth/password";
1017
- import { revealMfaSecret } from "@getstrata/core/crypto/mfaSecret";
1018
- import { UnauthorizedError } from "@getstrata/core/errors/http";
1020
+ import { hashPassword, verifyPassword } from "@getstrata/core/auth/password";
1021
+ import { protectMfaSecret, revealMfaSecret } from "@getstrata/core/crypto/mfaSecret";
1022
+ import { UnauthorizedError, ValidationError } from "@getstrata/core/errors/http";
1019
1023
  import { logSecurityEvent } from "@getstrata/core/security/securityEvents";
1020
1024
  import { resolveDefaultTokenExpiryDays } from "@getstrata/core/security/tokenExpiry";
1021
- import { verifyTotp } from "@getstrata/core/security/totp";
1025
+ import { buildOtpauthUrl, generateTotpSecret, verifyTotp } from "@getstrata/core/security/totp";
1022
1026
  import { currentTenantId as currentTenantId2 } from "@getstrata/core/tenant/tenantContext";
1023
1027
 
1024
1028
  // ../../src/core/auth/abilityCatalog.ts
@@ -1075,6 +1079,19 @@ var oauthIdentityTable = defineTable4({
1075
1079
  columns: ["id", "user_id", "provider", "provider_user_id", "email", "created_at"]
1076
1080
  });
1077
1081
 
1082
+ // ../../src/modules/user/passwordResetService.ts
1083
+ import { hashPassword as hashPassword2 } from "@getstrata/core/auth/password";
1084
+ import { hashApiToken } from "@getstrata/core/auth/tokenHash";
1085
+ import { repositoryConnection as db2 } from "@getstrata/core/database/repositoryConnection";
1086
+ import { ValidationError as ValidationError2 } from "@getstrata/core/errors/http";
1087
+ import { absoluteTemporarySignedUrl } from "@getstrata/core/http/signedUrl";
1088
+ import { mailer } from "@getstrata/core/mail/mailer";
1089
+ import { sendMarkdownMail } from "@getstrata/core/mail/markdownMailable";
1090
+ import { logSecurityEvent as logSecurityEvent2 } from "@getstrata/core/security/securityEvents";
1091
+ import { timingSafeCompareString } from "@getstrata/core/security/timingSafeCompare";
1092
+ var RESET_TTL_SECONDS = 60 * 60;
1093
+ var VERIFY_TTL_SECONDS = 60 * 60 * 24;
1094
+
1078
1095
  // ../../src/modules/user/repository.ts
1079
1096
  import {
1080
1097
  emailLookupForQuery,
@@ -1108,7 +1125,7 @@ var userTable = defineTable5({
1108
1125
  });
1109
1126
 
1110
1127
  // ../../src/modules/user/tokenService.ts
1111
- import { hashApiToken } from "@getstrata/core/auth/tokenHash";
1128
+ import { hashApiToken as hashApiToken2 } from "@getstrata/core/auth/tokenHash";
1112
1129
  import { ForbiddenError, NotFoundError as NotFoundError3 } from "@getstrata/core/errors/http";
1113
1130
  import { resolveDefaultTokenExpiryDays as resolveDefaultTokenExpiryDays2 } from "@getstrata/core/security/tokenExpiry";
1114
1131
 
@@ -1176,7 +1193,7 @@ class ScimService {
1176
1193
  if (!email) {
1177
1194
  throw new Error("SCIM userName or email is required.");
1178
1195
  }
1179
- const passwordHash = await hashPassword(crypto.randomUUID());
1196
+ const passwordHash = await hashPassword3(crypto.randomUUID());
1180
1197
  const user = await this.users.create({
1181
1198
  name: payload.name?.formatted ?? email.split("@")[0] ?? "SCIM User",
1182
1199
  email,
@@ -50,6 +50,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
50
50
  import { withErrorHandling } from "@getstrata/core/http/response";
51
51
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
52
52
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
53
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
53
54
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
54
55
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
55
56
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -247,6 +248,9 @@ class HttpKernel {
247
248
  wrapLogin(handler) {
248
249
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
249
250
  }
251
+ wrapSigned(handler) {
252
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
253
+ }
250
254
  wrapRegister(handler) {
251
255
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
252
256
  }
@@ -170,7 +170,7 @@ import { validateEnv } from "@getstrata/core/config/envSchema";
170
170
 
171
171
  // ../../src/config/app.ts
172
172
  var appConfig = {
173
- name: "WorkHub",
173
+ name: process.env.APP_NAME?.trim() || "WorkHub",
174
174
  env: process.env.APP_ENV ?? "local",
175
175
  debug: (process.env.APP_DEBUG ?? "true") !== "false",
176
176
  url: process.env.APP_URL ?? "http://localhost:3000",
@@ -424,6 +424,7 @@ import {
424
424
 
425
425
  // ../../src/bootstrap/queue/defaultJobs.ts
426
426
  import { DispatchWebhookJob } from "@getstrata/core/jobs/dispatchWebhookJob";
427
+ import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
427
428
  import { InvalidateCacheTagsJob as InvalidateCacheTagsJob2 } from "@getstrata/core/jobs/invalidateCacheTagsJob";
428
429
  import { jobRegistry } from "@getstrata/core/queue/jobRegistry";
429
430
  import { resolveApplicationCache as resolveApplicationCache2 } from "@getstrata/core/runtime/applicationRegistry";
@@ -432,6 +433,7 @@ function registerDefaultJobs() {
432
433
  return new InvalidateCacheTagsJob2(resolveApplicationCache2());
433
434
  });
434
435
  jobRegistry.register("webhook.dispatch", () => new DispatchWebhookJob);
436
+ jobRegistry.register("audit.export", () => new ExportAuditLogsJob);
435
437
  }
436
438
 
437
439
  // ../../src/bootstrap/providers/queue.ts
@@ -21,6 +21,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
21
21
  import { withErrorHandling } from "@getstrata/core/http/response";
22
22
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
23
23
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
24
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
24
25
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
25
26
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
26
27
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -236,6 +237,9 @@ class HttpKernel {
236
237
  wrapLogin(handler) {
237
238
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
238
239
  }
240
+ wrapSigned(handler) {
241
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
242
+ }
239
243
  wrapRegister(handler) {
240
244
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
241
245
  }
@@ -81,7 +81,7 @@ import { validateEnv } from "@getstrata/core/config/envSchema";
81
81
 
82
82
  // ../../src/config/app.ts
83
83
  var appConfig = {
84
- name: "WorkHub",
84
+ name: process.env.APP_NAME?.trim() || "WorkHub",
85
85
  env: process.env.APP_ENV ?? "local",
86
86
  debug: (process.env.APP_DEBUG ?? "true") !== "false",
87
87
  url: process.env.APP_URL ?? "http://localhost:3000",
@@ -414,6 +414,7 @@ import {
414
414
 
415
415
  // ../../src/bootstrap/queue/defaultJobs.ts
416
416
  import { DispatchWebhookJob } from "@getstrata/core/jobs/dispatchWebhookJob";
417
+ import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
417
418
  import { InvalidateCacheTagsJob as InvalidateCacheTagsJob2 } from "@getstrata/core/jobs/invalidateCacheTagsJob";
418
419
  import { jobRegistry } from "@getstrata/core/queue/jobRegistry";
419
420
  import { resolveApplicationCache as resolveApplicationCache2 } from "@getstrata/core/runtime/applicationRegistry";
@@ -422,6 +423,7 @@ function registerDefaultJobs() {
422
423
  return new InvalidateCacheTagsJob2(resolveApplicationCache2());
423
424
  });
424
425
  jobRegistry.register("webhook.dispatch", () => new DispatchWebhookJob);
426
+ jobRegistry.register("audit.export", () => new ExportAuditLogsJob);
425
427
  }
426
428
 
427
429
  // ../../src/bootstrap/providers/queue.ts
@@ -3,6 +3,7 @@ var __jsonParse = (a) => JSON.parse(a);
3
3
 
4
4
  // ../../src/bootstrap/queue/defaultJobs.ts
5
5
  import { DispatchWebhookJob } from "@getstrata/core/jobs/dispatchWebhookJob";
6
+ import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
6
7
  import { InvalidateCacheTagsJob } from "@getstrata/core/jobs/invalidateCacheTagsJob";
7
8
  import { jobRegistry } from "@getstrata/core/queue/jobRegistry";
8
9
  import { resolveApplicationCache } from "@getstrata/core/runtime/applicationRegistry";
@@ -11,6 +12,7 @@ function registerDefaultJobs() {
11
12
  return new InvalidateCacheTagsJob(resolveApplicationCache());
12
13
  });
13
14
  jobRegistry.register("webhook.dispatch", () => new DispatchWebhookJob);
15
+ jobRegistry.register("audit.export", () => new ExportAuditLogsJob);
14
16
  }
15
17
  export {
16
18
  registerDefaultJobs
@@ -2,7 +2,7 @@
2
2
  var __jsonParse = (a) => JSON.parse(a);
3
3
 
4
4
  // ../../src/bootstrap/schedule.ts
5
- import { exportPendingAuditLogs } from "@getstrata/core/audit/exportAuditLogs";
5
+ import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
6
6
  import { appLogger } from "@getstrata/core/logging/logger";
7
7
  import { appSchedule } from "@getstrata/core/scheduler/schedule";
8
8
 
@@ -36,10 +36,7 @@ appSchedule.command("* * * * *", "audit-export", async () => {
36
36
  return;
37
37
  }
38
38
  try {
39
- const exported = await exportPendingAuditLogs();
40
- if (exported > 0) {
41
- appLogger.info(`Exported ${exported} audit log entries to SIEM.`);
42
- }
39
+ await new ExportAuditLogsJob().handle({});
43
40
  } catch (error) {
44
41
  appLogger.error("Audit export failed.", { error: String(error) });
45
42
  }
@@ -30,6 +30,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
30
30
  import { withErrorHandling } from "@getstrata/core/http/response";
31
31
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
32
32
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
33
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
33
34
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
34
35
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
35
36
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -245,6 +246,9 @@ class HttpKernel {
245
246
  wrapLogin(handler) {
246
247
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
247
248
  }
249
+ wrapSigned(handler) {
250
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
251
+ }
248
252
  wrapRegister(handler) {
249
253
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
250
254
  }
package/dist/index.js CHANGED
@@ -38,6 +38,7 @@ import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebA
38
38
  import { withErrorHandling } from "@getstrata/core/http/response";
39
39
  import { withMiddleware } from "@getstrata/core/http/routeMiddleware";
40
40
  import { createSecurityHeadersMiddleware } from "@getstrata/core/http/securityHeadersMiddleware";
41
+ import { createValidateSignatureMiddleware } from "@getstrata/core/http/signedUrl";
41
42
  import { createThrottleMiddleware } from "@getstrata/core/http/throttleMiddleware";
42
43
  import { createRequestLoggingMiddleware } from "@getstrata/core/logging/requestLoggingMiddleware";
43
44
  import { isPublicReadsEnabled } from "@getstrata/core/security/publicReads";
@@ -249,6 +250,9 @@ class HttpKernel {
249
250
  wrapLogin(handler) {
250
251
  return this.wrapThrottle("login", resolveLoginRateLimit(), handler);
251
252
  }
253
+ wrapSigned(handler) {
254
+ return withMiddleware(createValidateSignatureMiddleware())(handler);
255
+ }
252
256
  wrapRegister(handler) {
253
257
  return this.wrapThrottle("register", resolveRegisterRateLimit(), handler);
254
258
  }
@@ -531,7 +535,7 @@ import { validateEnv } from "@getstrata/core/config/envSchema";
531
535
 
532
536
  // ../../src/config/app.ts
533
537
  var appConfig = {
534
- name: "WorkHub",
538
+ name: process.env.APP_NAME?.trim() || "WorkHub",
535
539
  env: process.env.APP_ENV ?? "local",
536
540
  debug: (process.env.APP_DEBUG ?? "true") !== "false",
537
541
  url: process.env.APP_URL ?? "http://localhost:3000",
@@ -770,6 +774,7 @@ import {
770
774
 
771
775
  // ../../src/bootstrap/queue/defaultJobs.ts
772
776
  import { DispatchWebhookJob } from "@getstrata/core/jobs/dispatchWebhookJob";
777
+ import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
773
778
  import { InvalidateCacheTagsJob as InvalidateCacheTagsJob2 } from "@getstrata/core/jobs/invalidateCacheTagsJob";
774
779
  import { jobRegistry } from "@getstrata/core/queue/jobRegistry";
775
780
  import { resolveApplicationCache as resolveApplicationCache2 } from "@getstrata/core/runtime/applicationRegistry";
@@ -778,6 +783,7 @@ function registerDefaultJobs() {
778
783
  return new InvalidateCacheTagsJob2(resolveApplicationCache2());
779
784
  });
780
785
  jobRegistry.register("webhook.dispatch", () => new DispatchWebhookJob);
786
+ jobRegistry.register("audit.export", () => new ExportAuditLogsJob);
781
787
  }
782
788
 
783
789
  // ../../src/bootstrap/providers/queue.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getstrata/bootstrap",
3
- "version": "0.2.52",
3
+ "version": "0.2.54",
4
4
  "description": "Strata application bootstrap — HttpKernel, DI, web session helpers",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -173,14 +173,14 @@
173
173
  "build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta --external @getstrata/core",
174
174
  "build:types": "tsc -p tsconfig.types.json && bun ../../scripts/prune-bootstrap-dist-types.ts",
175
175
  "prepublishOnly": "bun run build",
176
- "build:subpaths": "bun build entries/applicationRegistry.ts entries/buildModuleRoutes.ts entries/buildWebModuleRoutes.ts entries/cache/modelCacheTags.ts entries/config.ts entries/context.ts entries/contracts.ts entries/createWebRoutes.ts entries/createRoutes.ts entries/createSpaRoutes.ts entries/dependencies.ts entries/discoverModules.ts entries/health.ts entries/http/securedRouteModelBinding.ts entries/httpKernel.ts entries/listeners/invalidateCacheOnModelWrite.ts entries/membershipService.ts entries/metricsRoutes.ts entries/queue/defaultJobs.ts entries/providers.ts entries/providers/view.ts entries/routeRegistry.ts entries/schedule.ts entries/secretsGuard.ts entries/web/forms.ts entries/web/routing.ts entries/web/server.ts entries/web/session.ts entries/web/slug.ts --outdir dist --root . --target bun --external bun --external eta --external @getstrata/core --external @getstrata/bootstrap --external @getstrata/bootstrap/applicationRegistry --external @getstrata/bootstrap/buildModuleRoutes --external @getstrata/bootstrap/buildWebModuleRoutes --external @getstrata/bootstrap/cache/modelCacheTags --external @getstrata/bootstrap/config --external @getstrata/bootstrap/context --external @getstrata/bootstrap/contracts --external @getstrata/bootstrap/createWebRoutes --external @getstrata/bootstrap/createRoutes --external @getstrata/bootstrap/createSpaRoutes --external @getstrata/bootstrap/dependencies --external @getstrata/bootstrap/discoverModules --external @getstrata/bootstrap/health --external @getstrata/bootstrap/http/securedRouteModelBinding --external @getstrata/bootstrap/httpKernel --external @getstrata/bootstrap/listeners/invalidateCacheOnModelWrite --external @getstrata/bootstrap/membershipService --external @getstrata/bootstrap/metricsRoutes --external @getstrata/bootstrap/queue/defaultJobs --external @getstrata/bootstrap/providers --external @getstrata/bootstrap/providers/view --external @getstrata/bootstrap/routeRegistry --external @getstrata/bootstrap/schedule --external @getstrata/bootstrap/secretsGuard --external @getstrata/bootstrap/web/forms --external @getstrata/bootstrap/web/routing --external @getstrata/bootstrap/web/server --external @getstrata/bootstrap/web/session --external @getstrata/bootstrap/web/slug --external @getstrata/core/auth/accessControl --external @getstrata/core/auth/abilityChecker --external @getstrata/core/auth/authContext --external @getstrata/core/auth/guard --external @getstrata/core/auth/membershipContext --external @getstrata/core/auth/membershipMiddleware --external @getstrata/core/auth/membershipScope --external @getstrata/core/auth/membershipService --external @getstrata/core/auth/oauth/oidcProvider --external @getstrata/core/auth/oauth/providers --external @getstrata/core/auth/oauth/samlProvider --external @getstrata/core/auth/oauth/types --external @getstrata/core/auth/password --external @getstrata/core/auth/policy --external @getstrata/core/auth/scimAuthMiddleware --external @getstrata/core/auth/sessionCookie --external @getstrata/core/auth/sessionGuard --external @getstrata/core/auth/tokenHash --external @getstrata/core/audit/exportAuditLogs --external @getstrata/core/audit/siemFormatter --external @getstrata/core/admin/formatValue --external @getstrata/core/admin/registry --external @getstrata/core/admin/types --external @getstrata/core/cache/tags --external @getstrata/core/cache/createCacheStore --external @getstrata/core/cache/repository --external @getstrata/core/cache/simpleCache --external @getstrata/core/cache/simpleCacheStore --external @getstrata/core/config/envSchema --external @getstrata/core/contracts/serviceTokens --external @getstrata/core/contracts/container --external @getstrata/core/contracts/di --external @getstrata/core/crypto/fieldEncryption --external @getstrata/core/crypto/mfaSecret --external @getstrata/core/database --external @getstrata/core/database/baseRepository --external @getstrata/core/database/bindConnection --external @getstrata/core/database/boundConnection --external @getstrata/core/database/bunSql --external @getstrata/core/database/connection --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/errors --external @getstrata/core/database/factory --external @getstrata/core/database/migrations --external @getstrata/core/database/migrations/types --external @getstrata/core/database/model --external @getstrata/core/database/query --external @getstrata/core/database/relationships --external @getstrata/core/database/repositoryConnection --external @getstrata/core/database/repositoryQuery --external @getstrata/core/database/seeders --external @getstrata/core/database/seeders/types --external @getstrata/core/database/schema --external @getstrata/core/database/table --external @getstrata/core/database/transaction --external @getstrata/core/database/types --external @getstrata/core/database/whereBuilder --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/facades --external @getstrata/core/http --external @getstrata/core/http/authMiddleware --external @getstrata/core/http/authorizeMiddleware --external @getstrata/core/http/bodySizeLimitMiddleware --external @getstrata/core/http/clientIp --external @getstrata/core/http/cookies --external @getstrata/core/http/contentNegotiation --external @getstrata/core/http/contentSecurityPolicy --external @getstrata/core/http/conditionalResponse --external @getstrata/core/http/corsMiddleware --external @getstrata/core/http/csrfMiddleware --external @getstrata/core/http/csrfProtection --external @getstrata/core/http/csrfToken --external @getstrata/core/http/etag --external @getstrata/core/http/flashSession --external @getstrata/core/http/flashMiddleware --external @getstrata/core/http/formRequest --external @getstrata/core/http/middleware --external @getstrata/core/http/metricsMiddleware --external @getstrata/core/http/loginThrottleMiddleware --external @getstrata/core/http/memoryThrottleMiddleware --external @getstrata/core/http/pagination --external @getstrata/core/http/parseFormBody --external @getstrata/core/http/parseMultipartUpload --external @getstrata/core/http/requireAbilityMiddleware --external @getstrata/core/http/requireAuthMiddleware --external @getstrata/core/http/requireGlobalAdminMiddleware --external @getstrata/core/http/requireWebAuthMiddleware --external @getstrata/core/http/resources --external @getstrata/core/http/response --external @getstrata/core/http/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/safeInternalPath --external @getstrata/core/http/scimThrottleMiddleware --external @getstrata/core/http/securityHeadersMiddleware --external @getstrata/core/http/securedRouteModelBinding --external @getstrata/core/http/requestMetaContext --external @getstrata/core/http/webErrorResponse --external @getstrata/core/http/webFormRequest --external @getstrata/core/http/throttleMiddleware --external @getstrata/core/http/validation --external @getstrata/core/jobs/dispatchWebhookJob --external @getstrata/core/jobs/invalidateCacheTagsJob --external @getstrata/core/lifecycle/gracefulShutdown --external @getstrata/core/logging/logger --external @getstrata/core/logging/requestLoggingMiddleware --external @getstrata/core/mail/mailer --external @getstrata/core/mail/markdownMail --external @getstrata/core/mail/markdownMailable --external @getstrata/core/media/imageTransform --external @getstrata/core/metrics/prometheus --external @getstrata/core/notifications --external @getstrata/core/openapi/generator --external @getstrata/core/openapi/registeredRoute --external @getstrata/core/openapi/validate --external @getstrata/core/pagination --external @getstrata/core/queue --external @getstrata/core/queue/createAppQueue --external @getstrata/core/queue/failedJobRepository --external @getstrata/core/queue/failedJobService --external @getstrata/core/queue/jobRegistry --external @getstrata/core/queue/jobRunner --external @getstrata/core/queue/queueMetrics --external @getstrata/core/queue/publicQueue --external @getstrata/core/queue/redisQueue --external @getstrata/core/queue/types --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/runtime/asyncContextStore --external @getstrata/core/scheduler/schedule --external @getstrata/core/scheduler/osCron --external @getstrata/core/security/oauthState --external @getstrata/core/security/publicReads --external @getstrata/core/security/safeFetch --external @getstrata/core/security/safeUrl --external @getstrata/core/security/scimTenantTokens --external @getstrata/core/security/securityEvents --external @getstrata/core/security/stripeWebhook --external @getstrata/core/security/timingSafeCompare --external @getstrata/core/security/tokenExpiry --external @getstrata/core/security/totp --external @getstrata/core/storage/storage --external @getstrata/core/tenant/tenancyConfig --external @getstrata/core/tenant/tenantContext --external @getstrata/core/tenant/tenantDatabaseScope --external @getstrata/core/tenant/databaseTenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/terminal/runShell --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
176
+ "build:subpaths": "bun build entries/applicationRegistry.ts entries/buildModuleRoutes.ts entries/buildWebModuleRoutes.ts entries/cache/modelCacheTags.ts entries/config.ts entries/context.ts entries/contracts.ts entries/createWebRoutes.ts entries/createRoutes.ts entries/createSpaRoutes.ts entries/dependencies.ts entries/discoverModules.ts entries/health.ts entries/http/securedRouteModelBinding.ts entries/httpKernel.ts entries/listeners/invalidateCacheOnModelWrite.ts entries/membershipService.ts entries/metricsRoutes.ts entries/queue/defaultJobs.ts entries/providers.ts entries/providers/view.ts entries/routeRegistry.ts entries/schedule.ts entries/secretsGuard.ts entries/web/forms.ts entries/web/routing.ts entries/web/server.ts entries/web/session.ts entries/web/slug.ts --outdir dist --root . --target bun --external bun --external eta --external @getstrata/core --external @getstrata/bootstrap --external @getstrata/bootstrap/applicationRegistry --external @getstrata/bootstrap/buildModuleRoutes --external @getstrata/bootstrap/buildWebModuleRoutes --external @getstrata/bootstrap/cache/modelCacheTags --external @getstrata/bootstrap/config --external @getstrata/bootstrap/context --external @getstrata/bootstrap/contracts --external @getstrata/bootstrap/createWebRoutes --external @getstrata/bootstrap/createRoutes --external @getstrata/bootstrap/createSpaRoutes --external @getstrata/bootstrap/dependencies --external @getstrata/bootstrap/discoverModules --external @getstrata/bootstrap/health --external @getstrata/bootstrap/http/securedRouteModelBinding --external @getstrata/bootstrap/httpKernel --external @getstrata/bootstrap/listeners/invalidateCacheOnModelWrite --external @getstrata/bootstrap/membershipService --external @getstrata/bootstrap/metricsRoutes --external @getstrata/bootstrap/queue/defaultJobs --external @getstrata/bootstrap/providers --external @getstrata/bootstrap/providers/view --external @getstrata/bootstrap/routeRegistry --external @getstrata/bootstrap/schedule --external @getstrata/bootstrap/secretsGuard --external @getstrata/bootstrap/web/forms --external @getstrata/bootstrap/web/routing --external @getstrata/bootstrap/web/server --external @getstrata/bootstrap/web/session --external @getstrata/bootstrap/web/slug --external @getstrata/core/auth/accessControl --external @getstrata/core/auth/abilityChecker --external @getstrata/core/auth/authContext --external @getstrata/core/auth/guard --external @getstrata/core/auth/membershipContext --external @getstrata/core/auth/membershipMiddleware --external @getstrata/core/auth/membershipScope --external @getstrata/core/auth/membershipService --external @getstrata/core/auth/oauth/oidcProvider --external @getstrata/core/auth/oauth/providers --external @getstrata/core/auth/oauth/samlProvider --external @getstrata/core/auth/oauth/types --external @getstrata/core/auth/password --external @getstrata/core/auth/policy --external @getstrata/core/auth/scimAuthMiddleware --external @getstrata/core/auth/sessionCookie --external @getstrata/core/auth/sessionGuard --external @getstrata/core/auth/tokenHash --external @getstrata/core/audit/exportAuditLogs --external @getstrata/core/audit/siemFormatter --external @getstrata/core/admin/formatValue --external @getstrata/core/admin/registry --external @getstrata/core/admin/types --external @getstrata/core/cache/tags --external @getstrata/core/cache/createCacheStore --external @getstrata/core/cache/repository --external @getstrata/core/cache/simpleCache --external @getstrata/core/cache/simpleCacheStore --external @getstrata/core/config/envSchema --external @getstrata/core/contracts/serviceTokens --external @getstrata/core/contracts/container --external @getstrata/core/contracts/di --external @getstrata/core/crypto/fieldEncryption --external @getstrata/core/crypto/mfaSecret --external @getstrata/core/database --external @getstrata/core/database/baseRepository --external @getstrata/core/database/bindConnection --external @getstrata/core/database/boundConnection --external @getstrata/core/database/bunSql --external @getstrata/core/database/connection --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/errors --external @getstrata/core/database/factory --external @getstrata/core/database/migrations --external @getstrata/core/database/migrations/types --external @getstrata/core/database/model --external @getstrata/core/database/query --external @getstrata/core/database/relationships --external @getstrata/core/database/repositoryConnection --external @getstrata/core/database/repositoryQuery --external @getstrata/core/database/seeders --external @getstrata/core/database/seeders/types --external @getstrata/core/database/schema --external @getstrata/core/database/table --external @getstrata/core/database/transaction --external @getstrata/core/database/types --external @getstrata/core/database/whereBuilder --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/facades --external @getstrata/core/http --external @getstrata/core/http/authMiddleware --external @getstrata/core/http/authorizeMiddleware --external @getstrata/core/http/bodySizeLimitMiddleware --external @getstrata/core/http/clientIp --external @getstrata/core/http/cookies --external @getstrata/core/http/contentNegotiation --external @getstrata/core/http/contentSecurityPolicy --external @getstrata/core/http/conditionalResponse --external @getstrata/core/http/corsMiddleware --external @getstrata/core/http/csrfMiddleware --external @getstrata/core/http/csrfProtection --external @getstrata/core/http/csrfToken --external @getstrata/core/http/etag --external @getstrata/core/http/flashSession --external @getstrata/core/http/flashMiddleware --external @getstrata/core/http/formRequest --external @getstrata/core/http/middleware --external @getstrata/core/http/metricsMiddleware --external @getstrata/core/http/loginThrottleMiddleware --external @getstrata/core/http/memoryThrottleMiddleware --external @getstrata/core/http/pagination --external @getstrata/core/http/parseFormBody --external @getstrata/core/http/parseMultipartUpload --external @getstrata/core/http/requireAbilityMiddleware --external @getstrata/core/http/requireAuthMiddleware --external @getstrata/core/http/requireGlobalAdminMiddleware --external @getstrata/core/http/requireWebAuthMiddleware --external @getstrata/core/http/resources --external @getstrata/core/http/response --external @getstrata/core/http/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/safeInternalPath --external @getstrata/core/http/signedUrl --external @getstrata/core/http/scimThrottleMiddleware --external @getstrata/core/http/securityHeadersMiddleware --external @getstrata/core/http/securedRouteModelBinding --external @getstrata/core/http/requestMetaContext --external @getstrata/core/http/webErrorResponse --external @getstrata/core/http/webFormRequest --external @getstrata/core/http/throttleMiddleware --external @getstrata/core/http/validation --external @getstrata/core/jobs/dispatchWebhookJob --external @getstrata/core/jobs/exportAuditLogsJob --external @getstrata/core/jobs/invalidateCacheTagsJob --external @getstrata/core/lifecycle/gracefulShutdown --external @getstrata/core/logging/logger --external @getstrata/core/logging/requestLoggingMiddleware --external @getstrata/core/mail/mailer --external @getstrata/core/mail/markdownMail --external @getstrata/core/mail/markdownMailable --external @getstrata/core/mail/sanitizeMailHtml --external @getstrata/core/media/imageTransform --external @getstrata/core/metrics/prometheus --external @getstrata/core/notifications --external @getstrata/core/openapi/generator --external @getstrata/core/openapi/registeredRoute --external @getstrata/core/openapi/validate --external @getstrata/core/pagination --external @getstrata/core/queue --external @getstrata/core/queue/createAppQueue --external @getstrata/core/queue/failedJobRepository --external @getstrata/core/queue/failedJobService --external @getstrata/core/queue/jobRegistry --external @getstrata/core/queue/jobRunner --external @getstrata/core/queue/queueMetrics --external @getstrata/core/queue/publicQueue --external @getstrata/core/queue/redisQueue --external @getstrata/core/queue/types --external @getstrata/core/runtime/appKeyPrefix --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/runtime/asyncContextStore --external @getstrata/core/scheduler/schedule --external @getstrata/core/scheduler/osCron --external @getstrata/core/security/oauthState --external @getstrata/core/security/publicReads --external @getstrata/core/security/safeFetch --external @getstrata/core/security/safeUrl --external @getstrata/core/security/scimTenantTokens --external @getstrata/core/security/securityEvents --external @getstrata/core/security/stripeWebhook --external @getstrata/core/security/timingSafeCompare --external @getstrata/core/security/tokenExpiry --external @getstrata/core/security/totp --external @getstrata/core/storage/storage --external @getstrata/core/tenant/tenancyConfig --external @getstrata/core/tenant/tenantContext --external @getstrata/core/tenant/tenantDatabaseScope --external @getstrata/core/tenant/databaseTenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/terminal/runShell --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
177
177
  "build:shims": "true"
178
178
  },
179
179
  "publishConfig": {
180
180
  "access": "public"
181
181
  },
182
182
  "peerDependencies": {
183
- "@getstrata/core": "^0.5.61",
183
+ "@getstrata/core": "^0.5.66",
184
184
  "typescript": "^5.9.0"
185
185
  }
186
186
  }