@getstrata/core 0.5.52 → 0.5.53
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/README.md +1 -1
- package/dist/entries/auth/accessControl.js +60 -1
- package/dist/entries/auth/membershipMiddleware.js +21 -0
- package/dist/entries/auth/membershipScope.js +336 -1
- package/dist/entries/auth/membershipService.js +304 -1
- package/dist/entries/auth/policy.js +81 -1
- package/dist/entries/database/repositoryQuery.js +655 -0
- package/dist/entries/database/whereBuilder.js +32 -0
- package/dist/entries/http/formRequest.js +102 -0
- package/dist/entries/http/pagination.js +102 -0
- package/dist/entries/http/routeModelBinding.js +102 -0
- package/dist/entries/http/securedRouteModelBinding.js +102 -0
- package/dist/entries/http/validation.js +145 -0
- package/dist/entries/http/webFormRequest.js +102 -0
- package/package.json +17 -2
|
@@ -48,12 +48,65 @@ function formDataToRecord(formData) {
|
|
|
48
48
|
import { currentAuthUser } from "@getstrata/core/auth/authContext";
|
|
49
49
|
import { BadRequestError as BadRequestError2 } from "@getstrata/core/errors/http";
|
|
50
50
|
import { currentTenantId } from "@getstrata/core/tenant/tenantContext";
|
|
51
|
+
function buildRequestCacheKey(fallbackPath, request) {
|
|
52
|
+
if (!request) {
|
|
53
|
+
return fallbackPath;
|
|
54
|
+
}
|
|
55
|
+
const url = new URL(request.url);
|
|
56
|
+
const user = currentAuthUser();
|
|
57
|
+
const authScope = user ? `u:${user.id}` : "guest";
|
|
58
|
+
const tenantScope = `t:${currentTenantId()}`;
|
|
59
|
+
return `${authScope}|${tenantScope}|${url.pathname}${url.search}`;
|
|
60
|
+
}
|
|
51
61
|
function getQueryParams(request) {
|
|
52
62
|
if (!request) {
|
|
53
63
|
return new URLSearchParams;
|
|
54
64
|
}
|
|
55
65
|
return new URL(request.url).searchParams;
|
|
56
66
|
}
|
|
67
|
+
function parseOptionalPositiveIntQueryParam(params, name) {
|
|
68
|
+
const value = params.get(name);
|
|
69
|
+
if (value === null || value.trim() === "") {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const parsed = Number.parseInt(value, 10);
|
|
73
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
74
|
+
throw new BadRequestError2(`Invalid query parameter "${name}". Expected a positive integer.`);
|
|
75
|
+
}
|
|
76
|
+
return parsed;
|
|
77
|
+
}
|
|
78
|
+
function parseOptionalBooleanQueryParam(params, name) {
|
|
79
|
+
const value = params.get(name);
|
|
80
|
+
if (value === null || value.trim() === "") {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
switch (value.toLowerCase()) {
|
|
84
|
+
case "true":
|
|
85
|
+
case "1":
|
|
86
|
+
return true;
|
|
87
|
+
case "false":
|
|
88
|
+
case "0":
|
|
89
|
+
return false;
|
|
90
|
+
default:
|
|
91
|
+
throw new BadRequestError2(`Invalid query parameter "${name}". Expected a boolean.`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function parseOptionalEnumQueryParam(params, name, allowedValues) {
|
|
95
|
+
const value = params.get(name);
|
|
96
|
+
if (value === null || value.trim() === "") {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (!allowedValues.includes(value)) {
|
|
100
|
+
throw new BadRequestError2(`Invalid query parameter "${name}". Expected one of: ${allowedValues.join(", ")}.`);
|
|
101
|
+
}
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
function expectObject(value, label = "request body") {
|
|
105
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
106
|
+
throw new BadRequestError2(`${label} must be a JSON object.`);
|
|
107
|
+
}
|
|
108
|
+
return value;
|
|
109
|
+
}
|
|
57
110
|
async function parseJsonBody(request, validator) {
|
|
58
111
|
let payload;
|
|
59
112
|
try {
|
|
@@ -63,6 +116,55 @@ async function parseJsonBody(request, validator) {
|
|
|
63
116
|
}
|
|
64
117
|
return validator(payload);
|
|
65
118
|
}
|
|
119
|
+
function readRequiredString(payload, field, options = {}) {
|
|
120
|
+
const value = payload[field];
|
|
121
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
122
|
+
throw new BadRequestError2(`"${field}" is required and must be a string.`);
|
|
123
|
+
}
|
|
124
|
+
const trimmed = value.trim();
|
|
125
|
+
if (options.minLength !== undefined && trimmed.length < options.minLength) {
|
|
126
|
+
throw new BadRequestError2(`"${field}" must be at least ${options.minLength} characters.`);
|
|
127
|
+
}
|
|
128
|
+
if (options.maxLength !== undefined && trimmed.length > options.maxLength) {
|
|
129
|
+
throw new BadRequestError2(`"${field}" must be at most ${options.maxLength} characters.`);
|
|
130
|
+
}
|
|
131
|
+
if (options.pattern && !options.pattern.test(trimmed)) {
|
|
132
|
+
throw new BadRequestError2(`"${field}" has an invalid format.`);
|
|
133
|
+
}
|
|
134
|
+
return trimmed;
|
|
135
|
+
}
|
|
136
|
+
function readOptionalString(payload, field, options = {}) {
|
|
137
|
+
if (!(field in payload) || payload[field] === undefined) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
return readRequiredString(payload, field, options);
|
|
141
|
+
}
|
|
142
|
+
function readRequiredEnum(payload, field, allowedValues) {
|
|
143
|
+
const value = readRequiredString(payload, field);
|
|
144
|
+
if (!allowedValues.includes(value)) {
|
|
145
|
+
throw new BadRequestError2(`"${field}" must be one of: ${allowedValues.join(", ")}.`);
|
|
146
|
+
}
|
|
147
|
+
return value;
|
|
148
|
+
}
|
|
149
|
+
function readOptionalEnum(payload, field, allowedValues) {
|
|
150
|
+
if (!(field in payload) || payload[field] === undefined) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
return readRequiredEnum(payload, field, allowedValues);
|
|
154
|
+
}
|
|
155
|
+
function readRequiredPositiveInt(payload, field) {
|
|
156
|
+
const value = payload[field];
|
|
157
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value <= 0) {
|
|
158
|
+
throw new BadRequestError2(`"${field}" is required and must be a positive integer.`);
|
|
159
|
+
}
|
|
160
|
+
return value;
|
|
161
|
+
}
|
|
162
|
+
function readOptionalPositiveInt(payload, field) {
|
|
163
|
+
if (!(field in payload) || payload[field] === undefined) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
return readRequiredPositiveInt(payload, field);
|
|
167
|
+
}
|
|
66
168
|
function parsePositiveIntParam(value, name = "id") {
|
|
67
169
|
const parsed = Number.parseInt(value, 10);
|
|
68
170
|
if (!Number.isInteger(parsed) || parsed <= 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getstrata/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.53",
|
|
4
4
|
"description": "Strata — Laravel-inspired Bun framework public API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -255,6 +255,11 @@
|
|
|
255
255
|
"import": "./dist/entries/database/repositoryConnection.js",
|
|
256
256
|
"default": "./dist/entries/database/repositoryConnection.js"
|
|
257
257
|
},
|
|
258
|
+
"./database/repositoryQuery": {
|
|
259
|
+
"types": "./dist/core/database/repositoryQuery.d.ts",
|
|
260
|
+
"import": "./dist/entries/database/repositoryQuery.js",
|
|
261
|
+
"default": "./dist/entries/database/repositoryQuery.js"
|
|
262
|
+
},
|
|
258
263
|
"./database/seeders": {
|
|
259
264
|
"types": "./dist/core/database/seeders/runner.d.ts",
|
|
260
265
|
"import": "./dist/entries/database/seeders.js",
|
|
@@ -285,6 +290,11 @@
|
|
|
285
290
|
"import": "./dist/entries/database/types.js",
|
|
286
291
|
"default": "./dist/entries/database/types.js"
|
|
287
292
|
},
|
|
293
|
+
"./database/whereBuilder": {
|
|
294
|
+
"types": "./dist/core/database/whereBuilder.d.ts",
|
|
295
|
+
"import": "./dist/entries/database/whereBuilder.js",
|
|
296
|
+
"default": "./dist/entries/database/whereBuilder.js"
|
|
297
|
+
},
|
|
288
298
|
"./errors/http": {
|
|
289
299
|
"types": "./dist/core/errors/http.d.ts",
|
|
290
300
|
"import": "./dist/entries/errors/http.js",
|
|
@@ -485,6 +495,11 @@
|
|
|
485
495
|
"import": "./dist/entries/http/throttleMiddleware.js",
|
|
486
496
|
"default": "./dist/entries/http/throttleMiddleware.js"
|
|
487
497
|
},
|
|
498
|
+
"./http/validation": {
|
|
499
|
+
"types": "./dist/core/http/validation.d.ts",
|
|
500
|
+
"import": "./dist/entries/http/validation.js",
|
|
501
|
+
"default": "./dist/entries/http/validation.js"
|
|
502
|
+
},
|
|
488
503
|
"./jobs/dispatchWebhookJob": {
|
|
489
504
|
"types": "./dist/core/jobs/dispatchWebhookJob.d.ts",
|
|
490
505
|
"import": "./dist/entries/jobs/dispatchWebhookJob.js",
|
|
@@ -727,7 +742,7 @@
|
|
|
727
742
|
"build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta",
|
|
728
743
|
"build:types": "tsc -p tsconfig.types.json",
|
|
729
744
|
"prepublishOnly": "bun run build && bun ../../scripts/prepare-core-package-publish.ts",
|
|
730
|
-
"build:subpaths": "bun build entries/auth/abilityChecker.ts entries/auth/membershipMiddleware.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/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/seeders.ts entries/database/seeders/types.ts entries/database/schema.ts entries/database/table.ts entries/database/types.ts entries/facades.ts entries/http/authMiddleware.ts entries/http/authorizeMiddleware.ts entries/http/bodySizeLimitMiddleware.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/route.ts entries/http/routeMiddleware.ts entries/http/routeModelBinding.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/jobs/dispatchWebhookJob.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/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/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/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.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/authContext --external @getstrata/core/auth/guard --external @getstrata/core/auth/membershipContext --external @getstrata/core/auth/membershipScope --external @getstrata/core/auth/membershipService --external @getstrata/core/auth/policy --external @getstrata/core/database --external @getstrata/core/database/baseRepository --external @getstrata/core/database/bindConnection --external @getstrata/core/database/boundConnection --external @getstrata/core/database/connection --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/repositoryConnection --external @getstrata/core/database/transaction --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/http --external @getstrata/core/http/middleware --external @getstrata/core/http/requestMetaContext --external @getstrata/core/notifications --external @getstrata/core/queue/jobRegistry --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/security/securityEvents --external @getstrata/core/tenant/tenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/tracing/traceContext",
|
|
745
|
+
"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/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/route.ts entries/http/routeMiddleware.ts entries/http/routeModelBinding.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/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/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/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/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.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/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/cookies --external @getstrata/core/http/contentNegotiation --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/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/scimThrottleMiddleware --external @getstrata/core/http/securityHeadersMiddleware --external @getstrata/core/http/securedRouteModelBinding --external @getstrata/core/http/requestMetaContext --external @getstrata/core/http/webErrorResponse --external @getstrata/core/http/webFormRequest --external @getstrata/core/http/throttleMiddleware --external @getstrata/core/http/validation --external @getstrata/core/jobs/dispatchWebhookJob --external @getstrata/core/jobs/invalidateCacheTagsJob --external @getstrata/core/lifecycle/gracefulShutdown --external @getstrata/core/logging/logger --external @getstrata/core/logging/requestLoggingMiddleware --external @getstrata/core/mail/mailer --external @getstrata/core/mail/markdownMail --external @getstrata/core/mail/markdownMailable --external @getstrata/core/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/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/tenantContext --external @getstrata/core/tenant/tenantDatabaseScope --external @getstrata/core/tenant/databaseTenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
|
|
731
746
|
"build:shims": "bun ../../scripts/write-core-shared-shims.ts"
|
|
732
747
|
},
|
|
733
748
|
"publishConfig": {
|