@getstrata/core 0.5.63 → 0.5.65

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.
@@ -0,0 +1,38 @@
1
+ // @bun
2
+ // ../../src/core/runtime/appKeyPrefix.ts
3
+ function appKeyPrefix() {
4
+ return process.env.APP_KEY_PREFIX?.trim() || "workhub";
5
+ }
6
+ function namespacedRedisKey(kind) {
7
+ return `${appKeyPrefix()}:${kind}`;
8
+ }
9
+ function smtpEhloHost() {
10
+ const raw = process.env.MAIL_EHLO?.trim() || `${appKeyPrefix()}.local`;
11
+ const safe = raw.replace(/[^a-zA-Z0-9.-]/g, "");
12
+ return safe || "strata.local";
13
+ }
14
+ function siemEventType() {
15
+ return process.env.SIEM_EVENT_TYPE?.trim() || `${appKeyPrefix()}.audit`;
16
+ }
17
+ function appUserAgent() {
18
+ return process.env.APP_USER_AGENT?.trim() || appKeyPrefix();
19
+ }
20
+ function otelServiceName() {
21
+ return process.env.OTEL_SERVICE_NAME?.trim() || `${appKeyPrefix()}-api`;
22
+ }
23
+ function webhookSignatureHeader() {
24
+ return process.env.WEBHOOK_SIGNATURE_HEADER?.trim() || `x-${appKeyPrefix()}-signature`;
25
+ }
26
+ function appDisplayName() {
27
+ return process.env.APP_NAME?.trim() || "WorkHub";
28
+ }
29
+ export {
30
+ appDisplayName,
31
+ appKeyPrefix,
32
+ appUserAgent,
33
+ namespacedRedisKey,
34
+ otelServiceName,
35
+ siemEventType,
36
+ smtpEhloHost,
37
+ webhookSignatureHeader
38
+ };
@@ -1,6 +1,36 @@
1
1
  // @bun
2
2
  // ../../src/core/tracing/otel.ts
3
3
  import { randomBytes } from "crypto";
4
+
5
+ // ../../src/core/runtime/appKeyPrefix.ts
6
+ function appKeyPrefix() {
7
+ return process.env.APP_KEY_PREFIX?.trim() || "workhub";
8
+ }
9
+ function namespacedRedisKey(kind) {
10
+ return `${appKeyPrefix()}:${kind}`;
11
+ }
12
+ function smtpEhloHost() {
13
+ const raw = process.env.MAIL_EHLO?.trim() || `${appKeyPrefix()}.local`;
14
+ const safe = raw.replace(/[^a-zA-Z0-9.-]/g, "");
15
+ return safe || "strata.local";
16
+ }
17
+ function siemEventType() {
18
+ return process.env.SIEM_EVENT_TYPE?.trim() || `${appKeyPrefix()}.audit`;
19
+ }
20
+ function appUserAgent() {
21
+ return process.env.APP_USER_AGENT?.trim() || appKeyPrefix();
22
+ }
23
+ function otelServiceName() {
24
+ return process.env.OTEL_SERVICE_NAME?.trim() || `${appKeyPrefix()}-api`;
25
+ }
26
+ function webhookSignatureHeader() {
27
+ return process.env.WEBHOOK_SIGNATURE_HEADER?.trim() || `x-${appKeyPrefix()}-signature`;
28
+ }
29
+ function appDisplayName() {
30
+ return process.env.APP_NAME?.trim() || "WorkHub";
31
+ }
32
+
33
+ // ../../src/core/tracing/otel.ts
4
34
  function randomHex(bytes) {
5
35
  return randomBytes(bytes).toString("hex");
6
36
  }
@@ -24,7 +54,7 @@ async function exportOtelSpan(span) {
24
54
  if (!endpoint) {
25
55
  return;
26
56
  }
27
- const serviceName = process.env.OTEL_SERVICE_NAME?.trim() ?? "workhub-api";
57
+ const serviceName = otelServiceName();
28
58
  const url = endpoint.endsWith("/v1/traces") ? endpoint : `${endpoint.replace(/\/$/, "")}/v1/traces`;
29
59
  await fetch(url, {
30
60
  method: "POST",
package/dist/index.js CHANGED
@@ -966,8 +966,30 @@ function jsonScimError(detail, status) {
966
966
  }
967
967
  // ../../src/core/cache/redisCacheStore.ts
968
968
  var {RedisClient } = globalThis.Bun;
969
- var KEY_PREFIX = "workhub:cache:";
970
- var TAG_PREFIX = "workhub:cache:tag:";
969
+
970
+ // ../../src/core/runtime/appKeyPrefix.ts
971
+ function appKeyPrefix() {
972
+ return process.env.APP_KEY_PREFIX?.trim() || "workhub";
973
+ }
974
+ function namespacedRedisKey(kind) {
975
+ return `${appKeyPrefix()}:${kind}`;
976
+ }
977
+ function smtpEhloHost() {
978
+ const raw = process.env.MAIL_EHLO?.trim() || `${appKeyPrefix()}.local`;
979
+ const safe = raw.replace(/[^a-zA-Z0-9.-]/g, "");
980
+ return safe || "strata.local";
981
+ }
982
+ function otelServiceName() {
983
+ return process.env.OTEL_SERVICE_NAME?.trim() || `${appKeyPrefix()}-api`;
984
+ }
985
+
986
+ // ../../src/core/cache/redisCacheStore.ts
987
+ function cacheKeyPrefix() {
988
+ return namespacedRedisKey("cache:");
989
+ }
990
+ function cacheTagPrefix() {
991
+ return namespacedRedisKey("cache:tag:");
992
+ }
971
993
 
972
994
  class RedisCacheStore {
973
995
  ttlMs;
@@ -1054,10 +1076,10 @@ class RedisCacheStore {
1054
1076
  return deleted > 0;
1055
1077
  }
1056
1078
  async invalidateByPrefix(prefix) {
1057
- const keys = await this.client.keys(`${KEY_PREFIX}*`);
1079
+ const keys = await this.client.keys(`${cacheKeyPrefix()}*`);
1058
1080
  let removed = 0;
1059
1081
  for (const storageKey of keys) {
1060
- const key = storageKey.slice(KEY_PREFIX.length);
1082
+ const key = storageKey.slice(cacheKeyPrefix().length);
1061
1083
  if (key === prefix || key.startsWith(`${prefix}?`)) {
1062
1084
  if (await this.invalidate(key)) {
1063
1085
  removed += 1;
@@ -1067,11 +1089,11 @@ class RedisCacheStore {
1067
1089
  return removed;
1068
1090
  }
1069
1091
  async clear() {
1070
- const keys = await this.client.keys(`${KEY_PREFIX}*`);
1092
+ const keys = await this.client.keys(`${cacheKeyPrefix()}*`);
1071
1093
  if (keys.length > 0) {
1072
1094
  await this.client.del(...keys);
1073
1095
  }
1074
- const tagKeys = await this.client.keys(`${TAG_PREFIX}*`);
1096
+ const tagKeys = await this.client.keys(`${cacheTagPrefix()}*`);
1075
1097
  if (tagKeys.length > 0) {
1076
1098
  await this.client.del(...tagKeys);
1077
1099
  }
@@ -1079,14 +1101,14 @@ class RedisCacheStore {
1079
1101
  this.keyTags.clear();
1080
1102
  }
1081
1103
  async size() {
1082
- const keys = await this.client.keys(`${KEY_PREFIX}*`);
1104
+ const keys = await this.client.keys(`${cacheKeyPrefix()}*`);
1083
1105
  return keys.length;
1084
1106
  }
1085
1107
  storageKey(key) {
1086
- return `${KEY_PREFIX}${key}`;
1108
+ return `${cacheKeyPrefix()}${key}`;
1087
1109
  }
1088
1110
  tagKey(tag) {
1089
- return `${TAG_PREFIX}${tag}`;
1111
+ return `${cacheTagPrefix()}${tag}`;
1090
1112
  }
1091
1113
  async detachKeyFromTags(key) {
1092
1114
  const tags = this.keyTags.get(key);
@@ -1099,7 +1121,7 @@ class RedisCacheStore {
1099
1121
  this.keyTags.delete(key);
1100
1122
  }
1101
1123
  async enforceMaxEntries() {
1102
- const keys = await this.client.keys(`${KEY_PREFIX}*`);
1124
+ const keys = await this.client.keys(`${cacheKeyPrefix()}*`);
1103
1125
  if (keys.length <= this.maxEntries) {
1104
1126
  return;
1105
1127
  }
@@ -3880,7 +3902,7 @@ async function defaultSmtpTransport(config, message) {
3880
3902
  const { socket, readResponse } = await openSmtpConnection(config);
3881
3903
  try {
3882
3904
  await waitForSmtpResponse(readResponse, ["220"]);
3883
- await socket.write(`EHLO workhub.local\r
3905
+ await socket.write(`EHLO ${smtpEhloHost()}\r
3884
3906
  `);
3885
3907
  await waitForSmtpResponse(readResponse, ["250"]);
3886
3908
  if (config.username && config.password) {
@@ -5401,7 +5423,7 @@ async function resolveLoginEmail(request) {
5401
5423
  }
5402
5424
  function createLoginThrottleMiddleware(options) {
5403
5425
  const client = new RedisClient2(options.redisUrl);
5404
- const prefix = options.keyPrefix ?? "workhub:login-throttle:";
5426
+ const prefix = options.keyPrefix ?? namespacedRedisKey("login-throttle:");
5405
5427
  return async (request, next) => {
5406
5428
  const identity = resolveLoginIdentity(request);
5407
5429
  const email = await resolveLoginEmail(request);
@@ -5424,7 +5446,7 @@ function createLoginThrottleMiddleware(options) {
5424
5446
  // ../../src/core/http/memoryThrottleMiddleware.ts
5425
5447
  var throttleBucketRegistries = new Set;
5426
5448
  function createMemoryThrottleMiddleware(options) {
5427
- const prefix = options.keyPrefix ?? "workhub:memory-throttle:";
5449
+ const prefix = options.keyPrefix ?? namespacedRedisKey("memory-throttle:");
5428
5450
  const buckets = new Map;
5429
5451
  throttleBucketRegistries.add(buckets);
5430
5452
  return async (request, next) => {
@@ -5626,7 +5648,7 @@ function createScimThrottleMiddleware(options) {
5626
5648
  const client = options.redisUrl ? new RedisClient3(options.redisUrl) : null;
5627
5649
  return async (request, next) => {
5628
5650
  const identity = resolveScimIdentity(request);
5629
- const key = `workhub:scim-throttle:${identity}`;
5651
+ const key = `${namespacedRedisKey("scim-throttle:")}${identity}`;
5630
5652
  if (client) {
5631
5653
  const attempts = Number(await client.incr(key));
5632
5654
  if (attempts === 1) {
@@ -5782,7 +5804,7 @@ function resolveThrottleIdentity(request) {
5782
5804
  }
5783
5805
  function createThrottleMiddleware(options) {
5784
5806
  const client = new RedisClient4(options.redisUrl);
5785
- const prefix = options.keyPrefix ?? "workhub:throttle:";
5807
+ const prefix = options.keyPrefix ?? namespacedRedisKey("throttle:");
5786
5808
  return async (request, next) => {
5787
5809
  const identity = resolveThrottleIdentity(request);
5788
5810
  const path = new URL(request.url).pathname;
@@ -6263,18 +6285,27 @@ async function runQueueJob(envelope, failedJobs) {
6263
6285
 
6264
6286
  // ../../src/core/queue/redisQueue.ts
6265
6287
  var {RedisClient: RedisClient5 } = globalThis.Bun;
6266
- var QUEUE_LIST_KEY = "workhub:queue:default";
6267
- var QUEUE_HIGH_KEY = "workhub:queue:high";
6268
- var QUEUE_LOW_KEY = "workhub:queue:low";
6288
+ function queueListKey() {
6289
+ return namespacedRedisKey("queue:default");
6290
+ }
6291
+ function queueHighKey() {
6292
+ return namespacedRedisKey("queue:high");
6293
+ }
6294
+ function queueLowKey() {
6295
+ return namespacedRedisKey("queue:low");
6296
+ }
6297
+ var QUEUE_LIST_KEY = queueListKey();
6298
+ var QUEUE_HIGH_KEY = queueHighKey();
6299
+ var QUEUE_LOW_KEY = queueLowKey();
6269
6300
  var QUEUE_KEYS = [QUEUE_HIGH_KEY, QUEUE_LIST_KEY, QUEUE_LOW_KEY];
6270
6301
  function queueKeyForPriority(priority = "default") {
6271
6302
  switch (priority) {
6272
6303
  case "high":
6273
- return QUEUE_HIGH_KEY;
6304
+ return queueHighKey();
6274
6305
  case "low":
6275
- return QUEUE_LOW_KEY;
6306
+ return queueLowKey();
6276
6307
  default:
6277
- return QUEUE_LIST_KEY;
6308
+ return queueListKey();
6278
6309
  }
6279
6310
  }
6280
6311
  function parseQueueJobEnvelope(rawPayload) {
@@ -6670,7 +6701,7 @@ async function exportOtelSpan(span) {
6670
6701
  if (!endpoint) {
6671
6702
  return;
6672
6703
  }
6673
- const serviceName = process.env.OTEL_SERVICE_NAME?.trim() ?? "workhub-api";
6704
+ const serviceName = otelServiceName();
6674
6705
  const url = endpoint.endsWith("/v1/traces") ? endpoint : `${endpoint.replace(/\/$/, "")}/v1/traces`;
6675
6706
  await fetch(url, {
6676
6707
  method: "POST",
@@ -0,0 +1,16 @@
1
+ import { Job } from "@getstrata/core/queue";
2
+ interface DispatchWebhookPayload {
3
+ webhookId: number;
4
+ tenantId: number;
5
+ event: string;
6
+ payload: Record<string, unknown>;
7
+ }
8
+ declare class DispatchWebhookJob extends Job<DispatchWebhookPayload> {
9
+ readonly maxAttempts = 3;
10
+ readonly backoffMs = 2000;
11
+ handle(payload: DispatchWebhookPayload): Promise<void>;
12
+ private deliver;
13
+ }
14
+ export { DispatchWebhookJob };
15
+ export default DispatchWebhookJob;
16
+ export type { DispatchWebhookPayload };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getstrata/core",
3
- "version": "0.5.63",
3
+ "version": "0.5.65",
4
4
  "description": "Strata — Laravel-inspired Bun framework public API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -665,6 +665,11 @@
665
665
  "import": "./dist/entries/queue/types.js",
666
666
  "default": "./dist/entries/queue/types.js"
667
667
  },
668
+ "./runtime/appKeyPrefix": {
669
+ "types": "./dist/core/runtime/appKeyPrefix.d.ts",
670
+ "import": "./dist/entries/runtime/appKeyPrefix.js",
671
+ "default": "./dist/entries/runtime/appKeyPrefix.js"
672
+ },
668
673
  "./runtime/applicationRegistry": {
669
674
  "types": "./dist/core/runtime/applicationRegistry.d.ts",
670
675
  "import": "./dist/entries/runtime/applicationRegistry.js",
@@ -803,7 +808,7 @@
803
808
  "build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta",
804
809
  "build:types": "tsc -p tsconfig.types.json",
805
810
  "prepublishOnly": "bun run build && bun ../../scripts/prepare-core-package-publish.ts",
806
- "build:subpaths": "bun build entries/auth/accessControl.ts entries/auth/abilityChecker.ts entries/auth/membershipMiddleware.ts entries/auth/membershipScope.ts entries/auth/membershipService.ts entries/auth/oauth/oidcProvider.ts entries/auth/oauth/providers.ts entries/auth/oauth/samlProvider.ts entries/auth/oauth/types.ts entries/auth/password.ts entries/auth/policy.ts entries/auth/scimAuthMiddleware.ts entries/auth/sessionCookie.ts entries/auth/sessionGuard.ts entries/auth/tokenHash.ts entries/audit/exportAuditLogs.ts entries/audit/siemFormatter.ts entries/admin/formatValue.ts entries/admin/registry.ts entries/admin/types.ts entries/cache/tags.ts entries/cache/createCacheStore.ts entries/cache/repository.ts entries/cache/simpleCache.ts entries/cache/simpleCacheStore.ts entries/config/envSchema.ts entries/contracts/serviceTokens.ts entries/contracts/container.ts entries/contracts/di.ts entries/crypto/fieldEncryption.ts entries/crypto/mfaSecret.ts entries/database/errors.ts entries/database/factory.ts entries/database/migrations.ts entries/database/migrations/types.ts entries/database/model.ts entries/database/query.ts entries/database/relationships.ts entries/database/repositoryQuery.ts entries/database/seeders.ts entries/database/seeders/types.ts entries/database/schema.ts entries/database/table.ts entries/database/types.ts entries/database/whereBuilder.ts entries/facades.ts entries/http/authMiddleware.ts entries/http/authorizeMiddleware.ts entries/http/bodySizeLimitMiddleware.ts entries/http/clientIp.ts entries/http/cookies.ts entries/http/contentNegotiation.ts entries/http/conditionalResponse.ts entries/http/corsMiddleware.ts entries/http/csrfMiddleware.ts entries/http/csrfProtection.ts entries/http/csrfToken.ts entries/http/etag.ts entries/http/flashSession.ts entries/http/flashMiddleware.ts entries/http/formRequest.ts entries/http/metricsMiddleware.ts entries/http/loginThrottleMiddleware.ts entries/http/memoryThrottleMiddleware.ts entries/http/pagination.ts entries/http/parseFormBody.ts entries/http/parseMultipartUpload.ts entries/http/requireAbilityMiddleware.ts entries/http/requireAuthMiddleware.ts entries/http/requireGlobalAdminMiddleware.ts entries/http/requireWebAuthMiddleware.ts entries/http/resources.ts entries/http/response.ts entries/http/route.ts entries/http/routeMiddleware.ts entries/http/routeModelBinding.ts entries/http/safeInternalPath.ts entries/http/signedUrl.ts entries/http/scimThrottleMiddleware.ts entries/http/securityHeadersMiddleware.ts entries/http/securedRouteModelBinding.ts entries/http/webErrorResponse.ts entries/http/webFormRequest.ts entries/http/throttleMiddleware.ts entries/http/validation.ts entries/jobs/dispatchWebhookJob.ts entries/jobs/exportAuditLogsJob.ts entries/jobs/invalidateCacheTagsJob.ts entries/lifecycle/gracefulShutdown.ts entries/logging/logger.ts entries/logging/requestLoggingMiddleware.ts entries/mail/mailer.ts entries/mail/markdownMail.ts entries/mail/markdownMailable.ts entries/mail/sanitizeMailHtml.ts entries/media/imageTransform.ts entries/metrics/prometheus.ts entries/openapi/generator.ts entries/openapi/registeredRoute.ts entries/openapi/validate.ts entries/pagination.ts entries/queue.ts entries/queue/createAppQueue.ts entries/queue/failedJobRepository.ts entries/queue/failedJobService.ts entries/queue/jobRunner.ts entries/queue/queueMetrics.ts entries/queue/publicQueue.ts entries/queue/redisQueue.ts entries/queue/types.ts entries/runtime/asyncContextStore.ts entries/scheduler/schedule.ts entries/scheduler/osCron.ts entries/security/oauthState.ts entries/security/publicReads.ts entries/security/safeFetch.ts entries/security/safeUrl.ts entries/security/scimTenantTokens.ts entries/security/stripeWebhook.ts entries/security/timingSafeCompare.ts entries/security/tokenExpiry.ts entries/security/totp.ts entries/storage/storage.ts entries/tenant/tenancyConfig.ts entries/tenant/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.ts entries/terminal/runShell.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts entries/view.ts --outdir dist --root . --target bun --external bun --external eta --external @getstrata/core --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/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",
811
+ "build:subpaths": "bun build entries/auth/accessControl.ts entries/auth/abilityChecker.ts entries/auth/membershipMiddleware.ts entries/auth/membershipScope.ts entries/auth/membershipService.ts entries/auth/oauth/oidcProvider.ts entries/auth/oauth/providers.ts entries/auth/oauth/samlProvider.ts entries/auth/oauth/types.ts entries/auth/password.ts entries/auth/policy.ts entries/auth/scimAuthMiddleware.ts entries/auth/sessionCookie.ts entries/auth/sessionGuard.ts entries/auth/tokenHash.ts entries/audit/exportAuditLogs.ts entries/audit/siemFormatter.ts entries/admin/formatValue.ts entries/admin/registry.ts entries/admin/types.ts entries/cache/tags.ts entries/cache/createCacheStore.ts entries/cache/repository.ts entries/cache/simpleCache.ts entries/cache/simpleCacheStore.ts entries/config/envSchema.ts entries/contracts/serviceTokens.ts entries/contracts/container.ts entries/contracts/di.ts entries/crypto/fieldEncryption.ts entries/crypto/mfaSecret.ts entries/database/errors.ts entries/database/factory.ts entries/database/migrations.ts entries/database/migrations/types.ts entries/database/model.ts entries/database/query.ts entries/database/relationships.ts entries/database/repositoryQuery.ts entries/database/seeders.ts entries/database/seeders/types.ts entries/database/schema.ts entries/database/table.ts entries/database/types.ts entries/database/whereBuilder.ts entries/facades.ts entries/http/authMiddleware.ts entries/http/authorizeMiddleware.ts entries/http/bodySizeLimitMiddleware.ts entries/http/clientIp.ts entries/http/cookies.ts entries/http/contentNegotiation.ts entries/http/conditionalResponse.ts entries/http/corsMiddleware.ts entries/http/csrfMiddleware.ts entries/http/csrfProtection.ts entries/http/csrfToken.ts entries/http/etag.ts entries/http/flashSession.ts entries/http/flashMiddleware.ts entries/http/formRequest.ts entries/http/metricsMiddleware.ts entries/http/loginThrottleMiddleware.ts entries/http/memoryThrottleMiddleware.ts entries/http/pagination.ts entries/http/parseFormBody.ts entries/http/parseMultipartUpload.ts entries/http/requireAbilityMiddleware.ts entries/http/requireAuthMiddleware.ts entries/http/requireGlobalAdminMiddleware.ts entries/http/requireWebAuthMiddleware.ts entries/http/resources.ts entries/http/response.ts entries/http/route.ts entries/http/routeMiddleware.ts entries/http/routeModelBinding.ts entries/http/safeInternalPath.ts entries/http/signedUrl.ts entries/http/scimThrottleMiddleware.ts entries/http/securityHeadersMiddleware.ts entries/http/securedRouteModelBinding.ts entries/http/webErrorResponse.ts entries/http/webFormRequest.ts entries/http/throttleMiddleware.ts entries/http/validation.ts entries/jobs/dispatchWebhookJob.ts entries/jobs/exportAuditLogsJob.ts entries/jobs/invalidateCacheTagsJob.ts entries/lifecycle/gracefulShutdown.ts entries/logging/logger.ts entries/logging/requestLoggingMiddleware.ts entries/mail/mailer.ts entries/mail/markdownMail.ts entries/mail/markdownMailable.ts entries/mail/sanitizeMailHtml.ts entries/media/imageTransform.ts entries/metrics/prometheus.ts entries/openapi/generator.ts entries/openapi/registeredRoute.ts entries/openapi/validate.ts entries/pagination.ts entries/queue.ts entries/queue/createAppQueue.ts entries/queue/failedJobRepository.ts entries/queue/failedJobService.ts entries/queue/jobRunner.ts entries/queue/queueMetrics.ts entries/queue/publicQueue.ts entries/queue/redisQueue.ts entries/queue/types.ts entries/runtime/appKeyPrefix.ts entries/runtime/asyncContextStore.ts entries/scheduler/schedule.ts entries/scheduler/osCron.ts entries/security/oauthState.ts entries/security/publicReads.ts entries/security/safeFetch.ts entries/security/safeUrl.ts entries/security/scimTenantTokens.ts entries/security/stripeWebhook.ts entries/security/timingSafeCompare.ts entries/security/tokenExpiry.ts entries/security/totp.ts entries/storage/storage.ts entries/tenant/tenancyConfig.ts entries/tenant/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.ts entries/terminal/runShell.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts entries/view.ts --outdir dist --root . --target bun --external bun --external eta --external @getstrata/core --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",
807
812
  "build:shims": "bun ../../scripts/write-core-shared-shims.ts"
808
813
  },
809
814
  "publishConfig": {