@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 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
- import type { DatabaseConnection } from "./baseRepository";
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
- export { htmlResponse, isHtmxRequest, notFoundHtmlResponse, redirectResponse, textResponse, xmlResponse, };
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 buckets = new Map;
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; charset=utf-8"
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; charset=utf-8"
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";
@@ -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; charset=utf-8"
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
- bindDatabaseConnection2(getActiveDatabaseConnection(getDefaultDatabasePool()));
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; charset=utf-8"
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 buckets = new Map;
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
- bindDatabaseConnection2 as bindDatabaseConnection,
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.59",
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": {