@getstrata/bootstrap 0.2.61 → 0.2.63

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/dist/index.js CHANGED
@@ -38,6 +38,7 @@ import { requestIdMiddleware } from "@getstrata/core/http/middleware";
38
38
  import { createRequireAbilityMiddleware } from "@getstrata/core/http/requireAbilityMiddleware";
39
39
  import { createRequireAuthMiddleware } from "@getstrata/core/http/requireAuthMiddleware";
40
40
  import { createRequireGlobalAdminMiddleware } from "@getstrata/core/http/requireGlobalAdminMiddleware";
41
+ import { createRequirePasswordConfirmMiddleware } from "@getstrata/core/http/requirePasswordConfirmMiddleware";
41
42
  import { createRequireVerifiedMiddleware } from "@getstrata/core/http/requireVerifiedMiddleware";
42
43
  import { createRequireWebAuthMiddleware } from "@getstrata/core/http/requireWebAuthMiddleware";
43
44
  import { withErrorHandling } from "@getstrata/core/http/response";
@@ -200,7 +201,8 @@ class HttpKernel {
200
201
  if (isEmailVerificationRequired() && !hasVerifiedEmail(user)) {
201
202
  return Response.redirect("/email/verify", 302);
202
203
  }
203
- return Response.redirect(home, 302);
204
+ const location = typeof home === "function" ? await home(user) : home;
205
+ return Response.redirect(location, 302);
204
206
  }
205
207
  return handler(request);
206
208
  });
@@ -220,6 +222,11 @@ class HttpKernel {
220
222
  wrapWebVerified(handler) {
221
223
  return this.wrapWebAuth(handler, { verified: true });
222
224
  }
225
+ wrapWebPasswordConfirm(handler) {
226
+ return this.wrapWebAuth(withMiddleware(createRequirePasswordConfirmMiddleware())(handler), {
227
+ verified: true
228
+ });
229
+ }
223
230
  wrapWebAbility(ability, handler) {
224
231
  const auth = this.dependencies.container.resolve(CORE_AUTH_TOKEN);
225
232
  const abilityChecker = resolveAbilityChecker(this.dependencies.container);
@@ -859,15 +866,160 @@ var storageProvider = {
859
866
  var storage_default = storageProvider;
860
867
 
861
868
  // ../../src/bootstrap/providers/view.ts
869
+ import { resolveMembershipLookup } from "@getstrata/core/auth/membershipContext";
862
870
  import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
871
+ import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
863
872
  import { isViewsEnabled as isViewsEnabled2 } from "@getstrata/core/runtime/frontendMode";
864
873
  import {
865
874
  configureWebErrorView,
875
+ configureWebLayoutData,
866
876
  DEFAULT_VIEWS_DIRECTORY,
867
877
  EtaViewEngine,
868
878
  errorTemplateName,
869
879
  resolveWebLayoutData
870
880
  } from "@getstrata/core/view";
881
+
882
+ // ../../src/modules/organization/repository.ts
883
+ import { BaseRepository } from "@getstrata/core/database/baseRepository";
884
+ import { NotFoundError } from "@getstrata/core/errors/http";
885
+ import { currentTenantId } from "@getstrata/core/tenant/tenantContext";
886
+
887
+ // ../../src/modules/organization/table.ts
888
+ import { defineTable } from "@getstrata/core/database/table";
889
+
890
+ // ../../src/domain/workhub.ts
891
+ var ORGANIZATION_TABLE = "organization";
892
+
893
+ // ../../src/modules/organization/table.ts
894
+ var organizationTable = defineTable({
895
+ name: ORGANIZATION_TABLE,
896
+ primaryKey: "id",
897
+ columns: ["id", "tenant_id", "name", "slug", "created_at", "updated_at", "deleted_at"],
898
+ softDeletes: true,
899
+ defaultOrderBy: { column: "id", direction: "ASC" }
900
+ });
901
+
902
+ // ../../src/modules/organization/repository.ts
903
+ class OrganizationRepository extends BaseRepository {
904
+ constructor() {
905
+ super(organizationTable);
906
+ }
907
+ async findBySlug(slug) {
908
+ return await this.firstOrNull({ slug });
909
+ }
910
+ async listForTenant(options) {
911
+ return await this.findAll({
912
+ limit: options.limit,
913
+ offset: options.offset,
914
+ where: { tenant_id: options.tenantId ?? currentTenantId() }
915
+ });
916
+ }
917
+ async countForTenant(tenantId = currentTenantId()) {
918
+ return await this.countWhere({ tenant_id: tenantId });
919
+ }
920
+ async findForTenantOrThrow(id, tenantId = currentTenantId()) {
921
+ const organization = await this.findById(id);
922
+ if (!organization || organization.tenant_id !== tenantId) {
923
+ throw new NotFoundError(`SCIM group ${id} not found.`);
924
+ }
925
+ return organization;
926
+ }
927
+ }
928
+ var repository_default = OrganizationRepository;
929
+
930
+ // ../../src/modules/user/repository.ts
931
+ import {
932
+ emailLookupForQuery,
933
+ protectEmail,
934
+ revealEmail
935
+ } from "@getstrata/core/crypto/fieldEncryption";
936
+ import { revealMfaSecret } from "@getstrata/core/crypto/mfaSecret";
937
+ import { BaseRepository as BaseRepository2 } from "@getstrata/core/database/baseRepository";
938
+ import { currentTenantId as currentTenantId2 } from "@getstrata/core/tenant/tenantContext";
939
+
940
+ // ../../src/modules/user/table.ts
941
+ import { defineTable as defineTable2 } from "@getstrata/core/database/table";
942
+ var userTable = defineTable2({
943
+ name: "users",
944
+ primaryKey: "id",
945
+ columns: [
946
+ "id",
947
+ "name",
948
+ "email",
949
+ "email_lookup",
950
+ "role",
951
+ "tenant_id",
952
+ "password_hash",
953
+ "email_verified_at",
954
+ "mfa_secret",
955
+ "mfa_enabled",
956
+ "mfa_recovery_codes",
957
+ "profile_photo_path",
958
+ "session_valid_after",
959
+ "current_organization_id",
960
+ "created_at",
961
+ "updated_at"
962
+ ],
963
+ defaultOrderBy: { column: "id", direction: "ASC" }
964
+ });
965
+
966
+ // ../../src/modules/user/repository.ts
967
+ class UserRepository extends BaseRepository2 {
968
+ constructor() {
969
+ super(userTable);
970
+ }
971
+ decode(record) {
972
+ return {
973
+ ...record,
974
+ email: revealEmail(record.email),
975
+ mfa_secret: revealMfaSecret(record.mfa_secret)
976
+ };
977
+ }
978
+ async findById(id) {
979
+ const record = await super.findById(id);
980
+ return record ? this.decode(record) : null;
981
+ }
982
+ async findAll(options = {}) {
983
+ const records = await super.findAll(options);
984
+ return records.map((record) => this.decode(record));
985
+ }
986
+ async create(values) {
987
+ const email = values.email;
988
+ if (!email) {
989
+ throw new Error("Email is required.");
990
+ }
991
+ const protectedEmail = protectEmail(email);
992
+ const record = await super.create({
993
+ ...values,
994
+ tenant_id: values.tenant_id ?? currentTenantId2(),
995
+ email: protectedEmail.storedEmail,
996
+ email_lookup: protectedEmail.emailLookup,
997
+ password_hash: values.password_hash ?? ""
998
+ });
999
+ return this.decode(record);
1000
+ }
1001
+ async updateByIdOrThrow(id, values, errorFactory) {
1002
+ const changes = { ...values };
1003
+ if (values.email !== undefined) {
1004
+ const protectedEmail = protectEmail(values.email);
1005
+ changes.email = protectedEmail.storedEmail;
1006
+ changes.email_lookup = protectedEmail.emailLookup;
1007
+ }
1008
+ const record = await super.updateByIdOrThrow(id, changes, errorFactory);
1009
+ return this.decode(record);
1010
+ }
1011
+ async findByEmail(email) {
1012
+ const records = await this.findWhere({ email_lookup: emailLookupForQuery(email) }, { limit: 1 });
1013
+ const record = records[0];
1014
+ return record ? this.decode(record) : null;
1015
+ }
1016
+ async countForTenant(tenantId = currentTenantId2()) {
1017
+ return await this.countWhere({ tenant_id: tenantId });
1018
+ }
1019
+ }
1020
+ var repository_default2 = UserRepository;
1021
+
1022
+ // ../../src/bootstrap/providers/view.ts
871
1023
  var CORE_VIEW_TOKEN = "core.view";
872
1024
  var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
873
1025
  var viewProvider = {
@@ -880,6 +1032,25 @@ var viewProvider = {
880
1032
  config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
881
1033
  const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
882
1034
  container.set(CORE_VIEW_TOKEN, engine);
1035
+ configureWebLayoutData({
1036
+ extra: async (user) => {
1037
+ const appName = appDisplayName();
1038
+ if (!user || typeof user.id !== "number") {
1039
+ return { appName, currentOrganization: null, organizations: [] };
1040
+ }
1041
+ try {
1042
+ const record = await new repository_default2().findByIdOrThrow(user.id);
1043
+ const memberships = await resolveMembershipLookup().listForUser(record.id);
1044
+ const organizationsRepo = new repository_default;
1045
+ const organizations = (await Promise.all(memberships.map((membership) => organizationsRepo.findById(membership.organization_id)))).filter((organization) => Boolean(organization && !organization.deleted_at));
1046
+ const currentId = record.current_organization_id ?? null;
1047
+ const currentOrganization = organizations.find((organization) => organization.id === currentId) ?? organizations[0] ?? null;
1048
+ return { appName, currentOrganization, organizations };
1049
+ } catch {
1050
+ return { appName, currentOrganization: null, organizations: [] };
1051
+ }
1052
+ }
1053
+ });
883
1054
  configureWebErrorView({
884
1055
  render: async (input) => engine.render(errorTemplateName(input.status), {
885
1056
  title: input.title,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getstrata/bootstrap",
3
- "version": "0.2.61",
3
+ "version": "0.2.63",
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/emailVerification --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/requireVerifiedMiddleware --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/frontendMode --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/emailVerification --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/intendedUrlCookie --external @getstrata/core/auth/passwordConfirmCookie --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/requireVerifiedMiddleware --external @getstrata/core/http/requirePasswordConfirmMiddleware --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/frontendMode --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/recoveryCodes --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.74",
183
+ "@getstrata/core": "^0.5.75",
184
184
  "typescript": "^5.9.0"
185
185
  }
186
186
  }