@getstrata/core 0.5.43 → 0.5.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entries/admin/types.js +1 -0
- package/dist/entries/auth/abilityChecker.js +1 -0
- package/dist/entries/auth/membershipMiddleware.js +298 -0
- package/dist/entries/auth/scimAuthMiddleware.js +10 -0
- package/dist/entries/auth/sessionGuard.js +14 -0
- package/dist/entries/database/bindConnection.js +1 -22
- package/dist/entries/database/boundConnection.js +1 -19
- package/dist/entries/database/connection.js +1 -12
- package/dist/entries/database/defaultConnection.js +1 -0
- package/dist/entries/database/migrations/types.js +1 -0
- package/dist/entries/database/migrations.js +127 -0
- package/dist/entries/database/repositoryConnection.js +1 -0
- package/dist/entries/database/seeders/types.js +1 -0
- package/dist/entries/http/conditionalResponse.js +192 -0
- package/dist/entries/http/corsMiddleware.js +54 -0
- package/dist/entries/http/csrfMiddleware.js +236 -0
- package/dist/entries/http/csrfToken.js +3 -0
- package/dist/entries/http/flashMiddleware.js +143 -0
- package/dist/entries/http/formRequest.js +158 -0
- package/dist/entries/http/loginThrottleMiddleware.js +46 -0
- package/dist/entries/http/memoryThrottleMiddleware.js +30 -0
- package/dist/entries/http/pagination.js +185 -0
- package/dist/entries/http/requireAbilityMiddleware.js +110 -0
- package/dist/entries/http/requireAuthMiddleware.js +80 -0
- package/dist/entries/http/requireGlobalAdminMiddleware.js +147 -0
- package/dist/entries/http/requireWebAuthMiddleware.js +107 -0
- package/dist/entries/http/route.js +8 -0
- package/dist/entries/http/routeMiddleware.js +32 -0
- package/dist/entries/http/routeModelBinding.js +147 -0
- package/dist/entries/http/scimThrottleMiddleware.js +23 -0
- package/dist/entries/http/securedRouteModelBinding.js +16 -0
- package/dist/entries/http/securityHeadersMiddleware.js +77 -0
- package/dist/entries/http/throttleMiddleware.js +87 -0
- package/dist/entries/http/webErrorResponse.js +14 -0
- package/dist/entries/http/webFormRequest.js +16 -0
- package/dist/entries/logging/requestLoggingMiddleware.js +89 -0
- package/dist/entries/tenant/tenantDatabaseScope.js +10 -0
- package/dist/entries/tracing/tracingMiddleware.js +103 -0
- package/dist/entries/view.js +14 -0
- package/package.json +147 -7
|
@@ -140,8 +140,24 @@ function currentTenant() {
|
|
|
140
140
|
function currentTenantId() {
|
|
141
141
|
return currentTenant()?.id ?? 1;
|
|
142
142
|
}
|
|
143
|
+
function rateLimitMultiplierForPlan(plan) {
|
|
144
|
+
switch (plan) {
|
|
145
|
+
case "enterprise":
|
|
146
|
+
return 4;
|
|
147
|
+
case "pro":
|
|
148
|
+
return 2;
|
|
149
|
+
default:
|
|
150
|
+
return 1;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
143
153
|
|
|
144
154
|
// ../../src/core/http/validation.ts
|
|
155
|
+
function getQueryParams(request) {
|
|
156
|
+
if (!request) {
|
|
157
|
+
return new URLSearchParams;
|
|
158
|
+
}
|
|
159
|
+
return new URL(request.url).searchParams;
|
|
160
|
+
}
|
|
145
161
|
async function parseJsonBody(request, validator) {
|
|
146
162
|
let payload;
|
|
147
163
|
try {
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// ../../src/core/runtime/asyncContextStore.ts
|
|
3
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
4
|
+
function createAsyncContextStore(key) {
|
|
5
|
+
const symbol = Symbol.for(key);
|
|
6
|
+
const globalRecord = globalThis;
|
|
7
|
+
const existing = globalRecord[symbol];
|
|
8
|
+
if (existing) {
|
|
9
|
+
return existing;
|
|
10
|
+
}
|
|
11
|
+
const store = new AsyncLocalStorage;
|
|
12
|
+
globalRecord[symbol] = store;
|
|
13
|
+
return store;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// ../../src/core/http/requestMetaContext.ts
|
|
17
|
+
var requestMetaContext = createAsyncContextStore("@getstrata/requestMetaContext");
|
|
18
|
+
function runWithRequestMeta(meta, callback) {
|
|
19
|
+
return requestMetaContext.run(meta, callback);
|
|
20
|
+
}
|
|
21
|
+
function currentRequestMeta() {
|
|
22
|
+
return requestMetaContext.getStore() ?? {
|
|
23
|
+
ipAddress: null,
|
|
24
|
+
userAgent: null
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// ../../src/core/logging/logger.ts
|
|
29
|
+
class Logger {
|
|
30
|
+
channel;
|
|
31
|
+
constructor(channel = "app") {
|
|
32
|
+
this.channel = channel;
|
|
33
|
+
}
|
|
34
|
+
write(level, message, context = {}) {
|
|
35
|
+
const entry = {
|
|
36
|
+
level,
|
|
37
|
+
channel: this.channel,
|
|
38
|
+
message,
|
|
39
|
+
timestamp: new Date().toISOString(),
|
|
40
|
+
...context
|
|
41
|
+
};
|
|
42
|
+
const line = JSON.stringify(entry);
|
|
43
|
+
if (level === "error") {
|
|
44
|
+
console.error(line);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.log(line);
|
|
48
|
+
}
|
|
49
|
+
debug(message, context) {
|
|
50
|
+
this.write("debug", message, context);
|
|
51
|
+
}
|
|
52
|
+
info(message, context) {
|
|
53
|
+
this.write("info", message, context);
|
|
54
|
+
}
|
|
55
|
+
warn(message, context) {
|
|
56
|
+
this.write("warn", message, context);
|
|
57
|
+
}
|
|
58
|
+
error(message, context) {
|
|
59
|
+
this.write("error", message, context);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
var appLogger = new Logger("app");
|
|
63
|
+
|
|
64
|
+
// ../../src/core/logging/requestLoggingMiddleware.ts
|
|
65
|
+
function createRequestLoggingMiddleware() {
|
|
66
|
+
return async (request, next) => {
|
|
67
|
+
return await runWithRequestMeta({
|
|
68
|
+
ipAddress: request.headers.get("x-forwarded-for")?.split(",")[0]?.trim() ?? request.headers.get("x-real-ip"),
|
|
69
|
+
userAgent: request.headers.get("user-agent"),
|
|
70
|
+
request
|
|
71
|
+
}, async () => {
|
|
72
|
+
const startedAt = performance.now();
|
|
73
|
+
const requestId = request.headers.get("x-request-id") ?? crypto.randomUUID();
|
|
74
|
+
const response = await next();
|
|
75
|
+
const durationMs = Math.round(performance.now() - startedAt);
|
|
76
|
+
appLogger.info("HTTP request completed", {
|
|
77
|
+
requestId,
|
|
78
|
+
method: request.method,
|
|
79
|
+
path: new URL(request.url).pathname,
|
|
80
|
+
status: response.status,
|
|
81
|
+
durationMs
|
|
82
|
+
});
|
|
83
|
+
return response;
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
createRequestLoggingMiddleware
|
|
89
|
+
};
|
|
@@ -84,6 +84,16 @@ function currentTenant() {
|
|
|
84
84
|
function currentTenantId() {
|
|
85
85
|
return currentTenant()?.id ?? 1;
|
|
86
86
|
}
|
|
87
|
+
function rateLimitMultiplierForPlan(plan) {
|
|
88
|
+
switch (plan) {
|
|
89
|
+
case "enterprise":
|
|
90
|
+
return 4;
|
|
91
|
+
case "pro":
|
|
92
|
+
return 2;
|
|
93
|
+
default:
|
|
94
|
+
return 1;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
87
97
|
|
|
88
98
|
// ../../src/core/tenant/tenantDatabaseScope.ts
|
|
89
99
|
async function applyTenantContextToTransaction(transaction, tenantId) {
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// ../../src/core/tracing/otel.ts
|
|
3
|
+
import { randomBytes } from "crypto";
|
|
4
|
+
function randomHex(bytes) {
|
|
5
|
+
return randomBytes(bytes).toString("hex");
|
|
6
|
+
}
|
|
7
|
+
function createSpan(input) {
|
|
8
|
+
const spanId = randomHex(8);
|
|
9
|
+
return {
|
|
10
|
+
traceId: input.traceId,
|
|
11
|
+
spanId,
|
|
12
|
+
name: input.name,
|
|
13
|
+
startTimeUnixNano: String(Math.floor(input.startedAt * 1e6)),
|
|
14
|
+
endTimeUnixNano: String(Math.floor(input.endedAt * 1e6)),
|
|
15
|
+
attributes: Object.entries(input.attributes ?? {}).map(([key, value]) => ({
|
|
16
|
+
key,
|
|
17
|
+
value: { stringValue: value }
|
|
18
|
+
})),
|
|
19
|
+
status: { code: 1 }
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
async function exportOtelSpan(span) {
|
|
23
|
+
const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();
|
|
24
|
+
if (!endpoint) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const serviceName = process.env.OTEL_SERVICE_NAME?.trim() ?? "workhub-api";
|
|
28
|
+
const url = endpoint.endsWith("/v1/traces") ? endpoint : `${endpoint.replace(/\/$/, "")}/v1/traces`;
|
|
29
|
+
await fetch(url, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: { "content-type": "application/json" },
|
|
32
|
+
body: JSON.stringify({
|
|
33
|
+
resourceSpans: [
|
|
34
|
+
{
|
|
35
|
+
resource: {
|
|
36
|
+
attributes: [{ key: "service.name", value: { stringValue: serviceName } }]
|
|
37
|
+
},
|
|
38
|
+
scopeSpans: [{ spans: [span] }]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// ../../src/core/runtime/asyncContextStore.ts
|
|
46
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
47
|
+
function createAsyncContextStore(key) {
|
|
48
|
+
const symbol = Symbol.for(key);
|
|
49
|
+
const globalRecord = globalThis;
|
|
50
|
+
const existing = globalRecord[symbol];
|
|
51
|
+
if (existing) {
|
|
52
|
+
return existing;
|
|
53
|
+
}
|
|
54
|
+
const store = new AsyncLocalStorage;
|
|
55
|
+
globalRecord[symbol] = store;
|
|
56
|
+
return store;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// ../../src/core/tracing/traceContext.ts
|
|
60
|
+
var traceContextStorage = createAsyncContextStore("@getstrata/traceContext");
|
|
61
|
+
function runWithTraceContext(context, callback) {
|
|
62
|
+
return traceContextStorage.run(context, callback);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ../../src/core/tracing/tracingMiddleware.ts
|
|
66
|
+
function createTracingMiddleware() {
|
|
67
|
+
return async (request, next) => {
|
|
68
|
+
const traceId = (request.headers.get("x-trace-id") ?? crypto.randomUUID()).replace(/-/g, "");
|
|
69
|
+
const spanId = crypto.randomUUID().replace(/-/g, "").slice(0, 16);
|
|
70
|
+
const startedAt = performance.now();
|
|
71
|
+
const path = new URL(request.url).pathname;
|
|
72
|
+
return await runWithTraceContext({ traceId, spanId }, async () => {
|
|
73
|
+
const response = await next();
|
|
74
|
+
const endedAt = performance.now();
|
|
75
|
+
const headers = new Headers(response.headers);
|
|
76
|
+
headers.set("x-trace-id", traceId);
|
|
77
|
+
headers.set("x-span-id", spanId);
|
|
78
|
+
headers.set("traceparent", `00-${traceId}-${spanId}-01`);
|
|
79
|
+
headers.set("server-timing", `app;dur=${(endedAt - startedAt).toFixed(2)}`);
|
|
80
|
+
exportOtelSpan(createSpan({
|
|
81
|
+
traceId,
|
|
82
|
+
name: `${request.method} ${path}`,
|
|
83
|
+
startedAt,
|
|
84
|
+
endedAt,
|
|
85
|
+
attributes: {
|
|
86
|
+
"http.method": request.method,
|
|
87
|
+
"http.route": path,
|
|
88
|
+
"http.status_code": String(response.status)
|
|
89
|
+
}
|
|
90
|
+
})).catch(() => {
|
|
91
|
+
return;
|
|
92
|
+
});
|
|
93
|
+
return new Response(response.body, {
|
|
94
|
+
status: response.status,
|
|
95
|
+
statusText: response.statusText,
|
|
96
|
+
headers
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export {
|
|
102
|
+
createTracingMiddleware
|
|
103
|
+
};
|
package/dist/entries/view.js
CHANGED
|
@@ -2610,6 +2610,7 @@ var db = new Proxy(function database() {}, {
|
|
|
2610
2610
|
return typeof value === "function" ? value.bind(connection) : value;
|
|
2611
2611
|
}
|
|
2612
2612
|
});
|
|
2613
|
+
var connection_default = db;
|
|
2613
2614
|
|
|
2614
2615
|
// ../../src/modules/user/apiTokenTable.ts
|
|
2615
2616
|
var apiTokenTable = defineTable({
|
|
@@ -2751,6 +2752,9 @@ function currentAuthUser() {
|
|
|
2751
2752
|
|
|
2752
2753
|
// ../../src/core/http/requestMetaContext.ts
|
|
2753
2754
|
var requestMetaContext = createAsyncContextStore("@getstrata/requestMetaContext");
|
|
2755
|
+
function runWithRequestMeta(meta, callback) {
|
|
2756
|
+
return requestMetaContext.run(meta, callback);
|
|
2757
|
+
}
|
|
2754
2758
|
function currentRequestMeta() {
|
|
2755
2759
|
return requestMetaContext.getStore() ?? {
|
|
2756
2760
|
ipAddress: null,
|
|
@@ -2844,6 +2848,16 @@ function currentTenant() {
|
|
|
2844
2848
|
function currentTenantId() {
|
|
2845
2849
|
return currentTenant()?.id ?? 1;
|
|
2846
2850
|
}
|
|
2851
|
+
function rateLimitMultiplierForPlan(plan) {
|
|
2852
|
+
switch (plan) {
|
|
2853
|
+
case "enterprise":
|
|
2854
|
+
return 4;
|
|
2855
|
+
case "pro":
|
|
2856
|
+
return 2;
|
|
2857
|
+
default:
|
|
2858
|
+
return 1;
|
|
2859
|
+
}
|
|
2860
|
+
}
|
|
2847
2861
|
|
|
2848
2862
|
// ../../src/domain/abilities.ts
|
|
2849
2863
|
var MEMBER_ABILITIES = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getstrata/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.45",
|
|
4
4
|
"description": "Strata — Laravel-inspired Bun framework public API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
"import": "./dist/entries/auth/accessControl.js",
|
|
21
21
|
"default": "./dist/entries/auth/accessControl.js"
|
|
22
22
|
},
|
|
23
|
+
"./auth/abilityChecker": {
|
|
24
|
+
"types": "./dist/core/auth/abilityChecker.d.ts",
|
|
25
|
+
"import": "./dist/entries/auth/abilityChecker.js",
|
|
26
|
+
"default": "./dist/entries/auth/abilityChecker.js"
|
|
27
|
+
},
|
|
23
28
|
"./auth/authContext": {
|
|
24
29
|
"types": "./dist/core/auth/authContext.d.ts",
|
|
25
30
|
"import": "./dist/entries/auth/authContext.js",
|
|
@@ -35,6 +40,11 @@
|
|
|
35
40
|
"import": "./dist/entries/auth/membershipContext.js",
|
|
36
41
|
"default": "./dist/entries/auth/membershipContext.js"
|
|
37
42
|
},
|
|
43
|
+
"./auth/membershipMiddleware": {
|
|
44
|
+
"types": "./dist/core/auth/membershipMiddleware.d.ts",
|
|
45
|
+
"import": "./dist/entries/auth/membershipMiddleware.js",
|
|
46
|
+
"default": "./dist/entries/auth/membershipMiddleware.js"
|
|
47
|
+
},
|
|
38
48
|
"./auth/membershipScope": {
|
|
39
49
|
"types": "./dist/core/auth/membershipScope.d.ts",
|
|
40
50
|
"import": "./dist/entries/auth/membershipScope.js",
|
|
@@ -115,6 +125,11 @@
|
|
|
115
125
|
"import": "./dist/entries/admin/registry.js",
|
|
116
126
|
"default": "./dist/entries/admin/registry.js"
|
|
117
127
|
},
|
|
128
|
+
"./admin/types": {
|
|
129
|
+
"types": "./dist/core/admin/types.d.ts",
|
|
130
|
+
"import": "./dist/entries/admin/types.js",
|
|
131
|
+
"default": "./dist/entries/admin/types.js"
|
|
132
|
+
},
|
|
118
133
|
"./cache/tags": {
|
|
119
134
|
"types": "./dist/core/cache/tags.d.ts",
|
|
120
135
|
"import": "./dist/entries/cache/tags.js",
|
|
@@ -195,6 +210,11 @@
|
|
|
195
210
|
"import": "./dist/entries/database/connection.js",
|
|
196
211
|
"default": "./dist/entries/database/connection.js"
|
|
197
212
|
},
|
|
213
|
+
"./database/defaultConnection": {
|
|
214
|
+
"types": "./dist/core/database/defaultConnection.d.ts",
|
|
215
|
+
"import": "./dist/entries/database/defaultConnection.js",
|
|
216
|
+
"default": "./dist/entries/database/defaultConnection.js"
|
|
217
|
+
},
|
|
198
218
|
"./database/errors": {
|
|
199
219
|
"types": "./dist/core/database/errors.d.ts",
|
|
200
220
|
"import": "./dist/entries/database/errors.js",
|
|
@@ -205,6 +225,16 @@
|
|
|
205
225
|
"import": "./dist/entries/database/factory.js",
|
|
206
226
|
"default": "./dist/entries/database/factory.js"
|
|
207
227
|
},
|
|
228
|
+
"./database/migrations": {
|
|
229
|
+
"types": "./dist/core/database/migrations/runner.d.ts",
|
|
230
|
+
"import": "./dist/entries/database/migrations.js",
|
|
231
|
+
"default": "./dist/entries/database/migrations.js"
|
|
232
|
+
},
|
|
233
|
+
"./database/migrations/types": {
|
|
234
|
+
"types": "./dist/core/database/migrations/types.d.ts",
|
|
235
|
+
"import": "./dist/entries/database/migrations/types.js",
|
|
236
|
+
"default": "./dist/entries/database/migrations/types.js"
|
|
237
|
+
},
|
|
208
238
|
"./database/model": {
|
|
209
239
|
"types": "./dist/core/database/model.d.ts",
|
|
210
240
|
"import": "./dist/entries/database/model.js",
|
|
@@ -220,11 +250,21 @@
|
|
|
220
250
|
"import": "./dist/entries/database/relationships.js",
|
|
221
251
|
"default": "./dist/entries/database/relationships.js"
|
|
222
252
|
},
|
|
253
|
+
"./database/repositoryConnection": {
|
|
254
|
+
"types": "./dist/core/database/repositoryConnection.d.ts",
|
|
255
|
+
"import": "./dist/entries/database/repositoryConnection.js",
|
|
256
|
+
"default": "./dist/entries/database/repositoryConnection.js"
|
|
257
|
+
},
|
|
223
258
|
"./database/seeders": {
|
|
224
259
|
"types": "./dist/core/database/seeders/runner.d.ts",
|
|
225
260
|
"import": "./dist/entries/database/seeders.js",
|
|
226
261
|
"default": "./dist/entries/database/seeders.js"
|
|
227
262
|
},
|
|
263
|
+
"./database/seeders/types": {
|
|
264
|
+
"types": "./dist/core/database/seeders/types.d.ts",
|
|
265
|
+
"import": "./dist/entries/database/seeders/types.js",
|
|
266
|
+
"default": "./dist/entries/database/seeders/types.js"
|
|
267
|
+
},
|
|
228
268
|
"./database/schema": {
|
|
229
269
|
"types": "./dist/core/database/schema/index.d.ts",
|
|
230
270
|
"import": "./dist/entries/database/schema.js",
|
|
@@ -280,16 +320,31 @@
|
|
|
280
320
|
"import": "./dist/entries/http/cookies.js",
|
|
281
321
|
"default": "./dist/entries/http/cookies.js"
|
|
282
322
|
},
|
|
283
|
-
"./http/csrfProtection": {
|
|
284
|
-
"types": "./dist/core/http/csrfProtection.d.ts",
|
|
285
|
-
"import": "./dist/entries/http/csrfProtection.js",
|
|
286
|
-
"default": "./dist/entries/http/csrfProtection.js"
|
|
287
|
-
},
|
|
288
323
|
"./http/contentNegotiation": {
|
|
289
324
|
"types": "./dist/core/http/contentNegotiation.d.ts",
|
|
290
325
|
"import": "./dist/entries/http/contentNegotiation.js",
|
|
291
326
|
"default": "./dist/entries/http/contentNegotiation.js"
|
|
292
327
|
},
|
|
328
|
+
"./http/conditionalResponse": {
|
|
329
|
+
"types": "./dist/core/http/conditionalResponse.d.ts",
|
|
330
|
+
"import": "./dist/entries/http/conditionalResponse.js",
|
|
331
|
+
"default": "./dist/entries/http/conditionalResponse.js"
|
|
332
|
+
},
|
|
333
|
+
"./http/corsMiddleware": {
|
|
334
|
+
"types": "./dist/core/http/corsMiddleware.d.ts",
|
|
335
|
+
"import": "./dist/entries/http/corsMiddleware.js",
|
|
336
|
+
"default": "./dist/entries/http/corsMiddleware.js"
|
|
337
|
+
},
|
|
338
|
+
"./http/csrfMiddleware": {
|
|
339
|
+
"types": "./dist/core/http/csrfMiddleware.d.ts",
|
|
340
|
+
"import": "./dist/entries/http/csrfMiddleware.js",
|
|
341
|
+
"default": "./dist/entries/http/csrfMiddleware.js"
|
|
342
|
+
},
|
|
343
|
+
"./http/csrfProtection": {
|
|
344
|
+
"types": "./dist/core/http/csrfProtection.d.ts",
|
|
345
|
+
"import": "./dist/entries/http/csrfProtection.js",
|
|
346
|
+
"default": "./dist/entries/http/csrfProtection.js"
|
|
347
|
+
},
|
|
293
348
|
"./http/csrfToken": {
|
|
294
349
|
"types": "./dist/core/http/csrfToken.d.ts",
|
|
295
350
|
"import": "./dist/entries/http/csrfToken.js",
|
|
@@ -305,6 +360,16 @@
|
|
|
305
360
|
"import": "./dist/entries/http/flashSession.js",
|
|
306
361
|
"default": "./dist/entries/http/flashSession.js"
|
|
307
362
|
},
|
|
363
|
+
"./http/flashMiddleware": {
|
|
364
|
+
"types": "./dist/core/http/flashMiddleware.d.ts",
|
|
365
|
+
"import": "./dist/entries/http/flashMiddleware.js",
|
|
366
|
+
"default": "./dist/entries/http/flashMiddleware.js"
|
|
367
|
+
},
|
|
368
|
+
"./http/formRequest": {
|
|
369
|
+
"types": "./dist/core/http/formRequest.d.ts",
|
|
370
|
+
"import": "./dist/entries/http/formRequest.js",
|
|
371
|
+
"default": "./dist/entries/http/formRequest.js"
|
|
372
|
+
},
|
|
308
373
|
"./http/middleware": {
|
|
309
374
|
"types": "./dist/core/http/middleware.d.ts",
|
|
310
375
|
"import": "./dist/entries/http/middleware.js",
|
|
@@ -315,6 +380,21 @@
|
|
|
315
380
|
"import": "./dist/entries/http/metricsMiddleware.js",
|
|
316
381
|
"default": "./dist/entries/http/metricsMiddleware.js"
|
|
317
382
|
},
|
|
383
|
+
"./http/loginThrottleMiddleware": {
|
|
384
|
+
"types": "./dist/core/http/loginThrottleMiddleware.d.ts",
|
|
385
|
+
"import": "./dist/entries/http/loginThrottleMiddleware.js",
|
|
386
|
+
"default": "./dist/entries/http/loginThrottleMiddleware.js"
|
|
387
|
+
},
|
|
388
|
+
"./http/memoryThrottleMiddleware": {
|
|
389
|
+
"types": "./dist/core/http/memoryThrottleMiddleware.d.ts",
|
|
390
|
+
"import": "./dist/entries/http/memoryThrottleMiddleware.js",
|
|
391
|
+
"default": "./dist/entries/http/memoryThrottleMiddleware.js"
|
|
392
|
+
},
|
|
393
|
+
"./http/pagination": {
|
|
394
|
+
"types": "./dist/core/http/pagination.d.ts",
|
|
395
|
+
"import": "./dist/entries/http/pagination.js",
|
|
396
|
+
"default": "./dist/entries/http/pagination.js"
|
|
397
|
+
},
|
|
318
398
|
"./http/parseFormBody": {
|
|
319
399
|
"types": "./dist/core/http/parseFormBody.d.ts",
|
|
320
400
|
"import": "./dist/entries/http/parseFormBody.js",
|
|
@@ -325,11 +405,56 @@
|
|
|
325
405
|
"import": "./dist/entries/http/parseMultipartUpload.js",
|
|
326
406
|
"default": "./dist/entries/http/parseMultipartUpload.js"
|
|
327
407
|
},
|
|
408
|
+
"./http/requireAbilityMiddleware": {
|
|
409
|
+
"types": "./dist/core/http/requireAbilityMiddleware.d.ts",
|
|
410
|
+
"import": "./dist/entries/http/requireAbilityMiddleware.js",
|
|
411
|
+
"default": "./dist/entries/http/requireAbilityMiddleware.js"
|
|
412
|
+
},
|
|
413
|
+
"./http/requireAuthMiddleware": {
|
|
414
|
+
"types": "./dist/core/http/requireAuthMiddleware.d.ts",
|
|
415
|
+
"import": "./dist/entries/http/requireAuthMiddleware.js",
|
|
416
|
+
"default": "./dist/entries/http/requireAuthMiddleware.js"
|
|
417
|
+
},
|
|
418
|
+
"./http/requireGlobalAdminMiddleware": {
|
|
419
|
+
"types": "./dist/core/http/requireGlobalAdminMiddleware.d.ts",
|
|
420
|
+
"import": "./dist/entries/http/requireGlobalAdminMiddleware.js",
|
|
421
|
+
"default": "./dist/entries/http/requireGlobalAdminMiddleware.js"
|
|
422
|
+
},
|
|
423
|
+
"./http/requireWebAuthMiddleware": {
|
|
424
|
+
"types": "./dist/core/http/requireWebAuthMiddleware.d.ts",
|
|
425
|
+
"import": "./dist/entries/http/requireWebAuthMiddleware.js",
|
|
426
|
+
"default": "./dist/entries/http/requireWebAuthMiddleware.js"
|
|
427
|
+
},
|
|
328
428
|
"./http/resources": {
|
|
329
429
|
"types": "./dist/core/http/resources.d.ts",
|
|
330
430
|
"import": "./dist/entries/http/resources.js",
|
|
331
431
|
"default": "./dist/entries/http/resources.js"
|
|
332
432
|
},
|
|
433
|
+
"./http/route": {
|
|
434
|
+
"types": "./dist/core/http/route.d.ts",
|
|
435
|
+
"import": "./dist/entries/http/route.js",
|
|
436
|
+
"default": "./dist/entries/http/route.js"
|
|
437
|
+
},
|
|
438
|
+
"./http/routeMiddleware": {
|
|
439
|
+
"types": "./dist/core/http/routeMiddleware.d.ts",
|
|
440
|
+
"import": "./dist/entries/http/routeMiddleware.js",
|
|
441
|
+
"default": "./dist/entries/http/routeMiddleware.js"
|
|
442
|
+
},
|
|
443
|
+
"./http/routeModelBinding": {
|
|
444
|
+
"types": "./dist/core/http/routeModelBinding.d.ts",
|
|
445
|
+
"import": "./dist/entries/http/routeModelBinding.js",
|
|
446
|
+
"default": "./dist/entries/http/routeModelBinding.js"
|
|
447
|
+
},
|
|
448
|
+
"./http/scimThrottleMiddleware": {
|
|
449
|
+
"types": "./dist/core/http/scimThrottleMiddleware.d.ts",
|
|
450
|
+
"import": "./dist/entries/http/scimThrottleMiddleware.js",
|
|
451
|
+
"default": "./dist/entries/http/scimThrottleMiddleware.js"
|
|
452
|
+
},
|
|
453
|
+
"./http/securityHeadersMiddleware": {
|
|
454
|
+
"types": "./dist/core/http/securityHeadersMiddleware.d.ts",
|
|
455
|
+
"import": "./dist/entries/http/securityHeadersMiddleware.js",
|
|
456
|
+
"default": "./dist/entries/http/securityHeadersMiddleware.js"
|
|
457
|
+
},
|
|
333
458
|
"./http/securedRouteModelBinding": {
|
|
334
459
|
"types": "./dist/core/http/securedRouteModelBinding.d.ts",
|
|
335
460
|
"import": "./dist/entries/http/securedRouteModelBinding.js",
|
|
@@ -350,6 +475,11 @@
|
|
|
350
475
|
"import": "./dist/entries/http/webFormRequest.js",
|
|
351
476
|
"default": "./dist/entries/http/webFormRequest.js"
|
|
352
477
|
},
|
|
478
|
+
"./http/throttleMiddleware": {
|
|
479
|
+
"types": "./dist/core/http/throttleMiddleware.d.ts",
|
|
480
|
+
"import": "./dist/entries/http/throttleMiddleware.js",
|
|
481
|
+
"default": "./dist/entries/http/throttleMiddleware.js"
|
|
482
|
+
},
|
|
353
483
|
"./jobs/dispatchWebhookJob": {
|
|
354
484
|
"types": "./dist/core/jobs/dispatchWebhookJob.d.ts",
|
|
355
485
|
"import": "./dist/entries/jobs/dispatchWebhookJob.js",
|
|
@@ -370,6 +500,11 @@
|
|
|
370
500
|
"import": "./dist/entries/logging/logger.js",
|
|
371
501
|
"default": "./dist/entries/logging/logger.js"
|
|
372
502
|
},
|
|
503
|
+
"./logging/requestLoggingMiddleware": {
|
|
504
|
+
"types": "./dist/core/logging/requestLoggingMiddleware.d.ts",
|
|
505
|
+
"import": "./dist/entries/logging/requestLoggingMiddleware.js",
|
|
506
|
+
"default": "./dist/entries/logging/requestLoggingMiddleware.js"
|
|
507
|
+
},
|
|
373
508
|
"./mail/mailer": {
|
|
374
509
|
"types": "./dist/core/mail/mailer.d.ts",
|
|
375
510
|
"import": "./dist/entries/mail/mailer.js",
|
|
@@ -560,6 +695,11 @@
|
|
|
560
695
|
"import": "./dist/entries/tracing/traceContext.js",
|
|
561
696
|
"default": "./dist/entries/tracing/traceContext.js"
|
|
562
697
|
},
|
|
698
|
+
"./tracing/tracingMiddleware": {
|
|
699
|
+
"types": "./dist/core/tracing/tracingMiddleware.d.ts",
|
|
700
|
+
"import": "./dist/entries/tracing/tracingMiddleware.js",
|
|
701
|
+
"default": "./dist/entries/tracing/tracingMiddleware.js"
|
|
702
|
+
},
|
|
563
703
|
"./validation/rules": {
|
|
564
704
|
"types": "./dist/core/validation/rules.d.ts",
|
|
565
705
|
"import": "./dist/entries/validation/rules.js",
|
|
@@ -582,7 +722,7 @@
|
|
|
582
722
|
"build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta",
|
|
583
723
|
"build:types": "tsc -p tsconfig.types.json",
|
|
584
724
|
"prepublishOnly": "bun run build && bun ../../scripts/prepare-core-package-publish.ts",
|
|
585
|
-
"build:subpaths": "bun build 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/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/baseRepository.ts entries/database/
|
|
725
|
+
"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/baseRepository.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/transaction.ts entries/database/types.ts entries/errors/http.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/notifications.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",
|
|
586
726
|
"build:shims": "bun ../../scripts/write-core-shared-shims.ts"
|
|
587
727
|
},
|
|
588
728
|
"publishConfig": {
|