@getstrata/core 1.1.2 → 1.1.4
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 +8 -0
- package/dist/core/database/model.d.ts +4 -3
- package/dist/core/http/index.d.ts +1 -1
- package/dist/core/http/parseMultipartUpload.d.ts +2 -1
- package/dist/entries/database/model.js +21 -2
- package/dist/entries/http/parseMultipartUpload.js +22 -15
- package/dist/entries/http/uploads.js +62 -0
- package/dist/framework/public-api.d.ts +1 -1
- package/dist/index.js +42 -16
- package/package.json +7 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @getstrata/core changelog
|
|
2
2
|
|
|
3
|
+
## 1.1.4
|
|
4
|
+
|
|
5
|
+
- Publish http/uploads, validateUploadFile, migration-adoption docs
|
|
6
|
+
|
|
7
|
+
## 1.1.3
|
|
8
|
+
|
|
9
|
+
- Eager with() arrays, OpenAPI mkdir, public-read/auth docs
|
|
10
|
+
|
|
3
11
|
## 1.1.2
|
|
4
12
|
|
|
5
13
|
- Product CLI helpers, file migrations, and job discovery.
|
|
@@ -14,6 +14,7 @@ interface ModelConstructor<TEntity extends object, PrimaryKey extends keyof TEnt
|
|
|
14
14
|
}
|
|
15
15
|
type AnyModel = Model<Record<string, unknown>, "id">;
|
|
16
16
|
type RelatedRef<TRelated extends object, RelatedKey extends keyof TRelated & string> = RelatedModelClass<TRelated, RelatedKey> | string | (() => RelatedModelClass<TRelated, RelatedKey>);
|
|
17
|
+
type RelationNameInput = string | readonly string[];
|
|
17
18
|
type ModelObserver = {
|
|
18
19
|
retrieved?: (model: AnyModel) => unknown;
|
|
19
20
|
creating?: (model: AnyModel) => unknown;
|
|
@@ -36,7 +37,7 @@ declare class ModelQuery {
|
|
|
36
37
|
readonly query: RepositoryQuery<Record<string, unknown>, "id">;
|
|
37
38
|
private readonly eager;
|
|
38
39
|
constructor(modelClass: object, query: RepositoryQuery<Record<string, unknown>, "id">);
|
|
39
|
-
with(...relations:
|
|
40
|
+
with(...relations: RelationNameInput[]): this;
|
|
40
41
|
where(input: QueryWhere<object> | ((builder: import("./whereBuilder.ts").WhereBuilder<object>) => void)): this;
|
|
41
42
|
orWhere(input: QueryWhere<object> | ((builder: import("./whereBuilder.ts").WhereBuilder<object>) => void)): this;
|
|
42
43
|
orderBy(orderBy: QueryOptions<object>["orderBy"]): this;
|
|
@@ -124,7 +125,7 @@ declare class Model<TEntity extends object, PrimaryKey extends keyof TEntity & s
|
|
|
124
125
|
static query(this: object): ModelQuery;
|
|
125
126
|
static newFromRecord(this: object, record: object, exists?: boolean): Model<Record<string, unknown>, "id">;
|
|
126
127
|
static create(this: object, attributes: Record<string, unknown>, forced?: Record<string, unknown>): Promise<Model<Record<string, unknown>, "id">>;
|
|
127
|
-
static with(this: object, ...relations:
|
|
128
|
+
static with(this: object, ...relations: RelationNameInput[]): ModelQuery;
|
|
128
129
|
static withTrashed(this: object): ModelQuery;
|
|
129
130
|
static onlyTrashed(this: object): ModelQuery;
|
|
130
131
|
static chunk(this: object, count: number, callback: (models: Array<Model<Record<string, unknown>, "id">>) => Promise<boolean | void>): Promise<void>;
|
|
@@ -173,7 +174,7 @@ declare class Model<TEntity extends object, PrimaryKey extends keyof TEntity & s
|
|
|
173
174
|
morphMany<TRelated extends object, RelatedKey extends keyof TRelated & string>(related: RelatedRef<TRelated, RelatedKey>, morphName: string, typeKey?: keyof TRelated & string, idKey?: keyof TRelated & string, morphType?: string): MorphManyRelationQuery<TEntity, PrimaryKey, TRelated, RelatedKey>;
|
|
174
175
|
morphOne<TRelated extends object, RelatedKey extends keyof TRelated & string>(related: RelatedRef<TRelated, RelatedKey>, morphName: string, typeKey?: keyof TRelated & string, idKey?: keyof TRelated & string, morphType?: string): MorphOneRelationQuery<TEntity, PrimaryKey, TRelated, RelatedKey>;
|
|
175
176
|
morphTo(relatedByType: Record<string, RelatedRef<Record<string, unknown>, "id">>, morphName?: string, typeKey?: keyof TEntity & string, idKey?: keyof TEntity & string): MorphToRelationQuery<TEntity, PrimaryKey>;
|
|
176
|
-
load(...names:
|
|
177
|
+
load(...names: RelationNameInput[]): Promise<this>;
|
|
177
178
|
loaded<T = unknown>(name: string): T | undefined;
|
|
178
179
|
setLoaded(name: string, value: unknown): this;
|
|
179
180
|
mergeAttributes(patch: Partial<TEntity>): this;
|
|
@@ -10,7 +10,7 @@ export type { Middleware, RouteHandler } from "./middleware";
|
|
|
10
10
|
export { applyMiddlewareToRoutes, composeMiddleware, requestIdMiddleware, wrapRouteHandler, } from "./middleware";
|
|
11
11
|
export { buildPaginationMeta, DEFAULT_PER_PAGE, MAX_PER_PAGE, paginatedResponse, parsePaginationQuery, } from "./pagination";
|
|
12
12
|
export type { ParsedUpload } from "./parseMultipartUpload";
|
|
13
|
-
export { parseMultipartUpload, sanitizeUploadFileName } from "./parseMultipartUpload";
|
|
13
|
+
export { parseMultipartUpload, sanitizeUploadFileName, validateUploadFile, } from "./parseMultipartUpload";
|
|
14
14
|
export { createRequireAuthMiddleware } from "./requireAuthMiddleware";
|
|
15
15
|
export { serializeDate, toPaginatedResourceCollection, toResourceCollection } from "./resources";
|
|
16
16
|
export { createdResponse, errorResponse, jsonResponse, noContentResponse, withErrorHandling, } from "./response";
|
|
@@ -5,6 +5,7 @@ interface ParsedUpload {
|
|
|
5
5
|
contents: Uint8Array;
|
|
6
6
|
}
|
|
7
7
|
declare function sanitizeUploadFileName(name: string): string;
|
|
8
|
+
declare function validateUploadFile(file: File, fieldName?: string): Promise<ParsedUpload>;
|
|
8
9
|
declare function parseMultipartUpload(request: Request, fieldName?: string): Promise<ParsedUpload>;
|
|
9
10
|
export type { ParsedUpload };
|
|
10
|
-
export { parseMultipartUpload, sanitizeUploadFileName };
|
|
11
|
+
export { parseMultipartUpload, sanitizeUploadFileName, validateUploadFile };
|
|
@@ -1469,6 +1469,25 @@ var namedModels = new Map;
|
|
|
1469
1469
|
var modelGlobalScopes = new WeakMap;
|
|
1470
1470
|
var modelObservers = new WeakMap;
|
|
1471
1471
|
var modelBooted = new WeakSet;
|
|
1472
|
+
function flattenRelationNames(relations) {
|
|
1473
|
+
const names = [];
|
|
1474
|
+
for (const item of relations) {
|
|
1475
|
+
if (typeof item === "string") {
|
|
1476
|
+
if (item.length > 0) {
|
|
1477
|
+
names.push(item);
|
|
1478
|
+
}
|
|
1479
|
+
continue;
|
|
1480
|
+
}
|
|
1481
|
+
if (Array.isArray(item)) {
|
|
1482
|
+
for (const nested of item) {
|
|
1483
|
+
if (typeof nested === "string" && nested.length > 0) {
|
|
1484
|
+
names.push(nested);
|
|
1485
|
+
}
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
return names;
|
|
1490
|
+
}
|
|
1472
1491
|
async function runObservers(model, hook) {
|
|
1473
1492
|
const observers = modelObservers.get(model.constructor) ?? [];
|
|
1474
1493
|
for (const observer of observers) {
|
|
@@ -1725,7 +1744,7 @@ class ModelQuery {
|
|
|
1725
1744
|
const statics = modelStatics(this.modelClass);
|
|
1726
1745
|
ensureBooted(this.modelClass);
|
|
1727
1746
|
const dummy = statics.newFromRecord({}, false);
|
|
1728
|
-
for (const path of relations) {
|
|
1747
|
+
for (const path of flattenRelationNames(relations)) {
|
|
1729
1748
|
const name = path.split(".")[0] ?? path;
|
|
1730
1749
|
const method = dummy[name];
|
|
1731
1750
|
if (typeof method !== "function") {
|
|
@@ -2387,7 +2406,7 @@ class Model {
|
|
|
2387
2406
|
}));
|
|
2388
2407
|
}
|
|
2389
2408
|
async load(...names) {
|
|
2390
|
-
for (const name of names) {
|
|
2409
|
+
for (const name of flattenRelationNames(names)) {
|
|
2391
2410
|
if (name.includes(".")) {
|
|
2392
2411
|
await loadNested(this, name);
|
|
2393
2412
|
continue;
|
|
@@ -67,35 +67,42 @@ function sanitizeUploadFileName(name) {
|
|
|
67
67
|
const sanitized = base.replace(/[^\w.\-()+ ]+/g, "_").slice(0, 200);
|
|
68
68
|
return sanitized.length > 0 ? sanitized : "upload";
|
|
69
69
|
}
|
|
70
|
-
async function
|
|
71
|
-
|
|
72
|
-
if (!contentType.includes("multipart/form-data")) {
|
|
73
|
-
throw new BadRequestError("Expected multipart form data.");
|
|
74
|
-
}
|
|
75
|
-
const formData = await request.formData();
|
|
76
|
-
const value = formData.get(fieldName);
|
|
77
|
-
if (!(value instanceof File)) {
|
|
70
|
+
async function validateUploadFile(file, fieldName = "file") {
|
|
71
|
+
if (!(file instanceof File)) {
|
|
78
72
|
throw new BadRequestError(`Missing upload field "${fieldName}".`);
|
|
79
73
|
}
|
|
80
|
-
if (
|
|
74
|
+
if (file.size <= 0) {
|
|
81
75
|
throw new BadRequestError("Uploaded file is empty.");
|
|
82
76
|
}
|
|
83
77
|
const maxBytes = resolveMaxUploadBytes();
|
|
84
|
-
if (
|
|
78
|
+
if (file.size > maxBytes) {
|
|
85
79
|
throw new PayloadTooLargeError(`Upload exceeds the ${maxBytes} byte limit.`);
|
|
86
80
|
}
|
|
87
|
-
const mimeType = normalizeMimeType2(
|
|
81
|
+
const mimeType = normalizeMimeType2(file.type.trim() || "application/octet-stream");
|
|
88
82
|
if (!isAllowedMimeType(mimeType)) {
|
|
89
83
|
throw new BadRequestError(`File type "${mimeType}" is not allowed.`);
|
|
90
84
|
}
|
|
91
85
|
return {
|
|
92
|
-
fileName: sanitizeUploadFileName(
|
|
86
|
+
fileName: sanitizeUploadFileName(file.name),
|
|
93
87
|
mimeType,
|
|
94
|
-
size:
|
|
95
|
-
contents: new Uint8Array(await
|
|
88
|
+
size: file.size,
|
|
89
|
+
contents: new Uint8Array(await file.arrayBuffer())
|
|
96
90
|
};
|
|
97
91
|
}
|
|
92
|
+
async function parseMultipartUpload(request, fieldName = "file") {
|
|
93
|
+
const contentType = request.headers.get("content-type")?.toLowerCase() ?? "";
|
|
94
|
+
if (!contentType.includes("multipart/form-data")) {
|
|
95
|
+
throw new BadRequestError("Expected multipart form data.");
|
|
96
|
+
}
|
|
97
|
+
const formData = await request.formData();
|
|
98
|
+
const value = formData.get(fieldName);
|
|
99
|
+
if (!(value instanceof File)) {
|
|
100
|
+
throw new BadRequestError(`Missing upload field "${fieldName}".`);
|
|
101
|
+
}
|
|
102
|
+
return validateUploadFile(value, fieldName);
|
|
103
|
+
}
|
|
98
104
|
export {
|
|
99
105
|
parseMultipartUpload,
|
|
100
|
-
sanitizeUploadFileName
|
|
106
|
+
sanitizeUploadFileName,
|
|
107
|
+
validateUploadFile
|
|
101
108
|
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// ../../src/core/runtime/appEnv.ts
|
|
3
|
+
var NON_PRODUCTION_APP_ENVS = new Set(["local", "development", "dev", "test", "testing", "ci"]);
|
|
4
|
+
function normalizeEnvValue(value) {
|
|
5
|
+
return (value ?? "").trim().toLowerCase();
|
|
6
|
+
}
|
|
7
|
+
function isProductionEnv(env = process.env) {
|
|
8
|
+
const appEnv = normalizeEnvValue(env.APP_ENV);
|
|
9
|
+
const nodeEnv = normalizeEnvValue(env.NODE_ENV);
|
|
10
|
+
if (appEnv === "production" || nodeEnv === "production") {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
if (appEnv === "") {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
return !NON_PRODUCTION_APP_ENVS.has(appEnv);
|
|
17
|
+
}
|
|
18
|
+
function envFlagEnabled(value) {
|
|
19
|
+
return value === "true";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ../../src/core/http/uploads.ts
|
|
23
|
+
var DEFAULT_MAX_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
24
|
+
var ALLOWED_UPLOAD_MIME_TYPES = new Set([
|
|
25
|
+
"application/pdf",
|
|
26
|
+
"application/json",
|
|
27
|
+
"application/zip",
|
|
28
|
+
"application/x-zip-compressed",
|
|
29
|
+
"image/jpeg",
|
|
30
|
+
"image/png",
|
|
31
|
+
"image/gif",
|
|
32
|
+
"image/webp",
|
|
33
|
+
"text/plain",
|
|
34
|
+
"text/csv"
|
|
35
|
+
]);
|
|
36
|
+
function resolveMaxUploadBytes() {
|
|
37
|
+
const raw = process.env.MAX_UPLOAD_BYTES?.trim() ?? process.env.MAX_REQUEST_BODY_BYTES?.trim();
|
|
38
|
+
if (!raw) {
|
|
39
|
+
return DEFAULT_MAX_UPLOAD_BYTES;
|
|
40
|
+
}
|
|
41
|
+
const parsed = Number.parseInt(raw, 10);
|
|
42
|
+
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
43
|
+
return DEFAULT_MAX_UPLOAD_BYTES;
|
|
44
|
+
}
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
47
|
+
function normalizeMimeType(mimeType) {
|
|
48
|
+
return mimeType.split(";")[0]?.trim().toLowerCase() ?? "";
|
|
49
|
+
}
|
|
50
|
+
function isAllowedMimeType(mimeType) {
|
|
51
|
+
const normalized = normalizeMimeType(mimeType);
|
|
52
|
+
if (!normalized || normalized === "application/octet-stream") {
|
|
53
|
+
return envFlagEnabled(process.env.UPLOAD_ALLOW_UNKNOWN_MIME);
|
|
54
|
+
}
|
|
55
|
+
return ALLOWED_UPLOAD_MIME_TYPES.has(normalized);
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
ALLOWED_UPLOAD_MIME_TYPES,
|
|
59
|
+
DEFAULT_MAX_UPLOAD_BYTES,
|
|
60
|
+
isAllowedMimeType,
|
|
61
|
+
resolveMaxUploadBytes
|
|
62
|
+
};
|
|
@@ -91,7 +91,7 @@ export { createLoginThrottleMiddleware, createMemoryLoginThrottleMiddleware, res
|
|
|
91
91
|
export { createMemoryThrottleMiddleware, resetMemoryThrottleForTests, } from "../core/http/memoryThrottleMiddleware.ts";
|
|
92
92
|
export { createMetricsMiddleware, normalizeMetricPath } from "../core/http/metricsMiddleware.ts";
|
|
93
93
|
export type { Middleware, RouteHandler } from "../core/http/middleware.ts";
|
|
94
|
-
export { type ParsedUpload, parseMultipartUpload, sanitizeUploadFileName, } from "../core/http/parseMultipartUpload.ts";
|
|
94
|
+
export { type ParsedUpload, parseMultipartUpload, sanitizeUploadFileName, validateUploadFile, } from "../core/http/parseMultipartUpload.ts";
|
|
95
95
|
export type { RequestMeta } from "../core/http/requestMetaContext.ts";
|
|
96
96
|
export { currentRequestMeta, requestMetaContext, runWithRequestMeta, } from "../core/http/requestMetaContext.ts";
|
|
97
97
|
export { createRequireAbilityMiddleware } from "../core/http/requireAbilityMiddleware.ts";
|
package/dist/index.js
CHANGED
|
@@ -5868,6 +5868,25 @@ var namedModels = new Map;
|
|
|
5868
5868
|
var modelGlobalScopes = new WeakMap;
|
|
5869
5869
|
var modelObservers = new WeakMap;
|
|
5870
5870
|
var modelBooted = new WeakSet;
|
|
5871
|
+
function flattenRelationNames(relations) {
|
|
5872
|
+
const names = [];
|
|
5873
|
+
for (const item of relations) {
|
|
5874
|
+
if (typeof item === "string") {
|
|
5875
|
+
if (item.length > 0) {
|
|
5876
|
+
names.push(item);
|
|
5877
|
+
}
|
|
5878
|
+
continue;
|
|
5879
|
+
}
|
|
5880
|
+
if (Array.isArray(item)) {
|
|
5881
|
+
for (const nested of item) {
|
|
5882
|
+
if (typeof nested === "string" && nested.length > 0) {
|
|
5883
|
+
names.push(nested);
|
|
5884
|
+
}
|
|
5885
|
+
}
|
|
5886
|
+
}
|
|
5887
|
+
}
|
|
5888
|
+
return names;
|
|
5889
|
+
}
|
|
5871
5890
|
async function runObservers(model, hook) {
|
|
5872
5891
|
const observers = modelObservers.get(model.constructor) ?? [];
|
|
5873
5892
|
for (const observer of observers) {
|
|
@@ -6124,7 +6143,7 @@ class ModelQuery {
|
|
|
6124
6143
|
const statics = modelStatics(this.modelClass);
|
|
6125
6144
|
ensureBooted(this.modelClass);
|
|
6126
6145
|
const dummy = statics.newFromRecord({}, false);
|
|
6127
|
-
for (const path of relations) {
|
|
6146
|
+
for (const path of flattenRelationNames(relations)) {
|
|
6128
6147
|
const name = path.split(".")[0] ?? path;
|
|
6129
6148
|
const method = dummy[name];
|
|
6130
6149
|
if (typeof method !== "function") {
|
|
@@ -6786,7 +6805,7 @@ class Model {
|
|
|
6786
6805
|
}));
|
|
6787
6806
|
}
|
|
6788
6807
|
async load(...names) {
|
|
6789
|
-
for (const name of names) {
|
|
6808
|
+
for (const name of flattenRelationNames(names)) {
|
|
6790
6809
|
if (name.includes(".")) {
|
|
6791
6810
|
await loadNested(this, name);
|
|
6792
6811
|
continue;
|
|
@@ -9061,34 +9080,40 @@ function sanitizeUploadFileName(name) {
|
|
|
9061
9080
|
const sanitized = base.replace(/[^\w.\-()+ ]+/g, "_").slice(0, 200);
|
|
9062
9081
|
return sanitized.length > 0 ? sanitized : "upload";
|
|
9063
9082
|
}
|
|
9064
|
-
async function
|
|
9065
|
-
|
|
9066
|
-
if (!contentType.includes("multipart/form-data")) {
|
|
9067
|
-
throw new BadRequestError("Expected multipart form data.");
|
|
9068
|
-
}
|
|
9069
|
-
const formData = await request.formData();
|
|
9070
|
-
const value = formData.get(fieldName);
|
|
9071
|
-
if (!(value instanceof File)) {
|
|
9083
|
+
async function validateUploadFile(file, fieldName = "file") {
|
|
9084
|
+
if (!(file instanceof File)) {
|
|
9072
9085
|
throw new BadRequestError(`Missing upload field "${fieldName}".`);
|
|
9073
9086
|
}
|
|
9074
|
-
if (
|
|
9087
|
+
if (file.size <= 0) {
|
|
9075
9088
|
throw new BadRequestError("Uploaded file is empty.");
|
|
9076
9089
|
}
|
|
9077
9090
|
const maxBytes = resolveMaxUploadBytes();
|
|
9078
|
-
if (
|
|
9091
|
+
if (file.size > maxBytes) {
|
|
9079
9092
|
throw new PayloadTooLargeError(`Upload exceeds the ${maxBytes} byte limit.`);
|
|
9080
9093
|
}
|
|
9081
|
-
const mimeType = normalizeMimeType2(
|
|
9094
|
+
const mimeType = normalizeMimeType2(file.type.trim() || "application/octet-stream");
|
|
9082
9095
|
if (!isAllowedMimeType(mimeType)) {
|
|
9083
9096
|
throw new BadRequestError(`File type "${mimeType}" is not allowed.`);
|
|
9084
9097
|
}
|
|
9085
9098
|
return {
|
|
9086
|
-
fileName: sanitizeUploadFileName(
|
|
9099
|
+
fileName: sanitizeUploadFileName(file.name),
|
|
9087
9100
|
mimeType,
|
|
9088
|
-
size:
|
|
9089
|
-
contents: new Uint8Array(await
|
|
9101
|
+
size: file.size,
|
|
9102
|
+
contents: new Uint8Array(await file.arrayBuffer())
|
|
9090
9103
|
};
|
|
9091
9104
|
}
|
|
9105
|
+
async function parseMultipartUpload(request, fieldName = "file") {
|
|
9106
|
+
const contentType = request.headers.get("content-type")?.toLowerCase() ?? "";
|
|
9107
|
+
if (!contentType.includes("multipart/form-data")) {
|
|
9108
|
+
throw new BadRequestError("Expected multipart form data.");
|
|
9109
|
+
}
|
|
9110
|
+
const formData = await request.formData();
|
|
9111
|
+
const value = formData.get(fieldName);
|
|
9112
|
+
if (!(value instanceof File)) {
|
|
9113
|
+
throw new BadRequestError(`Missing upload field "${fieldName}".`);
|
|
9114
|
+
}
|
|
9115
|
+
return validateUploadFile(value, fieldName);
|
|
9116
|
+
}
|
|
9092
9117
|
// ../../src/core/http/requireAuthMiddleware.ts
|
|
9093
9118
|
function createRequireAuthMiddleware(auth) {
|
|
9094
9119
|
return async (request, next) => {
|
|
@@ -12017,6 +12042,7 @@ export {
|
|
|
12017
12042
|
unregisterNamedConnection,
|
|
12018
12043
|
useSqlDialect,
|
|
12019
12044
|
validateObject,
|
|
12045
|
+
validateUploadFile,
|
|
12020
12046
|
verifyCsrfToken,
|
|
12021
12047
|
verifyJwt,
|
|
12022
12048
|
webErrorResponse,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getstrata/core",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "Strata Bun framework public API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -620,6 +620,11 @@
|
|
|
620
620
|
"import": "./dist/entries/http/throttleMiddleware.js",
|
|
621
621
|
"default": "./dist/entries/http/throttleMiddleware.js"
|
|
622
622
|
},
|
|
623
|
+
"./http/uploads": {
|
|
624
|
+
"types": "./dist/core/http/uploads.d.ts",
|
|
625
|
+
"import": "./dist/entries/http/uploads.js",
|
|
626
|
+
"default": "./dist/entries/http/uploads.js"
|
|
627
|
+
},
|
|
623
628
|
"./http/validation": {
|
|
624
629
|
"types": "./dist/core/http/validation.d.ts",
|
|
625
630
|
"import": "./dist/entries/http/validation.js",
|
|
@@ -923,7 +928,7 @@
|
|
|
923
928
|
"build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta --external mysql2 --external @node-saml/node-saml",
|
|
924
929
|
"build:types": "tsc -p tsconfig.types.json",
|
|
925
930
|
"prepublishOnly": "bun run build && bun ../../scripts/prepare-core-package-publish.ts",
|
|
926
|
-
"build:subpaths": "bun build entries/auth/accessControl.ts entries/auth/abilityChecker.ts entries/auth/emailVerification.ts entries/auth/jwt.ts entries/auth/jwtGuard.ts entries/auth/basicAuthGuard.ts entries/auth/tokenAbilityChecker.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/saml/samlServiceProvider.ts entries/auth/password.ts entries/auth/passwordLogin.ts entries/auth/oneTimeToken.ts entries/auth/intendedUrlCookie.ts entries/auth/passwordConfirmCookie.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/authUserDirectory.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/sqliteConnection.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/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/requireVerifiedMiddleware.ts entries/http/requirePasswordConfirmMiddleware.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/statelessAuth.ts entries/http/scimThrottleMiddleware.ts entries/http/securityHeadersMiddleware.ts entries/http/securedRouteModelBinding.ts entries/http/webFormRequest.ts entries/http/throttleMiddleware.ts entries/http/validation.ts entries/jobs/exportAuditLogsJob.ts entries/jobs/invalidateCacheTagsJob.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/appEnv.ts entries/runtime/frontendMode.ts entries/runtime/asyncContextStore.ts entries/scheduler/schedule.ts entries/scheduler/osCron.ts entries/security/oauthState.ts entries/security/publicReads.ts entries/security/recoveryCodes.ts entries/security/safeFetch.ts entries/security/safePath.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/tenant/enableTenantRls.ts entries/terminal/runShell.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts --outdir dist --root . --target bun --external bun --external eta --external mysql2 --external @node-saml/node-saml --external @getstrata/core --external @getstrata/core/auth/accessControl --external @getstrata/core/auth/abilityChecker --external @getstrata/core/auth/authContext --external @getstrata/core/auth/emailVerification --external @getstrata/core/auth/guard --external @getstrata/core/auth/jwt --external @getstrata/core/auth/jwtGuard --external @getstrata/core/auth/basicAuthGuard --external @getstrata/core/auth/tokenAbilityChecker --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/saml/samlServiceProvider --external @getstrata/core/auth/password --external @getstrata/core/auth/passwordLogin --external @getstrata/core/auth/oneTimeToken --external @getstrata/core/auth/intendedUrlCookie --external @getstrata/core/auth/passwordConfirmCookie --external @getstrata/core/auth/policy --external @getstrata/core/auth/scimAuthMiddleware --external @getstrata/core/auth/sessionCookie --external @getstrata/core/auth/sessionGuard --external @getstrata/core/auth/tokenHash --external @getstrata/core/audit/exportAuditLogs --external @getstrata/core/audit/siemFormatter --external @getstrata/core/admin/formatValue --external @getstrata/core/admin/registry --external @getstrata/core/admin/types --external @getstrata/core/cache/tags --external @getstrata/core/cache/createCacheStore --external @getstrata/core/cache/repository --external @getstrata/core/cache/simpleCache --external @getstrata/core/cache/simpleCacheStore --external @getstrata/core/config/envSchema --external @getstrata/core/contracts/serviceTokens --external @getstrata/core/contracts/authUserDirectory --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/connectionContext --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/dialect --external @getstrata/core/database/mysqlConnection --external @getstrata/core/database/namedConnections --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/sqliteConnection --external @getstrata/core/database/table --external @getstrata/core/database/transaction --external @getstrata/core/database/types --external @getstrata/core/database/whereBuilder --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/facades --external @getstrata/core/http --external @getstrata/core/http/authMiddleware --external @getstrata/core/http/authorizeMiddleware --external @getstrata/core/http/bodySizeLimitMiddleware --external @getstrata/core/http/clientIp --external @getstrata/core/http/cookies --external @getstrata/core/http/contentNegotiation --external @getstrata/core/http/contentSecurityPolicy --external @getstrata/core/http/conditionalResponse --external @getstrata/core/http/corsMiddleware --external @getstrata/core/http/csrfMiddleware --external @getstrata/core/http/csrfProtection --external @getstrata/core/http/csrfToken --external @getstrata/core/http/etag --external @getstrata/core/http/flashSession --external @getstrata/core/http/flashMiddleware --external @getstrata/core/http/formRequest --external @getstrata/core/http/middleware --external @getstrata/core/http/metricsMiddleware --external @getstrata/core/http/loginThrottleMiddleware --external @getstrata/core/http/memoryThrottleMiddleware --external @getstrata/core/http/pagination --external @getstrata/core/http/parseFormBody --external @getstrata/core/http/parseMultipartUpload --external @getstrata/core/http/requireAbilityMiddleware --external @getstrata/core/http/requireAuthMiddleware --external @getstrata/core/http/requireGlobalAdminMiddleware --external @getstrata/core/http/requireWebAuthMiddleware --external @getstrata/core/http/requireVerifiedMiddleware --external @getstrata/core/http/requirePasswordConfirmMiddleware --external @getstrata/core/http/resources --external @getstrata/core/http/response --external @getstrata/core/http/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/safeInternalPath --external @getstrata/core/http/signedUrl --external @getstrata/core/http/statelessAuth --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/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/appEnv --external @getstrata/core/runtime/appKeyPrefix --external @getstrata/core/runtime/frontendMode --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/runtime/asyncContextStore --external @getstrata/core/scheduler/schedule --external @getstrata/core/scheduler/osCron --external @getstrata/core/security/oauthState --external @getstrata/core/security/publicReads --external @getstrata/core/security/recoveryCodes --external @getstrata/core/security/safeFetch --external @getstrata/core/security/safePath --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/tenant/enableTenantRls --external @getstrata/core/terminal/runShell --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
|
|
931
|
+
"build:subpaths": "bun build entries/auth/accessControl.ts entries/auth/abilityChecker.ts entries/auth/emailVerification.ts entries/auth/jwt.ts entries/auth/jwtGuard.ts entries/auth/basicAuthGuard.ts entries/auth/tokenAbilityChecker.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/saml/samlServiceProvider.ts entries/auth/password.ts entries/auth/passwordLogin.ts entries/auth/oneTimeToken.ts entries/auth/intendedUrlCookie.ts entries/auth/passwordConfirmCookie.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/authUserDirectory.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/sqliteConnection.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/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/requireVerifiedMiddleware.ts entries/http/requirePasswordConfirmMiddleware.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/statelessAuth.ts entries/http/scimThrottleMiddleware.ts entries/http/securityHeadersMiddleware.ts entries/http/securedRouteModelBinding.ts entries/http/webFormRequest.ts entries/http/throttleMiddleware.ts entries/http/uploads.ts entries/http/validation.ts entries/jobs/exportAuditLogsJob.ts entries/jobs/invalidateCacheTagsJob.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/appEnv.ts entries/runtime/frontendMode.ts entries/runtime/asyncContextStore.ts entries/scheduler/schedule.ts entries/scheduler/osCron.ts entries/security/oauthState.ts entries/security/publicReads.ts entries/security/recoveryCodes.ts entries/security/safeFetch.ts entries/security/safePath.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/tenant/enableTenantRls.ts entries/terminal/runShell.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts --outdir dist --root . --target bun --external bun --external eta --external mysql2 --external @node-saml/node-saml --external @getstrata/core --external @getstrata/core/auth/accessControl --external @getstrata/core/auth/abilityChecker --external @getstrata/core/auth/authContext --external @getstrata/core/auth/emailVerification --external @getstrata/core/auth/guard --external @getstrata/core/auth/jwt --external @getstrata/core/auth/jwtGuard --external @getstrata/core/auth/basicAuthGuard --external @getstrata/core/auth/tokenAbilityChecker --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/saml/samlServiceProvider --external @getstrata/core/auth/password --external @getstrata/core/auth/passwordLogin --external @getstrata/core/auth/oneTimeToken --external @getstrata/core/auth/intendedUrlCookie --external @getstrata/core/auth/passwordConfirmCookie --external @getstrata/core/auth/policy --external @getstrata/core/auth/scimAuthMiddleware --external @getstrata/core/auth/sessionCookie --external @getstrata/core/auth/sessionGuard --external @getstrata/core/auth/tokenHash --external @getstrata/core/audit/exportAuditLogs --external @getstrata/core/audit/siemFormatter --external @getstrata/core/admin/formatValue --external @getstrata/core/admin/registry --external @getstrata/core/admin/types --external @getstrata/core/cache/tags --external @getstrata/core/cache/createCacheStore --external @getstrata/core/cache/repository --external @getstrata/core/cache/simpleCache --external @getstrata/core/cache/simpleCacheStore --external @getstrata/core/config/envSchema --external @getstrata/core/contracts/serviceTokens --external @getstrata/core/contracts/authUserDirectory --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/connectionContext --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/dialect --external @getstrata/core/database/mysqlConnection --external @getstrata/core/database/namedConnections --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/sqliteConnection --external @getstrata/core/database/table --external @getstrata/core/database/transaction --external @getstrata/core/database/types --external @getstrata/core/database/whereBuilder --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/facades --external @getstrata/core/http --external @getstrata/core/http/authMiddleware --external @getstrata/core/http/authorizeMiddleware --external @getstrata/core/http/bodySizeLimitMiddleware --external @getstrata/core/http/clientIp --external @getstrata/core/http/cookies --external @getstrata/core/http/contentNegotiation --external @getstrata/core/http/contentSecurityPolicy --external @getstrata/core/http/conditionalResponse --external @getstrata/core/http/corsMiddleware --external @getstrata/core/http/csrfMiddleware --external @getstrata/core/http/csrfProtection --external @getstrata/core/http/csrfToken --external @getstrata/core/http/etag --external @getstrata/core/http/flashSession --external @getstrata/core/http/flashMiddleware --external @getstrata/core/http/formRequest --external @getstrata/core/http/middleware --external @getstrata/core/http/metricsMiddleware --external @getstrata/core/http/loginThrottleMiddleware --external @getstrata/core/http/memoryThrottleMiddleware --external @getstrata/core/http/pagination --external @getstrata/core/http/parseFormBody --external @getstrata/core/http/parseMultipartUpload --external @getstrata/core/http/requireAbilityMiddleware --external @getstrata/core/http/requireAuthMiddleware --external @getstrata/core/http/requireGlobalAdminMiddleware --external @getstrata/core/http/requireWebAuthMiddleware --external @getstrata/core/http/requireVerifiedMiddleware --external @getstrata/core/http/requirePasswordConfirmMiddleware --external @getstrata/core/http/resources --external @getstrata/core/http/response --external @getstrata/core/http/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/safeInternalPath --external @getstrata/core/http/signedUrl --external @getstrata/core/http/statelessAuth --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/uploads --external @getstrata/core/http/validation --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/appEnv --external @getstrata/core/runtime/appKeyPrefix --external @getstrata/core/runtime/frontendMode --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/runtime/asyncContextStore --external @getstrata/core/scheduler/schedule --external @getstrata/core/scheduler/osCron --external @getstrata/core/security/oauthState --external @getstrata/core/security/publicReads --external @getstrata/core/security/recoveryCodes --external @getstrata/core/security/safeFetch --external @getstrata/core/security/safePath --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/tenant/enableTenantRls --external @getstrata/core/terminal/runShell --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
|
|
927
932
|
"build:shims": "bun ../../scripts/write-core-shared-shims.ts"
|
|
928
933
|
},
|
|
929
934
|
"publishConfig": {
|