@getstrata/core 0.5.59 → 0.5.60
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 +7 -0
- package/README.md +1 -1
- package/dist/core/database/bindConnection.d.ts +1 -3
- package/dist/core/database/bunSql.d.ts +13 -0
- package/dist/core/http/memoryThrottleMiddleware.d.ts +2 -1
- package/dist/core/view/htmlResponse.d.ts +5 -1
- package/dist/core/view/index.d.ts +1 -1
- package/dist/entries/database/bunSql.js +1 -0
- package/dist/entries/http/memoryThrottleMiddleware.js +10 -2
- package/dist/entries/http/response.js +7 -1
- package/dist/entries/http/webErrorResponse.js +7 -1
- package/dist/entries/view.js +8 -1
- package/dist/framework/public-api.d.ts +4 -3
- package/dist/index.js +42 -10
- package/package.json +7 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @getstrata/core changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.60
|
|
4
|
+
|
|
5
|
+
- `@getstrata/core/database/boundConnection` publishes `getBoundDatabaseConnection` and `resetBoundDatabaseConnection` on the JS entry (not only the types file). Tests can reset the bound pool after `closeDatabase()` without a postinstall patch.
|
|
6
|
+
- `bindBunSql` / `createBunSqlPool` on `@getstrata/core/database/bunSql` create a Bun `SQL` pool and register it as the bound connection plus default pool.
|
|
7
|
+
- `xmlResponse` accepts `{ contentType }`. `rssResponse` sends `application/rss+xml`.
|
|
8
|
+
- Memory throttle buckets are per middleware instance. `resetMemoryThrottleForTests()` clears every instance map so nested HTTP tests do not leak.
|
|
9
|
+
|
|
3
10
|
## 0.5.59
|
|
4
11
|
|
|
5
12
|
Sibling HTMX apps can consume published packages without WorkHub-only glue.
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ import { EtaViewEngine } from "@getstrata/core/view";
|
|
|
28
28
|
|
|
29
29
|
`.eta` files are **HTML + Eta tags** (`<% %>`, `<%= %>`, `<%~ include() %>`), not Pug. Class/attribute shorthand such as `section.section` or `a href=` fails at render time with the template name.
|
|
30
30
|
|
|
31
|
-
**Dependency:** `eta` is bundled as a direct dependency of `@getstrata/core`. Apps do not need to list it separately. The database driver is your app's choice. WorkHub and getstrata use **Bun's built-in `Bun.sql`** client; bind it with `bindDatabaseConnection()
|
|
31
|
+
**Dependency:** `eta` is bundled as a direct dependency of `@getstrata/core`. Apps do not need to list it separately. The database driver is your app's choice. WorkHub and getstrata use **Bun's built-in `Bun.sql`** client; create and bind it with `createBunSqlPool()` / `bindBunSql()`, or call `bindDatabaseConnection()` yourself.
|
|
32
32
|
|
|
33
33
|
`orderBy` accepts explicit `{ column, direction }` objects or column shorthand such as `{ published_at: "desc" }`.
|
|
34
34
|
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
|
|
2
|
-
declare function bindDatabaseConnection(connection: DatabaseConnection): void;
|
|
3
|
-
export { bindDatabaseConnection };
|
|
1
|
+
export { bindDatabaseConnection, getBoundDatabaseConnection, resetBoundDatabaseConnection, } from "./boundConnection";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SQL } from "bun";
|
|
2
|
+
import type { DatabaseConnection } from "./baseRepository";
|
|
3
|
+
interface CreateBunSqlPoolOptions {
|
|
4
|
+
url: string;
|
|
5
|
+
max?: number;
|
|
6
|
+
idleTimeout?: number;
|
|
7
|
+
maxLifetime?: number;
|
|
8
|
+
connectionTimeout?: number;
|
|
9
|
+
}
|
|
10
|
+
declare function createBunSqlPool(options: CreateBunSqlPoolOptions): InstanceType<typeof SQL>;
|
|
11
|
+
declare function bindBunSql(sql: DatabaseConnection): DatabaseConnection;
|
|
12
|
+
export type { CreateBunSqlPoolOptions };
|
|
13
|
+
export { bindBunSql, createBunSqlPool };
|
|
@@ -5,5 +5,6 @@ interface MemoryThrottleOptions {
|
|
|
5
5
|
keyPrefix?: string;
|
|
6
6
|
}
|
|
7
7
|
declare function createMemoryThrottleMiddleware(options: MemoryThrottleOptions): Middleware;
|
|
8
|
+
declare function resetMemoryThrottleForTests(): void;
|
|
8
9
|
export type { MemoryThrottleOptions };
|
|
9
|
-
export { createMemoryThrottleMiddleware };
|
|
10
|
+
export { createMemoryThrottleMiddleware, resetMemoryThrottleForTests };
|
|
@@ -10,5 +10,9 @@ declare function textResponse(body: string, init?: {
|
|
|
10
10
|
}): Response;
|
|
11
11
|
declare function xmlResponse(body: string, init?: {
|
|
12
12
|
status?: number;
|
|
13
|
+
contentType?: string;
|
|
13
14
|
}): Response;
|
|
14
|
-
|
|
15
|
+
declare function rssResponse(body: string, init?: {
|
|
16
|
+
status?: number;
|
|
17
|
+
}): Response;
|
|
18
|
+
export { htmlResponse, isHtmxRequest, notFoundHtmlResponse, redirectResponse, rssResponse, textResponse, xmlResponse, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { DEFAULT_VIEWS_DIRECTORY, EtaViewEngine } from "./etaViewEngine";
|
|
2
|
-
export { htmlResponse, isHtmxRequest, notFoundHtmlResponse, redirectResponse, textResponse, xmlResponse, } from "./htmlResponse";
|
|
2
|
+
export { htmlResponse, isHtmxRequest, notFoundHtmlResponse, redirectResponse, rssResponse, textResponse, xmlResponse, } from "./htmlResponse";
|
|
3
3
|
export type { ViewEngine } from "./viewEngine";
|
|
4
4
|
export type { WebLayoutAuthUser, WebLayoutData, WebLayoutDataOptions, WebLayoutUserKey, } from "./webLayoutData";
|
|
5
5
|
export { configureWebLayoutData, resolveWebLayoutData } from "./webLayoutData";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../../index.js";
|
|
@@ -15,9 +15,11 @@ function readClientIp(request, env = process.env) {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
// ../../src/core/http/memoryThrottleMiddleware.ts
|
|
18
|
-
var
|
|
18
|
+
var throttleBucketRegistries = new Set;
|
|
19
19
|
function createMemoryThrottleMiddleware(options) {
|
|
20
20
|
const prefix = options.keyPrefix ?? "workhub:memory-throttle:";
|
|
21
|
+
const buckets = new Map;
|
|
22
|
+
throttleBucketRegistries.add(buckets);
|
|
21
23
|
return async (request, next) => {
|
|
22
24
|
const path = new URL(request.url).pathname;
|
|
23
25
|
const identity = readClientIp(request) ?? request.headers.get("authorization")?.slice(0, 32) ?? "unknown";
|
|
@@ -40,6 +42,12 @@ function createMemoryThrottleMiddleware(options) {
|
|
|
40
42
|
return await next();
|
|
41
43
|
};
|
|
42
44
|
}
|
|
45
|
+
function resetMemoryThrottleForTests() {
|
|
46
|
+
for (const buckets of throttleBucketRegistries) {
|
|
47
|
+
buckets.clear();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
43
50
|
export {
|
|
44
|
-
createMemoryThrottleMiddleware
|
|
51
|
+
createMemoryThrottleMiddleware,
|
|
52
|
+
resetMemoryThrottleForTests
|
|
45
53
|
};
|
|
@@ -297,6 +297,9 @@ class EtaViewEngine {
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
// ../../src/core/view/htmlResponse.ts
|
|
300
|
+
function withCharset(contentType) {
|
|
301
|
+
return contentType.includes("charset=") ? contentType : `${contentType}; charset=utf-8`;
|
|
302
|
+
}
|
|
300
303
|
function htmlResponse(html, init = {}) {
|
|
301
304
|
return new Response(html, {
|
|
302
305
|
status: init.status ?? 200,
|
|
@@ -332,10 +335,13 @@ function xmlResponse(body, init = {}) {
|
|
|
332
335
|
return new Response(body, {
|
|
333
336
|
status: init.status ?? 200,
|
|
334
337
|
headers: {
|
|
335
|
-
"Content-Type": "application/xml
|
|
338
|
+
"Content-Type": withCharset(init.contentType ?? "application/xml")
|
|
336
339
|
}
|
|
337
340
|
});
|
|
338
341
|
}
|
|
342
|
+
function rssResponse(body, init = {}) {
|
|
343
|
+
return xmlResponse(body, { ...init, contentType: "application/rss+xml" });
|
|
344
|
+
}
|
|
339
345
|
// ../../src/core/view/webLayoutData.ts
|
|
340
346
|
import { currentAuthUser } from "@getstrata/core/auth/authContext";
|
|
341
347
|
import { currentRequestMeta as currentRequestMeta2 } from "@getstrata/core/http/requestMetaContext";
|
|
@@ -294,6 +294,9 @@ class EtaViewEngine {
|
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
// ../../src/core/view/htmlResponse.ts
|
|
297
|
+
function withCharset(contentType) {
|
|
298
|
+
return contentType.includes("charset=") ? contentType : `${contentType}; charset=utf-8`;
|
|
299
|
+
}
|
|
297
300
|
function htmlResponse(html, init = {}) {
|
|
298
301
|
return new Response(html, {
|
|
299
302
|
status: init.status ?? 200,
|
|
@@ -329,10 +332,13 @@ function xmlResponse(body, init = {}) {
|
|
|
329
332
|
return new Response(body, {
|
|
330
333
|
status: init.status ?? 200,
|
|
331
334
|
headers: {
|
|
332
|
-
"Content-Type": "application/xml
|
|
335
|
+
"Content-Type": withCharset(init.contentType ?? "application/xml")
|
|
333
336
|
}
|
|
334
337
|
});
|
|
335
338
|
}
|
|
339
|
+
function rssResponse(body, init = {}) {
|
|
340
|
+
return xmlResponse(body, { ...init, contentType: "application/rss+xml" });
|
|
341
|
+
}
|
|
336
342
|
// ../../src/core/view/webLayoutData.ts
|
|
337
343
|
import { currentAuthUser } from "@getstrata/core/auth/authContext";
|
|
338
344
|
import { currentRequestMeta as currentRequestMeta2 } from "@getstrata/core/http/requestMetaContext";
|
package/dist/entries/view.js
CHANGED
|
@@ -213,6 +213,9 @@ class EtaViewEngine {
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
// ../../src/core/view/htmlResponse.ts
|
|
216
|
+
function withCharset(contentType) {
|
|
217
|
+
return contentType.includes("charset=") ? contentType : `${contentType}; charset=utf-8`;
|
|
218
|
+
}
|
|
216
219
|
function htmlResponse(html, init = {}) {
|
|
217
220
|
return new Response(html, {
|
|
218
221
|
status: init.status ?? 200,
|
|
@@ -248,10 +251,13 @@ function xmlResponse(body, init = {}) {
|
|
|
248
251
|
return new Response(body, {
|
|
249
252
|
status: init.status ?? 200,
|
|
250
253
|
headers: {
|
|
251
|
-
"Content-Type": "application/xml
|
|
254
|
+
"Content-Type": withCharset(init.contentType ?? "application/xml")
|
|
252
255
|
}
|
|
253
256
|
});
|
|
254
257
|
}
|
|
258
|
+
function rssResponse(body, init = {}) {
|
|
259
|
+
return xmlResponse(body, { ...init, contentType: "application/rss+xml" });
|
|
260
|
+
}
|
|
255
261
|
// ../../src/core/view/webLayoutData.ts
|
|
256
262
|
import { currentAuthUser } from "@getstrata/core/auth/authContext";
|
|
257
263
|
import { currentRequestMeta as currentRequestMeta2 } from "@getstrata/core/http/requestMetaContext";
|
|
@@ -599,6 +605,7 @@ export {
|
|
|
599
605
|
notFoundHtmlResponse,
|
|
600
606
|
redirectResponse,
|
|
601
607
|
resolveWebLayoutData,
|
|
608
|
+
rssResponse,
|
|
602
609
|
textResponse,
|
|
603
610
|
xmlResponse
|
|
604
611
|
};
|
|
@@ -24,7 +24,8 @@ export type { ServiceProvider } from "../core/contracts/di.ts";
|
|
|
24
24
|
export { resolveService } from "../core/contracts/di.ts";
|
|
25
25
|
export type { DatabaseConnection } from "../core/database/baseRepository.ts";
|
|
26
26
|
export { default as BaseRepository } from "../core/database/baseRepository.ts";
|
|
27
|
-
export { bindDatabaseConnection } from "../core/database/bindConnection.ts";
|
|
27
|
+
export { bindDatabaseConnection, getBoundDatabaseConnection, resetBoundDatabaseConnection, } from "../core/database/bindConnection.ts";
|
|
28
|
+
export { bindBunSql, createBunSqlPool } from "../core/database/bunSql.ts";
|
|
28
29
|
export { createDatabaseConnection } from "../core/database/connection.ts";
|
|
29
30
|
export { getActiveDatabaseConnection, runWithDatabaseConnection, } from "../core/database/connectionContext.ts";
|
|
30
31
|
export { getDefaultDatabasePool, getDefaultDatabaseQuery, registerDefaultDatabasePool, } from "../core/database/defaultConnection.ts";
|
|
@@ -65,7 +66,7 @@ export { createFlashMiddleware } from "../core/http/flashMiddleware.ts";
|
|
|
65
66
|
export { FormRequest } from "../core/http/formRequest.ts";
|
|
66
67
|
export { applyMiddlewareToRoutes, bindRouteModel, buildRequestCacheKey, composeMiddleware, createAuthMiddleware, createAuthorizeMiddleware, createRequireAuthMiddleware, paginatedResponse, parsePaginationQuery, parsePositiveIntParam, requestIdMiddleware, securedBindRouteModel, securedBindRouteModelByKey, withMiddleware, wrapRouteHandler, } from "../core/http/index.ts";
|
|
67
68
|
export { createLoginThrottleMiddleware } from "../core/http/loginThrottleMiddleware.ts";
|
|
68
|
-
export { createMemoryThrottleMiddleware } from "../core/http/memoryThrottleMiddleware.ts";
|
|
69
|
+
export { createMemoryThrottleMiddleware, resetMemoryThrottleForTests, } from "../core/http/memoryThrottleMiddleware.ts";
|
|
69
70
|
export { createMetricsMiddleware, normalizeMetricPath } from "../core/http/metricsMiddleware.ts";
|
|
70
71
|
export type { Middleware, RouteHandler } from "../core/http/middleware.ts";
|
|
71
72
|
export { type ParsedUpload, parseMultipartUpload } from "../core/http/parseMultipartUpload.ts";
|
|
@@ -118,6 +119,6 @@ export { currentTraceId, runWithTraceContext } from "../core/tracing/traceContex
|
|
|
118
119
|
export { createTracingMiddleware } from "../core/tracing/tracingMiddleware.ts";
|
|
119
120
|
export type { ValidationRule, ValidationSchema } from "../core/validation/rules.ts";
|
|
120
121
|
export { emailRule, maxLength, minLength, required, stringRule, validateObject, } from "../core/validation/rules.ts";
|
|
121
|
-
export { configureWebLayoutData, DEFAULT_VIEWS_DIRECTORY, EtaViewEngine, htmlResponse, isHtmxRequest, notFoundHtmlResponse, redirectResponse, resolveWebLayoutData, textResponse, xmlResponse, } from "../core/view/index.ts";
|
|
122
|
+
export { configureWebLayoutData, DEFAULT_VIEWS_DIRECTORY, EtaViewEngine, htmlResponse, isHtmxRequest, notFoundHtmlResponse, redirectResponse, resolveWebLayoutData, rssResponse, textResponse, xmlResponse, } from "../core/view/index.ts";
|
|
122
123
|
export type { ViewEngine } from "../core/view/viewEngine.ts";
|
|
123
124
|
export type { WebLayoutAuthUser, WebLayoutData, WebLayoutDataOptions, WebLayoutUserKey, } from "../core/view/webLayoutData.ts";
|
package/dist/index.js
CHANGED
|
@@ -756,12 +756,6 @@ function getBoundDatabaseConnection() {
|
|
|
756
756
|
function resetBoundDatabaseConnection() {
|
|
757
757
|
boundConnectionHolder.connection = null;
|
|
758
758
|
}
|
|
759
|
-
|
|
760
|
-
// ../../src/core/database/bindConnection.ts
|
|
761
|
-
function bindDatabaseConnection2(connection) {
|
|
762
|
-
bindDatabaseConnection(connection);
|
|
763
|
-
}
|
|
764
|
-
|
|
765
759
|
// ../../src/core/database/connectionContext.ts
|
|
766
760
|
var activeConnection = createAsyncContextStore("@getstrata/databaseConnectionContext");
|
|
767
761
|
function runWithDatabaseConnection(connection, callback) {
|
|
@@ -951,7 +945,7 @@ function createScimAuthMiddleware() {
|
|
|
951
945
|
return jsonScimError("SCIM tenant not found.", 401);
|
|
952
946
|
}
|
|
953
947
|
return await runWithTenantDatabase(tenant, async () => {
|
|
954
|
-
|
|
948
|
+
bindDatabaseConnection(getActiveDatabaseConnection(getDefaultDatabasePool()));
|
|
955
949
|
try {
|
|
956
950
|
return await next();
|
|
957
951
|
} finally {
|
|
@@ -2679,6 +2673,25 @@ class BaseRepository {
|
|
|
2679
2673
|
}
|
|
2680
2674
|
}
|
|
2681
2675
|
var baseRepository_default = BaseRepository;
|
|
2676
|
+
// ../../src/core/database/bunSql.ts
|
|
2677
|
+
var {SQL } = globalThis.Bun;
|
|
2678
|
+
function createBunSqlPool(options) {
|
|
2679
|
+
if (!options.url) {
|
|
2680
|
+
throw new Error("DATABASE_URL is not configured. Set url before creating a Bun SQL pool.");
|
|
2681
|
+
}
|
|
2682
|
+
return new SQL({
|
|
2683
|
+
url: options.url,
|
|
2684
|
+
max: options.max ?? 10,
|
|
2685
|
+
idleTimeout: options.idleTimeout ?? 30,
|
|
2686
|
+
maxLifetime: options.maxLifetime ?? 3600,
|
|
2687
|
+
connectionTimeout: options.connectionTimeout ?? 10
|
|
2688
|
+
});
|
|
2689
|
+
}
|
|
2690
|
+
function bindBunSql(sql) {
|
|
2691
|
+
bindDatabaseConnection(sql);
|
|
2692
|
+
registerDefaultDatabasePool(sql);
|
|
2693
|
+
return sql;
|
|
2694
|
+
}
|
|
2682
2695
|
// ../../src/core/database/connection.ts
|
|
2683
2696
|
function createDatabaseConnection(source) {
|
|
2684
2697
|
return {
|
|
@@ -5107,6 +5120,9 @@ class EtaViewEngine {
|
|
|
5107
5120
|
}
|
|
5108
5121
|
}
|
|
5109
5122
|
// ../../src/core/view/htmlResponse.ts
|
|
5123
|
+
function withCharset(contentType) {
|
|
5124
|
+
return contentType.includes("charset=") ? contentType : `${contentType}; charset=utf-8`;
|
|
5125
|
+
}
|
|
5110
5126
|
function htmlResponse(html, init = {}) {
|
|
5111
5127
|
return new Response(html, {
|
|
5112
5128
|
status: init.status ?? 200,
|
|
@@ -5142,10 +5158,13 @@ function xmlResponse(body, init = {}) {
|
|
|
5142
5158
|
return new Response(body, {
|
|
5143
5159
|
status: init.status ?? 200,
|
|
5144
5160
|
headers: {
|
|
5145
|
-
"Content-Type": "application/xml
|
|
5161
|
+
"Content-Type": withCharset(init.contentType ?? "application/xml")
|
|
5146
5162
|
}
|
|
5147
5163
|
});
|
|
5148
5164
|
}
|
|
5165
|
+
function rssResponse(body, init = {}) {
|
|
5166
|
+
return xmlResponse(body, { ...init, contentType: "application/rss+xml" });
|
|
5167
|
+
}
|
|
5149
5168
|
// ../../src/core/view/webLayoutData.ts
|
|
5150
5169
|
var configuredLayoutOptions = {};
|
|
5151
5170
|
function configureWebLayoutData(options) {
|
|
@@ -5395,9 +5414,11 @@ function createLoginThrottleMiddleware(options) {
|
|
|
5395
5414
|
};
|
|
5396
5415
|
}
|
|
5397
5416
|
// ../../src/core/http/memoryThrottleMiddleware.ts
|
|
5398
|
-
var
|
|
5417
|
+
var throttleBucketRegistries = new Set;
|
|
5399
5418
|
function createMemoryThrottleMiddleware(options) {
|
|
5400
5419
|
const prefix = options.keyPrefix ?? "workhub:memory-throttle:";
|
|
5420
|
+
const buckets = new Map;
|
|
5421
|
+
throttleBucketRegistries.add(buckets);
|
|
5401
5422
|
return async (request, next) => {
|
|
5402
5423
|
const path = new URL(request.url).pathname;
|
|
5403
5424
|
const identity = readClientIp(request) ?? request.headers.get("authorization")?.slice(0, 32) ?? "unknown";
|
|
@@ -5420,6 +5441,11 @@ function createMemoryThrottleMiddleware(options) {
|
|
|
5420
5441
|
return await next();
|
|
5421
5442
|
};
|
|
5422
5443
|
}
|
|
5444
|
+
function resetMemoryThrottleForTests() {
|
|
5445
|
+
for (const buckets of throttleBucketRegistries) {
|
|
5446
|
+
buckets.clear();
|
|
5447
|
+
}
|
|
5448
|
+
}
|
|
5423
5449
|
// ../../src/core/metrics/prometheus.ts
|
|
5424
5450
|
class PrometheusRegistry {
|
|
5425
5451
|
httpRequestsTotal = new Map;
|
|
@@ -6735,7 +6761,8 @@ export {
|
|
|
6735
6761
|
authContext,
|
|
6736
6762
|
belongsTo,
|
|
6737
6763
|
belongsToMany,
|
|
6738
|
-
|
|
6764
|
+
bindBunSql,
|
|
6765
|
+
bindDatabaseConnection,
|
|
6739
6766
|
bindRouteModel,
|
|
6740
6767
|
buildMarkdownMailMessage,
|
|
6741
6768
|
buildRequestCacheKey,
|
|
@@ -6751,6 +6778,7 @@ export {
|
|
|
6751
6778
|
createAuthMiddleware,
|
|
6752
6779
|
createAuthorizeMiddleware,
|
|
6753
6780
|
createBodySizeLimitMiddleware,
|
|
6781
|
+
createBunSqlPool,
|
|
6754
6782
|
createCacheStore,
|
|
6755
6783
|
createCorsMiddleware,
|
|
6756
6784
|
createCsrfMiddleware,
|
|
@@ -6801,6 +6829,7 @@ export {
|
|
|
6801
6829
|
formatAdminValue,
|
|
6802
6830
|
freshDatabase,
|
|
6803
6831
|
getActiveDatabaseConnection,
|
|
6832
|
+
getBoundDatabaseConnection,
|
|
6804
6833
|
getDefaultDatabasePool,
|
|
6805
6834
|
getDefaultDatabaseQuery,
|
|
6806
6835
|
getMigrationStatus,
|
|
@@ -6868,7 +6897,9 @@ export {
|
|
|
6868
6897
|
repositoryConnection,
|
|
6869
6898
|
requestIdMiddleware,
|
|
6870
6899
|
required,
|
|
6900
|
+
resetBoundDatabaseConnection,
|
|
6871
6901
|
resetDefaultStorage,
|
|
6902
|
+
resetMemoryThrottleForTests,
|
|
6872
6903
|
resolveApplicationAuth,
|
|
6873
6904
|
resolveApplicationCache,
|
|
6874
6905
|
resolveApplicationConfig,
|
|
@@ -6888,6 +6919,7 @@ export {
|
|
|
6888
6919
|
resolveUserTenantId,
|
|
6889
6920
|
resolveWebLayoutData,
|
|
6890
6921
|
rollbackDatabase,
|
|
6922
|
+
rssResponse,
|
|
6891
6923
|
runDueScheduledTasks,
|
|
6892
6924
|
runGracefulShutdown,
|
|
6893
6925
|
runInTransaction,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getstrata/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.60",
|
|
4
4
|
"description": "Strata — Laravel-inspired Bun framework public API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -205,6 +205,11 @@
|
|
|
205
205
|
"import": "./dist/entries/database/boundConnection.js",
|
|
206
206
|
"default": "./dist/entries/database/boundConnection.js"
|
|
207
207
|
},
|
|
208
|
+
"./database/bunSql": {
|
|
209
|
+
"types": "./dist/core/database/bunSql.d.ts",
|
|
210
|
+
"import": "./dist/entries/database/bunSql.js",
|
|
211
|
+
"default": "./dist/entries/database/bunSql.js"
|
|
212
|
+
},
|
|
208
213
|
"./database/connection": {
|
|
209
214
|
"types": "./dist/core/database/connection.d.ts",
|
|
210
215
|
"import": "./dist/entries/database/connection.js",
|
|
@@ -773,7 +778,7 @@
|
|
|
773
778
|
"build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta",
|
|
774
779
|
"build:types": "tsc -p tsconfig.types.json",
|
|
775
780
|
"prepublishOnly": "bun run build && bun ../../scripts/prepare-core-package-publish.ts",
|
|
776
|
-
"build:subpaths": "bun build entries/auth/accessControl.ts entries/auth/abilityChecker.ts entries/auth/membershipMiddleware.ts entries/auth/membershipScope.ts entries/auth/membershipService.ts entries/auth/oauth/oidcProvider.ts entries/auth/oauth/providers.ts entries/auth/oauth/samlProvider.ts entries/auth/oauth/types.ts entries/auth/password.ts entries/auth/policy.ts entries/auth/scimAuthMiddleware.ts entries/auth/sessionCookie.ts entries/auth/sessionGuard.ts entries/auth/tokenHash.ts entries/audit/exportAuditLogs.ts entries/audit/siemFormatter.ts entries/admin/formatValue.ts entries/admin/registry.ts entries/admin/types.ts entries/cache/tags.ts entries/cache/createCacheStore.ts entries/cache/repository.ts entries/cache/simpleCache.ts entries/cache/simpleCacheStore.ts entries/config/envSchema.ts entries/contracts/serviceTokens.ts entries/contracts/container.ts entries/contracts/di.ts entries/crypto/fieldEncryption.ts entries/crypto/mfaSecret.ts entries/database/errors.ts entries/database/factory.ts entries/database/migrations.ts entries/database/migrations/types.ts entries/database/model.ts entries/database/query.ts entries/database/relationships.ts entries/database/repositoryQuery.ts entries/database/seeders.ts entries/database/seeders/types.ts entries/database/schema.ts entries/database/table.ts entries/database/types.ts entries/database/whereBuilder.ts entries/facades.ts entries/http/authMiddleware.ts entries/http/authorizeMiddleware.ts entries/http/bodySizeLimitMiddleware.ts entries/http/clientIp.ts entries/http/cookies.ts entries/http/contentNegotiation.ts entries/http/conditionalResponse.ts entries/http/corsMiddleware.ts entries/http/csrfMiddleware.ts entries/http/csrfProtection.ts entries/http/csrfToken.ts entries/http/etag.ts entries/http/flashSession.ts entries/http/flashMiddleware.ts entries/http/formRequest.ts entries/http/metricsMiddleware.ts entries/http/loginThrottleMiddleware.ts entries/http/memoryThrottleMiddleware.ts entries/http/pagination.ts entries/http/parseFormBody.ts entries/http/parseMultipartUpload.ts entries/http/requireAbilityMiddleware.ts entries/http/requireAuthMiddleware.ts entries/http/requireGlobalAdminMiddleware.ts entries/http/requireWebAuthMiddleware.ts entries/http/resources.ts entries/http/response.ts entries/http/route.ts entries/http/routeMiddleware.ts entries/http/routeModelBinding.ts entries/http/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/media/imageTransform.ts entries/metrics/prometheus.ts entries/openapi/generator.ts entries/openapi/registeredRoute.ts entries/openapi/validate.ts entries/pagination.ts entries/queue.ts entries/queue/createAppQueue.ts entries/queue/failedJobRepository.ts entries/queue/failedJobService.ts entries/queue/jobRunner.ts entries/queue/queueMetrics.ts entries/queue/publicQueue.ts entries/queue/redisQueue.ts entries/queue/types.ts entries/runtime/asyncContextStore.ts entries/scheduler/schedule.ts entries/scheduler/osCron.ts entries/security/oauthState.ts entries/security/publicReads.ts entries/security/safeFetch.ts entries/security/safeUrl.ts entries/security/scimTenantTokens.ts entries/security/stripeWebhook.ts entries/security/timingSafeCompare.ts entries/security/tokenExpiry.ts entries/security/totp.ts entries/storage/storage.ts entries/tenant/tenancyConfig.ts entries/tenant/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.ts entries/terminal/runShell.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts entries/view.ts --outdir dist --root . --target bun --external bun --external eta --external @getstrata/core --external @getstrata/core/auth/accessControl --external @getstrata/core/auth/abilityChecker --external @getstrata/core/auth/authContext --external @getstrata/core/auth/guard --external @getstrata/core/auth/membershipContext --external @getstrata/core/auth/membershipMiddleware --external @getstrata/core/auth/membershipScope --external @getstrata/core/auth/membershipService --external @getstrata/core/auth/oauth/oidcProvider --external @getstrata/core/auth/oauth/providers --external @getstrata/core/auth/oauth/samlProvider --external @getstrata/core/auth/oauth/types --external @getstrata/core/auth/password --external @getstrata/core/auth/policy --external @getstrata/core/auth/scimAuthMiddleware --external @getstrata/core/auth/sessionCookie --external @getstrata/core/auth/sessionGuard --external @getstrata/core/auth/tokenHash --external @getstrata/core/audit/exportAuditLogs --external @getstrata/core/audit/siemFormatter --external @getstrata/core/admin/formatValue --external @getstrata/core/admin/registry --external @getstrata/core/admin/types --external @getstrata/core/cache/tags --external @getstrata/core/cache/createCacheStore --external @getstrata/core/cache/repository --external @getstrata/core/cache/simpleCache --external @getstrata/core/cache/simpleCacheStore --external @getstrata/core/config/envSchema --external @getstrata/core/contracts/serviceTokens --external @getstrata/core/contracts/container --external @getstrata/core/contracts/di --external @getstrata/core/crypto/fieldEncryption --external @getstrata/core/crypto/mfaSecret --external @getstrata/core/database --external @getstrata/core/database/baseRepository --external @getstrata/core/database/bindConnection --external @getstrata/core/database/boundConnection --external @getstrata/core/database/connection --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/errors --external @getstrata/core/database/factory --external @getstrata/core/database/migrations --external @getstrata/core/database/migrations/types --external @getstrata/core/database/model --external @getstrata/core/database/query --external @getstrata/core/database/relationships --external @getstrata/core/database/repositoryConnection --external @getstrata/core/database/repositoryQuery --external @getstrata/core/database/seeders --external @getstrata/core/database/seeders/types --external @getstrata/core/database/schema --external @getstrata/core/database/table --external @getstrata/core/database/transaction --external @getstrata/core/database/types --external @getstrata/core/database/whereBuilder --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/facades --external @getstrata/core/http --external @getstrata/core/http/authMiddleware --external @getstrata/core/http/authorizeMiddleware --external @getstrata/core/http/bodySizeLimitMiddleware --external @getstrata/core/http/clientIp --external @getstrata/core/http/cookies --external @getstrata/core/http/contentNegotiation --external @getstrata/core/http/conditionalResponse --external @getstrata/core/http/corsMiddleware --external @getstrata/core/http/csrfMiddleware --external @getstrata/core/http/csrfProtection --external @getstrata/core/http/csrfToken --external @getstrata/core/http/etag --external @getstrata/core/http/flashSession --external @getstrata/core/http/flashMiddleware --external @getstrata/core/http/formRequest --external @getstrata/core/http/middleware --external @getstrata/core/http/metricsMiddleware --external @getstrata/core/http/loginThrottleMiddleware --external @getstrata/core/http/memoryThrottleMiddleware --external @getstrata/core/http/pagination --external @getstrata/core/http/parseFormBody --external @getstrata/core/http/parseMultipartUpload --external @getstrata/core/http/requireAbilityMiddleware --external @getstrata/core/http/requireAuthMiddleware --external @getstrata/core/http/requireGlobalAdminMiddleware --external @getstrata/core/http/requireWebAuthMiddleware --external @getstrata/core/http/resources --external @getstrata/core/http/response --external @getstrata/core/http/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/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/media/imageTransform --external @getstrata/core/metrics/prometheus --external @getstrata/core/notifications --external @getstrata/core/openapi/generator --external @getstrata/core/openapi/registeredRoute --external @getstrata/core/openapi/validate --external @getstrata/core/pagination --external @getstrata/core/queue --external @getstrata/core/queue/createAppQueue --external @getstrata/core/queue/failedJobRepository --external @getstrata/core/queue/failedJobService --external @getstrata/core/queue/jobRegistry --external @getstrata/core/queue/jobRunner --external @getstrata/core/queue/queueMetrics --external @getstrata/core/queue/publicQueue --external @getstrata/core/queue/redisQueue --external @getstrata/core/queue/types --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/runtime/asyncContextStore --external @getstrata/core/scheduler/schedule --external @getstrata/core/scheduler/osCron --external @getstrata/core/security/oauthState --external @getstrata/core/security/publicReads --external @getstrata/core/security/safeFetch --external @getstrata/core/security/safeUrl --external @getstrata/core/security/scimTenantTokens --external @getstrata/core/security/securityEvents --external @getstrata/core/security/stripeWebhook --external @getstrata/core/security/timingSafeCompare --external @getstrata/core/security/tokenExpiry --external @getstrata/core/security/totp --external @getstrata/core/storage/storage --external @getstrata/core/tenant/tenancyConfig --external @getstrata/core/tenant/tenantContext --external @getstrata/core/tenant/tenantDatabaseScope --external @getstrata/core/tenant/databaseTenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/terminal/runShell --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
|
|
781
|
+
"build:subpaths": "bun build entries/auth/accessControl.ts entries/auth/abilityChecker.ts entries/auth/membershipMiddleware.ts entries/auth/membershipScope.ts entries/auth/membershipService.ts entries/auth/oauth/oidcProvider.ts entries/auth/oauth/providers.ts entries/auth/oauth/samlProvider.ts entries/auth/oauth/types.ts entries/auth/password.ts entries/auth/policy.ts entries/auth/scimAuthMiddleware.ts entries/auth/sessionCookie.ts entries/auth/sessionGuard.ts entries/auth/tokenHash.ts entries/audit/exportAuditLogs.ts entries/audit/siemFormatter.ts entries/admin/formatValue.ts entries/admin/registry.ts entries/admin/types.ts entries/cache/tags.ts entries/cache/createCacheStore.ts entries/cache/repository.ts entries/cache/simpleCache.ts entries/cache/simpleCacheStore.ts entries/config/envSchema.ts entries/contracts/serviceTokens.ts entries/contracts/container.ts entries/contracts/di.ts entries/crypto/fieldEncryption.ts entries/crypto/mfaSecret.ts entries/database/errors.ts entries/database/factory.ts entries/database/migrations.ts entries/database/migrations/types.ts entries/database/model.ts entries/database/query.ts entries/database/relationships.ts entries/database/repositoryQuery.ts entries/database/seeders.ts entries/database/seeders/types.ts entries/database/schema.ts entries/database/table.ts entries/database/types.ts entries/database/whereBuilder.ts entries/facades.ts entries/http/authMiddleware.ts entries/http/authorizeMiddleware.ts entries/http/bodySizeLimitMiddleware.ts entries/http/clientIp.ts entries/http/cookies.ts entries/http/contentNegotiation.ts entries/http/conditionalResponse.ts entries/http/corsMiddleware.ts entries/http/csrfMiddleware.ts entries/http/csrfProtection.ts entries/http/csrfToken.ts entries/http/etag.ts entries/http/flashSession.ts entries/http/flashMiddleware.ts entries/http/formRequest.ts entries/http/metricsMiddleware.ts entries/http/loginThrottleMiddleware.ts entries/http/memoryThrottleMiddleware.ts entries/http/pagination.ts entries/http/parseFormBody.ts entries/http/parseMultipartUpload.ts entries/http/requireAbilityMiddleware.ts entries/http/requireAuthMiddleware.ts entries/http/requireGlobalAdminMiddleware.ts entries/http/requireWebAuthMiddleware.ts entries/http/resources.ts entries/http/response.ts entries/http/route.ts entries/http/routeMiddleware.ts entries/http/routeModelBinding.ts entries/http/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/media/imageTransform.ts entries/metrics/prometheus.ts entries/openapi/generator.ts entries/openapi/registeredRoute.ts entries/openapi/validate.ts entries/pagination.ts entries/queue.ts entries/queue/createAppQueue.ts entries/queue/failedJobRepository.ts entries/queue/failedJobService.ts entries/queue/jobRunner.ts entries/queue/queueMetrics.ts entries/queue/publicQueue.ts entries/queue/redisQueue.ts entries/queue/types.ts entries/runtime/asyncContextStore.ts entries/scheduler/schedule.ts entries/scheduler/osCron.ts entries/security/oauthState.ts entries/security/publicReads.ts entries/security/safeFetch.ts entries/security/safeUrl.ts entries/security/scimTenantTokens.ts entries/security/stripeWebhook.ts entries/security/timingSafeCompare.ts entries/security/tokenExpiry.ts entries/security/totp.ts entries/storage/storage.ts entries/tenant/tenancyConfig.ts entries/tenant/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.ts entries/terminal/runShell.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts entries/view.ts --outdir dist --root . --target bun --external bun --external eta --external @getstrata/core --external @getstrata/core/auth/accessControl --external @getstrata/core/auth/abilityChecker --external @getstrata/core/auth/authContext --external @getstrata/core/auth/guard --external @getstrata/core/auth/membershipContext --external @getstrata/core/auth/membershipMiddleware --external @getstrata/core/auth/membershipScope --external @getstrata/core/auth/membershipService --external @getstrata/core/auth/oauth/oidcProvider --external @getstrata/core/auth/oauth/providers --external @getstrata/core/auth/oauth/samlProvider --external @getstrata/core/auth/oauth/types --external @getstrata/core/auth/password --external @getstrata/core/auth/policy --external @getstrata/core/auth/scimAuthMiddleware --external @getstrata/core/auth/sessionCookie --external @getstrata/core/auth/sessionGuard --external @getstrata/core/auth/tokenHash --external @getstrata/core/audit/exportAuditLogs --external @getstrata/core/audit/siemFormatter --external @getstrata/core/admin/formatValue --external @getstrata/core/admin/registry --external @getstrata/core/admin/types --external @getstrata/core/cache/tags --external @getstrata/core/cache/createCacheStore --external @getstrata/core/cache/repository --external @getstrata/core/cache/simpleCache --external @getstrata/core/cache/simpleCacheStore --external @getstrata/core/config/envSchema --external @getstrata/core/contracts/serviceTokens --external @getstrata/core/contracts/container --external @getstrata/core/contracts/di --external @getstrata/core/crypto/fieldEncryption --external @getstrata/core/crypto/mfaSecret --external @getstrata/core/database --external @getstrata/core/database/baseRepository --external @getstrata/core/database/bindConnection --external @getstrata/core/database/boundConnection --external @getstrata/core/database/bunSql --external @getstrata/core/database/connection --external @getstrata/core/database/defaultConnection --external @getstrata/core/database/errors --external @getstrata/core/database/factory --external @getstrata/core/database/migrations --external @getstrata/core/database/migrations/types --external @getstrata/core/database/model --external @getstrata/core/database/query --external @getstrata/core/database/relationships --external @getstrata/core/database/repositoryConnection --external @getstrata/core/database/repositoryQuery --external @getstrata/core/database/seeders --external @getstrata/core/database/seeders/types --external @getstrata/core/database/schema --external @getstrata/core/database/table --external @getstrata/core/database/transaction --external @getstrata/core/database/types --external @getstrata/core/database/whereBuilder --external @getstrata/core/errors/http --external @getstrata/core/events --external @getstrata/core/facades --external @getstrata/core/http --external @getstrata/core/http/authMiddleware --external @getstrata/core/http/authorizeMiddleware --external @getstrata/core/http/bodySizeLimitMiddleware --external @getstrata/core/http/clientIp --external @getstrata/core/http/cookies --external @getstrata/core/http/contentNegotiation --external @getstrata/core/http/conditionalResponse --external @getstrata/core/http/corsMiddleware --external @getstrata/core/http/csrfMiddleware --external @getstrata/core/http/csrfProtection --external @getstrata/core/http/csrfToken --external @getstrata/core/http/etag --external @getstrata/core/http/flashSession --external @getstrata/core/http/flashMiddleware --external @getstrata/core/http/formRequest --external @getstrata/core/http/middleware --external @getstrata/core/http/metricsMiddleware --external @getstrata/core/http/loginThrottleMiddleware --external @getstrata/core/http/memoryThrottleMiddleware --external @getstrata/core/http/pagination --external @getstrata/core/http/parseFormBody --external @getstrata/core/http/parseMultipartUpload --external @getstrata/core/http/requireAbilityMiddleware --external @getstrata/core/http/requireAuthMiddleware --external @getstrata/core/http/requireGlobalAdminMiddleware --external @getstrata/core/http/requireWebAuthMiddleware --external @getstrata/core/http/resources --external @getstrata/core/http/response --external @getstrata/core/http/route --external @getstrata/core/http/routeMiddleware --external @getstrata/core/http/routeModelBinding --external @getstrata/core/http/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/media/imageTransform --external @getstrata/core/metrics/prometheus --external @getstrata/core/notifications --external @getstrata/core/openapi/generator --external @getstrata/core/openapi/registeredRoute --external @getstrata/core/openapi/validate --external @getstrata/core/pagination --external @getstrata/core/queue --external @getstrata/core/queue/createAppQueue --external @getstrata/core/queue/failedJobRepository --external @getstrata/core/queue/failedJobService --external @getstrata/core/queue/jobRegistry --external @getstrata/core/queue/jobRunner --external @getstrata/core/queue/queueMetrics --external @getstrata/core/queue/publicQueue --external @getstrata/core/queue/redisQueue --external @getstrata/core/queue/types --external @getstrata/core/runtime/applicationRegistry --external @getstrata/core/runtime/asyncContextStore --external @getstrata/core/scheduler/schedule --external @getstrata/core/scheduler/osCron --external @getstrata/core/security/oauthState --external @getstrata/core/security/publicReads --external @getstrata/core/security/safeFetch --external @getstrata/core/security/safeUrl --external @getstrata/core/security/scimTenantTokens --external @getstrata/core/security/securityEvents --external @getstrata/core/security/stripeWebhook --external @getstrata/core/security/timingSafeCompare --external @getstrata/core/security/tokenExpiry --external @getstrata/core/security/totp --external @getstrata/core/storage/storage --external @getstrata/core/tenant/tenancyConfig --external @getstrata/core/tenant/tenantContext --external @getstrata/core/tenant/tenantDatabaseScope --external @getstrata/core/tenant/databaseTenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/terminal/runShell --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
|
|
777
782
|
"build:shims": "bun ../../scripts/write-core-shared-shims.ts"
|
|
778
783
|
},
|
|
779
784
|
"publishConfig": {
|