@getstrata/bootstrap 0.2.62 → 0.2.64

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
@@ -201,7 +201,8 @@ class HttpKernel {
201
201
  if (isEmailVerificationRequired() && !hasVerifiedEmail(user)) {
202
202
  return Response.redirect("/email/verify", 302);
203
203
  }
204
- return Response.redirect(home, 302);
204
+ const location = typeof home === "function" ? await home(user) : home;
205
+ return Response.redirect(location, 302);
205
206
  }
206
207
  return handler(request);
207
208
  });
@@ -827,7 +828,6 @@ import {
827
828
  } from "@getstrata/core/queue/createAppQueue";
828
829
 
829
830
  // ../../src/bootstrap/queue/defaultJobs.ts
830
- import { DispatchWebhookJob } from "@getstrata/core/jobs/dispatchWebhookJob";
831
831
  import { ExportAuditLogsJob } from "@getstrata/core/jobs/exportAuditLogsJob";
832
832
  import { InvalidateCacheTagsJob as InvalidateCacheTagsJob2 } from "@getstrata/core/jobs/invalidateCacheTagsJob";
833
833
  import { jobRegistry } from "@getstrata/core/queue/jobRegistry";
@@ -836,7 +836,6 @@ function registerDefaultJobs() {
836
836
  jobRegistry.register("cache.invalidate-tags", () => {
837
837
  return new InvalidateCacheTagsJob2(resolveApplicationCache2());
838
838
  });
839
- jobRegistry.register("webhook.dispatch", () => new DispatchWebhookJob);
840
839
  jobRegistry.register("audit.export", () => new ExportAuditLogsJob);
841
840
  }
842
841
 
@@ -865,15 +864,160 @@ var storageProvider = {
865
864
  var storage_default = storageProvider;
866
865
 
867
866
  // ../../src/bootstrap/providers/view.ts
867
+ import { resolveMembershipLookup } from "@getstrata/core/auth/membershipContext";
868
868
  import { currentRequestMeta } from "@getstrata/core/http/requestMetaContext";
869
+ import { appDisplayName } from "@getstrata/core/runtime/appKeyPrefix";
869
870
  import { isViewsEnabled as isViewsEnabled2 } from "@getstrata/core/runtime/frontendMode";
870
871
  import {
871
872
  configureWebErrorView,
873
+ configureWebLayoutData,
872
874
  DEFAULT_VIEWS_DIRECTORY,
873
875
  EtaViewEngine,
874
876
  errorTemplateName,
875
877
  resolveWebLayoutData
876
878
  } from "@getstrata/core/view";
879
+
880
+ // ../../src/modules/organization/repository.ts
881
+ import { BaseRepository } from "@getstrata/core/database/baseRepository";
882
+ import { NotFoundError } from "@getstrata/core/errors/http";
883
+ import { currentTenantId } from "@getstrata/core/tenant/tenantContext";
884
+
885
+ // ../../src/modules/organization/table.ts
886
+ import { defineTable } from "@getstrata/core/database/table";
887
+
888
+ // ../../src/domain/workhub.ts
889
+ var ORGANIZATION_TABLE = "organization";
890
+
891
+ // ../../src/modules/organization/table.ts
892
+ var organizationTable = defineTable({
893
+ name: ORGANIZATION_TABLE,
894
+ primaryKey: "id",
895
+ columns: ["id", "tenant_id", "name", "slug", "created_at", "updated_at", "deleted_at"],
896
+ softDeletes: true,
897
+ defaultOrderBy: { column: "id", direction: "ASC" }
898
+ });
899
+
900
+ // ../../src/modules/organization/repository.ts
901
+ class OrganizationRepository extends BaseRepository {
902
+ constructor() {
903
+ super(organizationTable);
904
+ }
905
+ async findBySlug(slug) {
906
+ return await this.firstOrNull({ slug });
907
+ }
908
+ async listForTenant(options) {
909
+ return await this.findAll({
910
+ limit: options.limit,
911
+ offset: options.offset,
912
+ where: { tenant_id: options.tenantId ?? currentTenantId() }
913
+ });
914
+ }
915
+ async countForTenant(tenantId = currentTenantId()) {
916
+ return await this.countWhere({ tenant_id: tenantId });
917
+ }
918
+ async findForTenantOrThrow(id, tenantId = currentTenantId()) {
919
+ const organization = await this.findById(id);
920
+ if (!organization || organization.tenant_id !== tenantId) {
921
+ throw new NotFoundError(`SCIM group ${id} not found.`);
922
+ }
923
+ return organization;
924
+ }
925
+ }
926
+ var repository_default = OrganizationRepository;
927
+
928
+ // ../../src/modules/user/repository.ts
929
+ import {
930
+ emailLookupForQuery,
931
+ protectEmail,
932
+ revealEmail
933
+ } from "@getstrata/core/crypto/fieldEncryption";
934
+ import { revealMfaSecret } from "@getstrata/core/crypto/mfaSecret";
935
+ import { BaseRepository as BaseRepository2 } from "@getstrata/core/database/baseRepository";
936
+ import { currentTenantId as currentTenantId2 } from "@getstrata/core/tenant/tenantContext";
937
+
938
+ // ../../src/modules/user/table.ts
939
+ import { defineTable as defineTable2 } from "@getstrata/core/database/table";
940
+ var userTable = defineTable2({
941
+ name: "users",
942
+ primaryKey: "id",
943
+ columns: [
944
+ "id",
945
+ "name",
946
+ "email",
947
+ "email_lookup",
948
+ "role",
949
+ "tenant_id",
950
+ "password_hash",
951
+ "email_verified_at",
952
+ "mfa_secret",
953
+ "mfa_enabled",
954
+ "mfa_recovery_codes",
955
+ "profile_photo_path",
956
+ "session_valid_after",
957
+ "current_organization_id",
958
+ "created_at",
959
+ "updated_at"
960
+ ],
961
+ defaultOrderBy: { column: "id", direction: "ASC" }
962
+ });
963
+
964
+ // ../../src/modules/user/repository.ts
965
+ class UserRepository extends BaseRepository2 {
966
+ constructor() {
967
+ super(userTable);
968
+ }
969
+ decode(record) {
970
+ return {
971
+ ...record,
972
+ email: revealEmail(record.email),
973
+ mfa_secret: revealMfaSecret(record.mfa_secret)
974
+ };
975
+ }
976
+ async findById(id) {
977
+ const record = await super.findById(id);
978
+ return record ? this.decode(record) : null;
979
+ }
980
+ async findAll(options = {}) {
981
+ const records = await super.findAll(options);
982
+ return records.map((record) => this.decode(record));
983
+ }
984
+ async create(values) {
985
+ const email = values.email;
986
+ if (!email) {
987
+ throw new Error("Email is required.");
988
+ }
989
+ const protectedEmail = protectEmail(email);
990
+ const record = await super.create({
991
+ ...values,
992
+ tenant_id: values.tenant_id ?? currentTenantId2(),
993
+ email: protectedEmail.storedEmail,
994
+ email_lookup: protectedEmail.emailLookup,
995
+ password_hash: values.password_hash ?? ""
996
+ });
997
+ return this.decode(record);
998
+ }
999
+ async updateByIdOrThrow(id, values, errorFactory) {
1000
+ const changes = { ...values };
1001
+ if (values.email !== undefined) {
1002
+ const protectedEmail = protectEmail(values.email);
1003
+ changes.email = protectedEmail.storedEmail;
1004
+ changes.email_lookup = protectedEmail.emailLookup;
1005
+ }
1006
+ const record = await super.updateByIdOrThrow(id, changes, errorFactory);
1007
+ return this.decode(record);
1008
+ }
1009
+ async findByEmail(email) {
1010
+ const records = await this.findWhere({ email_lookup: emailLookupForQuery(email) }, { limit: 1 });
1011
+ const record = records[0];
1012
+ return record ? this.decode(record) : null;
1013
+ }
1014
+ async countForTenant(tenantId = currentTenantId2()) {
1015
+ return await this.countWhere({ tenant_id: tenantId });
1016
+ }
1017
+ }
1018
+ var repository_default2 = UserRepository;
1019
+
1020
+ // ../../src/bootstrap/providers/view.ts
877
1021
  var CORE_VIEW_TOKEN = "core.view";
878
1022
  var VIEW_DIRECTORY_CONFIG_KEY = "view.directory";
879
1023
  var viewProvider = {
@@ -886,6 +1030,25 @@ var viewProvider = {
886
1030
  config.set(VIEW_DIRECTORY_CONFIG_KEY, viewsDirectory);
887
1031
  const engine = new EtaViewEngine(viewsDirectory, (request) => resolveWebLayoutData(container, request ?? currentRequestMeta().request));
888
1032
  container.set(CORE_VIEW_TOKEN, engine);
1033
+ configureWebLayoutData({
1034
+ extra: async (user) => {
1035
+ const appName = appDisplayName();
1036
+ if (!user || typeof user.id !== "number") {
1037
+ return { appName, currentOrganization: null, organizations: [] };
1038
+ }
1039
+ try {
1040
+ const record = await new repository_default2().findByIdOrThrow(user.id);
1041
+ const memberships = await resolveMembershipLookup().listForUser(record.id);
1042
+ const organizationsRepo = new repository_default;
1043
+ const organizations = (await Promise.all(memberships.map((membership) => organizationsRepo.findById(membership.organization_id)))).filter((organization) => Boolean(organization && !organization.deleted_at));
1044
+ const currentId = record.current_organization_id ?? null;
1045
+ const currentOrganization = organizations.find((organization) => organization.id === currentId) ?? organizations[0] ?? null;
1046
+ return { appName, currentOrganization, organizations };
1047
+ } catch {
1048
+ return { appName, currentOrganization: null, organizations: [] };
1049
+ }
1050
+ }
1051
+ });
889
1052
  configureWebErrorView({
890
1053
  render: async (input) => engine.render(errorTemplateName(input.status), {
891
1054
  title: input.title,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getstrata/bootstrap",
3
- "version": "0.2.62",
3
+ "version": "0.2.64",
4
4
  "description": "Strata application bootstrap — HttpKernel, DI, web session helpers",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -173,7 +173,7 @@
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/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/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": {