@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.
- package/CHANGELOG.md +10 -0
- package/README.md +1 -1
- package/dist/core/jobs/dispatchWebhookJob.d.ts +1 -16
- package/dist/core/queue/redisQueue.d.ts +3 -3
- package/dist/core/runtime/appKeyPrefix.d.ts +9 -0
- package/dist/entries/audit/exportAuditLogs.js +30 -2
- package/dist/entries/audit/siemFormatter.js +30 -2
- package/dist/entries/auth/oauth/providers.js +29 -1
- package/dist/entries/auth/oauth/samlProvider.js +30 -2
- package/dist/entries/cache/createCacheStore.js +44 -10
- package/dist/entries/facades.js +29 -1
- package/dist/entries/http/loginThrottleMiddleware.js +29 -1
- package/dist/entries/http/memoryThrottleMiddleware.js +29 -1
- package/dist/entries/http/scimThrottleMiddleware.js +29 -1
- package/dist/entries/http/throttleMiddleware.js +29 -1
- package/dist/entries/jobs/dispatchWebhookJob.js +11 -266
- package/dist/entries/jobs/exportAuditLogsJob.js +30 -2
- package/dist/entries/mail/mailer.js +29 -1
- package/dist/entries/queue/createAppQueue.js +45 -6
- package/dist/entries/queue/publicQueue.js +45 -6
- package/dist/entries/queue/queueMetrics.js +45 -6
- package/dist/entries/queue/redisQueue.js +43 -6
- package/dist/entries/runtime/appKeyPrefix.js +38 -0
- package/dist/entries/tracing/tracingMiddleware.js +31 -1
- package/dist/index.js +53 -22
- package/dist/modules/webhook/dispatchWebhookJob.d.ts +16 -0
- package/package.json +7 -2
|
@@ -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 =
|
|
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
|
-
|
|
970
|
-
|
|
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(`${
|
|
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(
|
|
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(`${
|
|
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(`${
|
|
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(`${
|
|
1104
|
+
const keys = await this.client.keys(`${cacheKeyPrefix()}*`);
|
|
1083
1105
|
return keys.length;
|
|
1084
1106
|
}
|
|
1085
1107
|
storageKey(key) {
|
|
1086
|
-
return `${
|
|
1108
|
+
return `${cacheKeyPrefix()}${key}`;
|
|
1087
1109
|
}
|
|
1088
1110
|
tagKey(tag) {
|
|
1089
|
-
return `${
|
|
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(`${
|
|
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
|
|
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 ?? "
|
|
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 ?? "
|
|
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 =
|
|
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 ?? "
|
|
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
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
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
|
|
6304
|
+
return queueHighKey();
|
|
6274
6305
|
case "low":
|
|
6275
|
-
return
|
|
6306
|
+
return queueLowKey();
|
|
6276
6307
|
default:
|
|
6277
|
-
return
|
|
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 =
|
|
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.
|
|
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": {
|