@getstrata/bootstrap 0.2.22 → 0.2.23

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.
Files changed (234) hide show
  1. package/dist/bootstrap/applicationRegistry.d.ts +1 -1
  2. package/dist/bootstrap/buildModuleRoutes.d.ts +10 -0
  3. package/dist/bootstrap/config.d.ts +1 -1
  4. package/dist/bootstrap/contracts.d.ts +4 -4
  5. package/dist/bootstrap/public-api.d.ts +2 -0
  6. package/dist/entries/applicationRegistry.js +12 -115
  7. package/dist/entries/buildModuleRoutes.js +626 -0
  8. package/dist/entries/config.js +9 -9
  9. package/dist/entries/context.js +114 -178
  10. package/dist/entries/contracts.js +10 -85
  11. package/dist/entries/createWebRoutes.js +9 -9
  12. package/dist/entries/dependencies.js +114 -178
  13. package/dist/entries/http/securedRouteModelBinding.js +4 -34
  14. package/dist/entries/httpKernel.js +9 -9
  15. package/dist/entries/membershipService.js +0 -34
  16. package/dist/entries/providers/view.js +9 -9
  17. package/dist/entries/providers.js +104 -115
  18. package/dist/entries/queue/defaultJobs.js +0 -34
  19. package/dist/entries/web/routing.js +20 -41
  20. package/dist/index.js +1670 -1659
  21. package/package.json +9 -4
  22. package/dist/cli/commands/scheduleRun.d.ts +0 -3
  23. package/dist/config/app.d.ts +0 -10
  24. package/dist/config/auth.d.ts +0 -7
  25. package/dist/config/contentSecurityPolicy.d.ts +0 -5
  26. package/dist/config/cors.d.ts +0 -9
  27. package/dist/config/database.d.ts +0 -10
  28. package/dist/config/features.d.ts +0 -18
  29. package/dist/config/frontend.d.ts +0 -6
  30. package/dist/config/queue.d.ts +0 -8
  31. package/dist/config/rateLimit.d.ts +0 -10
  32. package/dist/config/uploads.d.ts +0 -5
  33. package/dist/core/admin/formatValue.d.ts +0 -3
  34. package/dist/core/admin/index.d.ts +0 -3
  35. package/dist/core/admin/registry.d.ts +0 -11
  36. package/dist/core/admin/types.d.ts +0 -24
  37. package/dist/core/audit/exportAuditLogs.d.ts +0 -8
  38. package/dist/core/audit/siemFormatter.d.ts +0 -30
  39. package/dist/core/auth/abilityChecker.d.ts +0 -6
  40. package/dist/core/auth/accessControl.d.ts +0 -8
  41. package/dist/core/auth/authContext.d.ts +0 -11
  42. package/dist/core/auth/guard.d.ts +0 -36
  43. package/dist/core/auth/membershipContext.d.ts +0 -15
  44. package/dist/core/auth/membershipContextMiddleware.d.ts +0 -3
  45. package/dist/core/auth/membershipMiddleware.d.ts +0 -2
  46. package/dist/core/auth/membershipScope.d.ts +0 -16
  47. package/dist/core/auth/membershipService.d.ts +0 -23
  48. package/dist/core/auth/oauth/oidcProvider.d.ts +0 -18
  49. package/dist/core/auth/oauth/providers.d.ts +0 -22
  50. package/dist/core/auth/oauth/samlProvider.d.ts +0 -9
  51. package/dist/core/auth/oauth/types.d.ts +0 -11
  52. package/dist/core/auth/password.d.ts +0 -3
  53. package/dist/core/auth/policy.d.ts +0 -15
  54. package/dist/core/auth/resolveMembershipService.d.ts +0 -3
  55. package/dist/core/auth/scimAuthMiddleware.d.ts +0 -3
  56. package/dist/core/auth/sessionCookie.d.ts +0 -6
  57. package/dist/core/auth/sessionGuard.d.ts +0 -9
  58. package/dist/core/auth/tokenHash.d.ts +0 -3
  59. package/dist/core/cache/createCacheStore.d.ts +0 -11
  60. package/dist/core/cache/redisCacheStore.d.ts +0 -23
  61. package/dist/core/cache/repository.d.ts +0 -17
  62. package/dist/core/cache/simpleCache.d.ts +0 -23
  63. package/dist/core/cache/simpleCacheStore.d.ts +0 -16
  64. package/dist/core/cache/store.d.ts +0 -12
  65. package/dist/core/cache/taggedCache.d.ts +0 -9
  66. package/dist/core/cache/tags.d.ts +0 -11
  67. package/dist/core/config/envSchema.d.ts +0 -12
  68. package/dist/core/contracts/container.d.ts +0 -30
  69. package/dist/core/contracts/di.d.ts +0 -31
  70. package/dist/core/contracts/serviceContainer.d.ts +0 -1
  71. package/dist/core/contracts/serviceTokens.d.ts +0 -8
  72. package/dist/core/crypto/fieldEncryption.d.ts +0 -13
  73. package/dist/core/crypto/mfaSecret.d.ts +0 -3
  74. package/dist/core/crypto/nonCryptographicHash.d.ts +0 -2
  75. package/dist/core/database/baseRepository.d.ts +0 -67
  76. package/dist/core/database/bindConnection.d.ts +0 -3
  77. package/dist/core/database/boundConnection.d.ts +0 -5
  78. package/dist/core/database/connection.d.ts +0 -7
  79. package/dist/core/database/connectionContext.d.ts +0 -8
  80. package/dist/core/database/defaultConnection.d.ts +0 -6
  81. package/dist/core/database/errors.d.ts +0 -12
  82. package/dist/core/database/index.d.ts +0 -18
  83. package/dist/core/database/migrations/advisoryLock.d.ts +0 -6
  84. package/dist/core/database/migrations/runner.d.ts +0 -25
  85. package/dist/core/database/migrations/types.d.ts +0 -15
  86. package/dist/core/database/model.d.ts +0 -57
  87. package/dist/core/database/query.d.ts +0 -63
  88. package/dist/core/database/queryProxy.d.ts +0 -3
  89. package/dist/core/database/relationships.d.ts +0 -100
  90. package/dist/core/database/repositoryConnection.d.ts +0 -4
  91. package/dist/core/database/repositoryQuery.d.ts +0 -38
  92. package/dist/core/database/schema/blueprint.d.ts +0 -47
  93. package/dist/core/database/schema/columnDefinition.d.ts +0 -36
  94. package/dist/core/database/schema/driver.d.ts +0 -8
  95. package/dist/core/database/schema/errors.d.ts +0 -4
  96. package/dist/core/database/schema/grammars/compileStatements.d.ts +0 -8
  97. package/dist/core/database/schema/grammars/createGrammar.d.ts +0 -4
  98. package/dist/core/database/schema/grammars/grammar.d.ts +0 -10
  99. package/dist/core/database/schema/grammars/index.d.ts +0 -7
  100. package/dist/core/database/schema/grammars/mysqlGrammar.d.ts +0 -2
  101. package/dist/core/database/schema/grammars/postgresGrammar.d.ts +0 -2
  102. package/dist/core/database/schema/grammars/sqliteGrammar.d.ts +0 -2
  103. package/dist/core/database/schema/index.d.ts +0 -12
  104. package/dist/core/database/schema/schema.d.ts +0 -21
  105. package/dist/core/database/seeders/runner.d.ts +0 -6
  106. package/dist/core/database/seeders/types.d.ts +0 -8
  107. package/dist/core/database/table.d.ts +0 -13
  108. package/dist/core/database/transaction.d.ts +0 -3
  109. package/dist/core/database/types.d.ts +0 -66
  110. package/dist/core/database/whereBuilder.d.ts +0 -17
  111. package/dist/core/errors/http.d.ts +0 -33
  112. package/dist/core/events/eventBus.d.ts +0 -10
  113. package/dist/core/events/index.d.ts +0 -4
  114. package/dist/core/facades/index.d.ts +0 -10
  115. package/dist/core/http/authMiddleware.d.ts +0 -5
  116. package/dist/core/http/authorizeMiddleware.d.ts +0 -5
  117. package/dist/core/http/bodySizeLimitMiddleware.d.ts +0 -4
  118. package/dist/core/http/conditionalResponse.d.ts +0 -2
  119. package/dist/core/http/contentNegotiation.d.ts +0 -2
  120. package/dist/core/http/cookies.d.ts +0 -4
  121. package/dist/core/http/corsMiddleware.d.ts +0 -3
  122. package/dist/core/http/csrfMiddleware.d.ts +0 -3
  123. package/dist/core/http/csrfProtection.d.ts +0 -12
  124. package/dist/core/http/csrfToken.d.ts +0 -14
  125. package/dist/core/http/etag.d.ts +0 -18
  126. package/dist/core/http/flashMiddleware.d.ts +0 -3
  127. package/dist/core/http/flashSession.d.ts +0 -12
  128. package/dist/core/http/formRequest.d.ts +0 -10
  129. package/dist/core/http/index.d.ts +0 -27
  130. package/dist/core/http/loginThrottleMiddleware.d.ts +0 -11
  131. package/dist/core/http/memoryThrottleMiddleware.d.ts +0 -9
  132. package/dist/core/http/metricsMiddleware.d.ts +0 -4
  133. package/dist/core/http/middleware.d.ts +0 -8
  134. package/dist/core/http/pagination.d.ts +0 -11
  135. package/dist/core/http/parseFormBody.d.ts +0 -6
  136. package/dist/core/http/parseMultipartUpload.d.ts +0 -10
  137. package/dist/core/http/requestMetaContext.d.ts +0 -15
  138. package/dist/core/http/requireAbilityMiddleware.d.ts +0 -4
  139. package/dist/core/http/requireAuthMiddleware.d.ts +0 -4
  140. package/dist/core/http/requireGlobalAdminMiddleware.d.ts +0 -3
  141. package/dist/core/http/requireWebAuthMiddleware.d.ts +0 -4
  142. package/dist/core/http/resources.d.ts +0 -7
  143. package/dist/core/http/route.d.ts +0 -6
  144. package/dist/core/http/routeMiddleware.d.ts +0 -3
  145. package/dist/core/http/routeModelBinding.d.ts +0 -3
  146. package/dist/core/http/scimThrottleMiddleware.d.ts +0 -9
  147. package/dist/core/http/securedRouteModelBinding.d.ts +0 -11
  148. package/dist/core/http/securityHeadersMiddleware.d.ts +0 -3
  149. package/dist/core/http/throttleMiddleware.d.ts +0 -11
  150. package/dist/core/http/validation.d.ts +0 -23
  151. package/dist/core/http/webErrorResponse.d.ts +0 -5
  152. package/dist/core/http/webFormRequest.d.ts +0 -7
  153. package/dist/core/jobs/dispatchWebhookJob.d.ts +0 -13
  154. package/dist/core/jobs/invalidateCacheTagsJob.d.ts +0 -12
  155. package/dist/core/lifecycle/gracefulShutdown.d.ts +0 -6
  156. package/dist/core/logging/logger.d.ts +0 -17
  157. package/dist/core/logging/requestLoggingMiddleware.d.ts +0 -3
  158. package/dist/core/mail/mailer.d.ts +0 -38
  159. package/dist/core/mail/markdownMail.d.ts +0 -15
  160. package/dist/core/mail/markdownMailable.d.ts +0 -12
  161. package/dist/core/metrics/prometheus.d.ts +0 -26
  162. package/dist/core/notifications/dispatcher.d.ts +0 -13
  163. package/dist/core/notifications/index.d.ts +0 -3
  164. package/dist/core/notifications/notification.d.ts +0 -7
  165. package/dist/core/notifications/types.d.ts +0 -25
  166. package/dist/core/openapi/registeredRoute.d.ts +0 -6
  167. package/dist/core/pagination/index.d.ts +0 -27
  168. package/dist/core/queue/createAppQueue.d.ts +0 -5
  169. package/dist/core/queue/failedJobRepository.d.ts +0 -6
  170. package/dist/core/queue/failedJobService.d.ts +0 -16
  171. package/dist/core/queue/failedJobTable.d.ts +0 -3
  172. package/dist/core/queue/index.d.ts +0 -19
  173. package/dist/core/queue/jobRegistry.d.ts +0 -13
  174. package/dist/core/queue/jobRunner.d.ts +0 -9
  175. package/dist/core/queue/publicQueue.d.ts +0 -16
  176. package/dist/core/queue/queueMetrics.d.ts +0 -15
  177. package/dist/core/queue/redisQueue.d.ts +0 -29
  178. package/dist/core/queue/resilientQueue.d.ts +0 -9
  179. package/dist/core/queue/types.d.ts +0 -8
  180. package/dist/core/runtime/applicationRegistry.d.ts +0 -17
  181. package/dist/core/runtime/asyncContextStore.d.ts +0 -3
  182. package/dist/core/scheduler/schedule.d.ts +0 -15
  183. package/dist/core/security/publicReads.d.ts +0 -3
  184. package/dist/core/security/safeFetch.d.ts +0 -10
  185. package/dist/core/security/safeUrl.d.ts +0 -20
  186. package/dist/core/security/scimTenantTokens.d.ts +0 -3
  187. package/dist/core/security/securityEvents.d.ts +0 -6
  188. package/dist/core/security/timingSafeCompare.d.ts +0 -2
  189. package/dist/core/security/tokenExpiry.d.ts +0 -2
  190. package/dist/core/security/totp.d.ts +0 -3
  191. package/dist/core/storage/storage.d.ts +0 -44
  192. package/dist/core/tenant/databaseTenantContext.d.ts +0 -2
  193. package/dist/core/tenant/resolveTenant.d.ts +0 -3
  194. package/dist/core/tenant/tenantContext.d.ts +0 -13
  195. package/dist/core/tenant/tenantDatabaseScope.d.ts +0 -8
  196. package/dist/core/tenant/tenantMiddleware.d.ts +0 -6
  197. package/dist/core/tracing/otel.d.ts +0 -26
  198. package/dist/core/tracing/traceContext.d.ts +0 -9
  199. package/dist/core/tracing/tracingMiddleware.d.ts +0 -3
  200. package/dist/core/validation/rules.d.ts +0 -17
  201. package/dist/core/view/etaViewEngine.d.ts +0 -15
  202. package/dist/core/view/htmlResponse.d.ts +0 -6
  203. package/dist/core/view/index.d.ts +0 -5
  204. package/dist/core/view/viewEngine.d.ts +0 -6
  205. package/dist/core/view/webLayoutData.d.ts +0 -17
  206. package/dist/db/connection/createConnection.d.ts +0 -6
  207. package/dist/db/connection/index.d.ts +0 -11
  208. package/dist/domain/abilities.d.ts +0 -5
  209. package/dist/domain/auth.d.ts +0 -4
  210. package/dist/domain/scim.d.ts +0 -9
  211. package/dist/domain/workhub.d.ts +0 -35
  212. package/dist/framework/public-api.d.ts +0 -116
  213. package/dist/modules/organization/memberRepository.d.ts +0 -14
  214. package/dist/modules/organization/memberTypes.d.ts +0 -9
  215. package/dist/modules/organization/repository.d.ts +0 -14
  216. package/dist/modules/organization/table.d.ts +0 -3
  217. package/dist/modules/organization/types.d.ts +0 -10
  218. package/dist/modules/scim/controller.d.ts +0 -16
  219. package/dist/modules/scim/scimResponse.d.ts +0 -10
  220. package/dist/modules/scim/service.d.ts +0 -214
  221. package/dist/modules/user/apiTokenRepository.d.ts +0 -8
  222. package/dist/modules/user/apiTokenTable.d.ts +0 -3
  223. package/dist/modules/user/authService.d.ts +0 -23
  224. package/dist/modules/user/notificationRepository.d.ts +0 -6
  225. package/dist/modules/user/notificationService.d.ts +0 -25
  226. package/dist/modules/user/notificationTable.d.ts +0 -3
  227. package/dist/modules/user/notificationTypes.d.ts +0 -12
  228. package/dist/modules/user/oauthIdentityRepository.d.ts +0 -9
  229. package/dist/modules/user/provider.d.ts +0 -11
  230. package/dist/modules/user/repository.d.ts +0 -13
  231. package/dist/modules/user/table.d.ts +0 -3
  232. package/dist/modules/user/tokenService.d.ts +0 -29
  233. package/dist/modules/user/types.d.ts +0 -46
  234. package/dist/types/services.d.ts +0 -16
@@ -1,3 +0,0 @@
1
- declare function generateTotp(secret: string, counter: number, digits?: number): string;
2
- declare function verifyTotp(secret: string, token: string, window?: number): boolean;
3
- export { generateTotp, verifyTotp };
@@ -1,44 +0,0 @@
1
- import { S3Client } from "bun";
2
- interface StorageDriver {
3
- put(path: string, contents: string | Uint8Array): Promise<string>;
4
- get(path: string): Promise<Uint8Array | null>;
5
- delete(path: string): Promise<boolean>;
6
- }
7
- interface S3StorageConfig {
8
- accessKeyId: string;
9
- secretAccessKey: string;
10
- bucket: string;
11
- region?: string;
12
- endpoint?: string;
13
- }
14
- declare class LocalStorageDriver implements StorageDriver {
15
- private readonly rootDirectory?;
16
- constructor(rootDirectory?: string | undefined);
17
- private resolveRootDirectory;
18
- private resolvePath;
19
- put(path: string, contents: string | Uint8Array): Promise<string>;
20
- get(path: string): Promise<Uint8Array | null>;
21
- delete(path: string): Promise<boolean>;
22
- }
23
- declare class S3StorageDriver implements StorageDriver {
24
- private readonly client;
25
- constructor(client: S3Client);
26
- put(path: string, contents: string | Uint8Array): Promise<string>;
27
- get(path: string): Promise<Uint8Array | null>;
28
- delete(path: string): Promise<boolean>;
29
- }
30
- declare class StorageManager {
31
- private readonly driver;
32
- constructor(driver: StorageDriver);
33
- put(path: string, contents: string | Uint8Array): Promise<string>;
34
- get(path: string): Promise<Uint8Array | null>;
35
- delete(path: string): Promise<boolean>;
36
- }
37
- declare function resolveS3Config(): S3StorageConfig;
38
- declare function createS3Client(config?: S3StorageConfig): S3Client;
39
- declare function createStorageDriver(): StorageDriver;
40
- declare function storage(): StorageManager;
41
- /** Test hook: drop the process-wide storage singleton (e.g. after changing STORAGE_PATH). */
42
- declare function resetDefaultStorage(): void;
43
- export type { S3StorageConfig, StorageDriver };
44
- export { createS3Client, createStorageDriver, LocalStorageDriver, resetDefaultStorage, resolveS3Config, S3StorageDriver, StorageManager, storage, };
@@ -1,2 +0,0 @@
1
- declare function runWithMigrationBypass<T>(callback: () => T | Promise<T>): Promise<T>;
2
- export { runWithMigrationBypass };
@@ -1,3 +0,0 @@
1
- import type { TenantContext } from "./tenantContext";
2
- declare function resolveTenant(tenantId: number): Promise<TenantContext | null>;
3
- export { resolveTenant };
@@ -1,13 +0,0 @@
1
- type TenantContext = {
2
- id: number;
3
- slug: string;
4
- plan: "free" | "pro" | "enterprise";
5
- region: "eu" | "us" | "apac";
6
- };
7
- declare const tenantContext: import("node:async_hooks").AsyncLocalStorage<TenantContext>;
8
- declare function runWithTenant<T>(tenant: TenantContext, callback: () => T | Promise<T>): T | Promise<T>;
9
- declare function currentTenant(): TenantContext | null;
10
- declare function currentTenantId(): number;
11
- declare function rateLimitMultiplierForPlan(plan: TenantContext["plan"]): number;
12
- export type { TenantContext };
13
- export { currentTenant, currentTenantId, rateLimitMultiplierForPlan, runWithTenant, tenantContext };
@@ -1,8 +0,0 @@
1
- import { type TenantContext } from "./tenantContext";
2
- type TransactionHandle = {
3
- unsafe(query: string, params?: readonly unknown[]): Promise<unknown[]>;
4
- };
5
- declare function applyTenantContextToTransaction(transaction: TransactionHandle, tenantId: number): Promise<void>;
6
- declare function runWithTenantDatabase<T>(tenant: TenantContext, callback: () => T | Promise<T>): Promise<T>;
7
- declare function isInsideTenantDatabaseScope(tenantId?: number | undefined): boolean;
8
- export { applyTenantContextToTransaction, isInsideTenantDatabaseScope, runWithTenantDatabase };
@@ -1,6 +0,0 @@
1
- import type { TenantContext } from "./tenantContext";
2
- declare const DEFAULT_TENANT: TenantContext;
3
- declare function resolveUserTenantId(userId: number): Promise<number>;
4
- declare function auditChecksum(payload: Record<string, unknown>): string;
5
- declare function createTenantMiddleware(): (request: Request, next: () => Promise<Response>) => Promise<Response>;
6
- export { auditChecksum, createTenantMiddleware, DEFAULT_TENANT, resolveUserTenantId };
@@ -1,26 +0,0 @@
1
- interface OtelSpan {
2
- traceId: string;
3
- spanId: string;
4
- name: string;
5
- startTimeUnixNano: string;
6
- endTimeUnixNano: string;
7
- attributes: Array<{
8
- key: string;
9
- value: {
10
- stringValue: string;
11
- };
12
- }>;
13
- status: {
14
- code: number;
15
- };
16
- }
17
- declare function createSpan(input: {
18
- traceId: string;
19
- name: string;
20
- startedAt: number;
21
- endedAt: number;
22
- attributes?: Record<string, string>;
23
- }): OtelSpan;
24
- declare function exportOtelSpan(span: OtelSpan): Promise<void>;
25
- export type { OtelSpan };
26
- export { createSpan, exportOtelSpan };
@@ -1,9 +0,0 @@
1
- type TraceContext = {
2
- traceId: string;
3
- spanId: string;
4
- };
5
- declare const traceContextStorage: import("node:async_hooks").AsyncLocalStorage<TraceContext>;
6
- declare function runWithTraceContext<T>(context: TraceContext, callback: () => T | Promise<T>): T | Promise<T>;
7
- declare function currentTraceId(): string | null;
8
- export type { TraceContext };
9
- export { currentTraceId, runWithTraceContext, traceContextStorage };
@@ -1,3 +0,0 @@
1
- import type { Middleware } from "../http/middleware";
2
- declare function createTracingMiddleware(): Middleware;
3
- export { createTracingMiddleware };
@@ -1,17 +0,0 @@
1
- type ValidationRule = (field: string, value: unknown, payload: Record<string, unknown>) => string | undefined;
2
- type ValidationSchema = Record<string, ValidationRule[]>;
3
- declare function required(): ValidationRule;
4
- declare function stringRule(): ValidationRule;
5
- declare function minLength(minimum: number): ValidationRule;
6
- declare function maxLength(maximum: number): ValidationRule;
7
- declare function pattern(expression: RegExp): ValidationRule;
8
- declare function enumRule<TValue extends string>(allowedValues: readonly TValue[]): ValidationRule;
9
- declare function optional(): ValidationRule;
10
- declare function integerRule(): ValidationRule;
11
- declare function emailRule(): ValidationRule;
12
- declare function confirmed(fieldName: string): ValidationRule;
13
- declare function positiveIntegerRule(): ValidationRule;
14
- declare function integerRange(minimum: number, maximum: number): ValidationRule;
15
- declare function validateObject(payload: unknown, schema: ValidationSchema): Record<string, unknown>;
16
- export type { ValidationRule, ValidationSchema };
17
- export { confirmed, emailRule, enumRule, integerRange, integerRule, maxLength, minLength, optional, pattern, positiveIntegerRule, required, stringRule, validateObject, };
@@ -1,15 +0,0 @@
1
- import type { ViewEngine } from "./viewEngine";
2
- declare const DEFAULT_VIEWS_DIRECTORY: string;
3
- declare const DEFAULT_LAYOUT = "layouts/app.eta";
4
- interface RenderOptions {
5
- layout?: string | false;
6
- }
7
- type LayoutDataResolver = () => Promise<Record<string, unknown>>;
8
- declare class EtaViewEngine implements ViewEngine {
9
- private readonly eta;
10
- private readonly resolveLayoutData?;
11
- constructor(viewsDirectory?: string, resolveLayoutData?: LayoutDataResolver);
12
- render(name: string, data?: Record<string, unknown>, options?: RenderOptions): Promise<string>;
13
- }
14
- export type { RenderOptions };
15
- export { DEFAULT_LAYOUT, DEFAULT_VIEWS_DIRECTORY, EtaViewEngine };
@@ -1,6 +0,0 @@
1
- declare function htmlResponse(html: string, init?: {
2
- status?: number;
3
- statusText?: string;
4
- }): Response;
5
- declare function isHtmxRequest(request: Request): boolean;
6
- export { htmlResponse, isHtmxRequest };
@@ -1,5 +0,0 @@
1
- export { DEFAULT_VIEWS_DIRECTORY, EtaViewEngine } from "./etaViewEngine";
2
- export { htmlResponse, isHtmxRequest } from "./htmlResponse";
3
- export type { ViewEngine } from "./viewEngine";
4
- export type { WebLayoutAuthUser, WebLayoutData } from "./webLayoutData";
5
- export { resolveWebLayoutData } from "./webLayoutData";
@@ -1,6 +0,0 @@
1
- interface ViewEngine {
2
- render(name: string, data?: Record<string, unknown>, options?: {
3
- layout?: string | false;
4
- }): Promise<string>;
5
- }
6
- export type { ViewEngine };
@@ -1,17 +0,0 @@
1
- import type { ServiceContainerLike } from "../contracts/serviceContainer";
2
- interface WebLayoutAuthUser {
3
- id: number;
4
- email: string;
5
- role: string;
6
- }
7
- interface WebLayoutData {
8
- authUser: WebLayoutAuthUser | null;
9
- csrfToken: string;
10
- flash: {
11
- level: string;
12
- message: string;
13
- } | null;
14
- }
15
- declare function resolveWebLayoutData(container: ServiceContainerLike, request?: Request): Promise<Record<string, unknown>>;
16
- export type { WebLayoutAuthUser, WebLayoutData };
17
- export { resolveWebLayoutData };
@@ -1,6 +0,0 @@
1
- import { SQL } from "bun";
2
- import type { DatabaseConfig } from "../../config/database";
3
- type DatabaseConnection = InstanceType<typeof SQL>;
4
- declare function createDatabaseConnection(config: DatabaseConfig): DatabaseConnection;
5
- export type { DatabaseConnection };
6
- export { createDatabaseConnection };
@@ -1,11 +0,0 @@
1
- import type { DatabaseConnection } from "./createConnection";
2
- declare function getDatabase(): DatabaseConnection;
3
- declare function pingDatabase(connection?: DatabaseConnection): Promise<boolean>;
4
- declare function ensureDatabaseConnection(): Promise<DatabaseConnection>;
5
- declare function closeDatabase(): Promise<void>;
6
- declare function replaceDatabaseConnectionForTests(connection?: DatabaseConnection): Promise<void>;
7
- declare function resetDatabaseConnectionForTests(connection: DatabaseConnection): void;
8
- declare const db: Bun.SQL;
9
- export default db;
10
- export type { DatabaseConnection };
11
- export { closeDatabase, ensureDatabaseConnection, getDatabase, pingDatabase, replaceDatabaseConnectionForTests, resetDatabaseConnectionForTests, };
@@ -1,5 +0,0 @@
1
- declare const MEMBER_ABILITIES: readonly ["organizations:read", "projects:read", "projects:create", "tasks:read", "tasks:create", "comments:read", "comments:create", "attachments:read", "attachments:create", "auth:tokens:read", "auth:tokens:write"];
2
- declare const ADMIN_ABILITIES: readonly ["organizations:read", "projects:read", "projects:create", "tasks:read", "tasks:create", "comments:read", "comments:create", "attachments:read", "attachments:create", "auth:tokens:read", "auth:tokens:write", "organizations:create", "organizations:update", "organizations:delete", "projects:update", "projects:delete", "tasks:update", "tasks:delete", "comments:update", "comments:delete", "attachments:delete", "webhooks:read", "webhooks:write", "audit:read"];
3
- declare const PLATFORM_ADMIN_ABILITIES: readonly ["*"];
4
- declare function resolveAbilitiesForRole(role: string | null | undefined): string[];
5
- export { ADMIN_ABILITIES, MEMBER_ABILITIES, PLATFORM_ADMIN_ABILITIES, resolveAbilitiesForRole };
@@ -1,4 +0,0 @@
1
- export declare const TEST_ADMIN_API_TOKEN = "workhub-admin-test-token";
2
- export declare const TEST_MEMBER_API_TOKEN = "workhub-member-test-token";
3
- export declare const USER_ROLES: readonly ["admin", "member"];
4
- export type UserRole = (typeof USER_ROLES)[number];
@@ -1,9 +0,0 @@
1
- export declare const TEST_SCIM_BEARER_TOKEN = "workhub-scim-test-token";
2
- export declare const DEFAULT_SCIM_BEARER_TOKEN = "workhub-scim-test-token";
3
- export declare const SCIM_SCHEMAS: {
4
- readonly user: "urn:ietf:params:scim:schemas:core:2.0:User";
5
- readonly group: "urn:ietf:params:scim:schemas:core:2.0:Group";
6
- readonly listResponse: "urn:ietf:params:scim:api:messages:2.0:ListResponse";
7
- readonly patchOp: "urn:ietf:params:scim:api:messages:2.0:PatchOp";
8
- readonly serviceProviderConfig: "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig";
9
- };
@@ -1,35 +0,0 @@
1
- /**
2
- * WorkHub — complex reference domain for framework stress-testing.
3
- *
4
- * Replaces character/nemesis/secret over time. Module layout:
5
- *
6
- * organization/ top-level tenant (CRUD, unique slug)
7
- * project/ belongsTo organization (CRUD, status enum, composite unique name)
8
- * task/ belongsTo project (CRUD, priority, status enum) — Phase 2
9
- * comment/ belongsTo task (CRUD, nested create) — Phase 2
10
- * report/ cross-module aggregations — Phase 2
11
- *
12
- * Relationship graph:
13
- *
14
- * organization 1──* project 1──* task 1──* comment
15
- *
16
- * Edge cases this domain is meant to exercise:
17
- * - unique violations (organization.slug, project per-org name)
18
- * - FK violations (project.organization_id, task.project_id)
19
- * - enum/check constraints (project.status, task.priority)
20
- * - transactions (create project + default task atomically)
21
- * - belongsTo eager loading (project → organization)
22
- * - cache invalidation on writes
23
- * - PATCH partial updates without nulling omitted fields
24
- */
25
- declare const ORGANIZATION_TABLE: "organization";
26
- declare const PROJECT_TABLE: "project";
27
- declare const TASK_TABLE: "task";
28
- declare const COMMENT_TABLE: "comment";
29
- declare const TASK_ATTACHMENT_TABLE: "task_attachment";
30
- declare const PROJECT_STATUSES: readonly ["draft", "active", "archived"];
31
- declare const TASK_STATUSES: readonly ["todo", "in_progress", "done"];
32
- type ProjectStatus = (typeof PROJECT_STATUSES)[number];
33
- type TaskStatus = (typeof TASK_STATUSES)[number];
34
- export type { ProjectStatus, TaskStatus };
35
- export { COMMENT_TABLE, ORGANIZATION_TABLE, PROJECT_STATUSES, PROJECT_TABLE, TASK_ATTACHMENT_TABLE, TASK_STATUSES, TASK_TABLE, };
@@ -1,116 +0,0 @@
1
- /**
2
- * Stable framework surface for application modules and future package extraction.
3
- * Import from `@getstrata/core` (workspace) or `src/framework/public-api`.
4
- */
5
- export type { AdminColumn, AdminColumnType, AdminResource, AdminResourceDefinition, AdminResourceHandlers, } from "../core/admin/index.ts";
6
- export { AdminResourceRegistry, formatAdminValue, } from "../core/admin/index.ts";
7
- export type { AbilityChecker } from "../core/auth/abilityChecker.ts";
8
- export { isGlobalAdmin, resolveUserId } from "../core/auth/accessControl.ts";
9
- export type { AuthUser } from "../core/auth/authContext.ts";
10
- export { authContext, currentAuthUser, runWithAuthUser } from "../core/auth/authContext.ts";
11
- export type { AuthGuard } from "../core/auth/guard.ts";
12
- export { ApiTokenGuard, AuthManager, CompositeGuard, DatabaseTokenGuard, GuestGuard, } from "../core/auth/guard.ts";
13
- export { currentOrganizationIds, currentOrgRole, hasMinimumOrgRole, hasOrgMembership, } from "../core/auth/membershipContext.ts";
14
- export { createMembershipMiddleware } from "../core/auth/membershipMiddleware.ts";
15
- export { appendOrganizationScope, appendProjectScope, assertOrganizationReadable, assertResourceInCurrentTenant, emptyPaginateResult, resolveOrganizationScope, scopedOrganizationIds, } from "../core/auth/membershipScope.ts";
16
- export { default as MembershipService, resolveMembershipService, } from "../core/auth/membershipService.ts";
17
- export { Policy, PolicyGate } from "../core/auth/policy.ts";
18
- export { createScimAuthMiddleware } from "../core/auth/scimAuthMiddleware.ts";
19
- export { type CacheDriver, type CreateCacheStoreOptions, createCacheStore, } from "../core/cache/createCacheStore.ts";
20
- export { default as CacheRepository } from "../core/cache/repository.ts";
21
- export { CACHE_TAGS } from "../core/cache/tags.ts";
22
- export { ConfigStore, ServiceContainer } from "../core/contracts/container.ts";
23
- export type { ServiceProvider } from "../core/contracts/di.ts";
24
- export { resolveService } from "../core/contracts/di.ts";
25
- export type { DatabaseConnection } from "../core/database/baseRepository.ts";
26
- export { default as BaseRepository } from "../core/database/baseRepository.ts";
27
- export { bindDatabaseConnection } from "../core/database/bindConnection.ts";
28
- export { createDatabaseConnection } from "../core/database/connection.ts";
29
- export { getActiveDatabaseConnection, runWithDatabaseConnection, } from "../core/database/connectionContext.ts";
30
- export { getDefaultDatabasePool, getDefaultDatabaseQuery, registerDefaultDatabasePool, } from "../core/database/defaultConnection.ts";
31
- export { withMigrationLock } from "../core/database/migrations/advisoryLock.ts";
32
- export { freshDatabase, getMigrationStatus, loadMigrationsFromDirectory, migrateDatabase, rollbackDatabase, } from "../core/database/migrations/runner.ts";
33
- export type { Migration, MigrationDatabase, MigrationStatus, } from "../core/database/migrations/types.ts";
34
- export type { CastType, GlobalScopeFn, ModelConstructor } from "../core/database/model.ts";
35
- export { applyCasts, dehydrateValue, filterMassAssignable, hydrateValue, Model, registerModelRepository, } from "../core/database/model.ts";
36
- export { createDatabaseQueryProxy } from "../core/database/queryProxy.ts";
37
- export type { BelongsToManyRelation, BelongsToRelation, HasManyRelation, HasOneRelation, MorphManyRelation, MorphOneRelation, MorphToRelation, } from "../core/database/relationships.ts";
38
- export { belongsTo, belongsToMany, hasMany, hasOne, indexBelongsToManyRelation, indexBelongsToRelation, indexHasManyRelation, indexHasOneRelation, indexMorphManyRelation, indexMorphOneRelation, indexMorphToRelation, morphMany, morphOne, morphTo, } from "../core/database/relationships.ts";
39
- export { repositoryConnection, resolveRepositoryConnection, } from "../core/database/repositoryConnection.ts";
40
- export { RepositoryQuery } from "../core/database/repositoryQuery.ts";
41
- export type { BlueprintAction, BlueprintCallback, ColumnKind, DatabaseDriver, ForeignKeyOptions, Grammar, IndexDefinition, IndexKind, ResolveDatabaseDriverOptions, SchemaBuilder, } from "../core/database/schema/index.ts";
42
- export { Blueprint, ColumnDefinition, compileBlueprint, createSchemaBuilder, ForeignIdColumnDefinition, grammarForDriver, inferReferencedTable, MySqlGrammar, PostgresGrammar, resolveDatabaseDriver, Schema, SqliteGrammar, UnsupportedSchemaFeatureError, } from "../core/database/schema/index.ts";
43
- export { loadSeedersFromDirectory, runSeedersFromDirectory, } from "../core/database/seeders/runner.ts";
44
- export type { Seeder, SeederDatabase } from "../core/database/seeders/types.ts";
45
- export { defineTable } from "../core/database/table.ts";
46
- export { runInTransaction } from "../core/database/transaction.ts";
47
- export type { QueryJoin, QueryJoinOn, QueryOptions, QueryOrder, QuerySelectItem, QueryWhere, } from "../core/database/types.ts";
48
- export type { WhereNode } from "../core/database/whereBuilder.ts";
49
- export { WhereBuilder } from "../core/database/whereBuilder.ts";
50
- export { BadRequestError, ConflictError, ForbiddenError, NotFoundError, PreconditionFailedError, UnauthorizedError, UnprocessableEntityError, ValidationError, } from "../core/errors/http.ts";
51
- export { EventBus } from "../core/events/eventBus.ts";
52
- export { auth, cache, config, events, log, mail, policyGate, queue, storage, } from "../core/facades/index.ts";
53
- export { createBodySizeLimitMiddleware } from "../core/http/bodySizeLimitMiddleware.ts";
54
- export { conditionalJsonResponse } from "../core/http/conditionalResponse.ts";
55
- export { readBunRequestCookie, readRequestCookie } from "../core/http/cookies.ts";
56
- export { createCorsMiddleware } from "../core/http/corsMiddleware.ts";
57
- export { createCsrfMiddleware } from "../core/http/csrfMiddleware.ts";
58
- export { createCsrfProtection } from "../core/http/csrfProtection.ts";
59
- export { createCsrfTokenCookie, readSubmittedCsrfToken, readSubmittedCsrfTokenFromBody, resolveCsrfToken, resolveCsrfTokenForRequest, verifyCsrfToken, } from "../core/http/csrfToken.ts";
60
- export { applyConditionalGet, assertIfMatch, type EtagVersioned, etagFromResource, isEtagEnabled, } from "../core/http/etag.ts";
61
- export { createFlashMiddleware } from "../core/http/flashMiddleware.ts";
62
- export { FormRequest } from "../core/http/formRequest.ts";
63
- export { applyMiddlewareToRoutes, bindRouteModel, buildRequestCacheKey, composeMiddleware, createAuthMiddleware, createAuthorizeMiddleware, createdResponse, createRequireAuthMiddleware, jsonResponse, noContentResponse, paginatedResponse, parsePaginationQuery, parsePositiveIntParam, requestIdMiddleware, securedBindRouteModel, securedBindRouteModelByKey, withErrorHandling, withMiddleware, wrapRouteHandler, } from "../core/http/index.ts";
64
- export { createLoginThrottleMiddleware } from "../core/http/loginThrottleMiddleware.ts";
65
- export { createMemoryThrottleMiddleware } from "../core/http/memoryThrottleMiddleware.ts";
66
- export { createMetricsMiddleware, normalizeMetricPath } from "../core/http/metricsMiddleware.ts";
67
- export type { Middleware, RouteHandler } from "../core/http/middleware.ts";
68
- export { type ParsedUpload, parseMultipartUpload } from "../core/http/parseMultipartUpload.ts";
69
- export type { RequestMeta } from "../core/http/requestMetaContext.ts";
70
- export { currentRequestMeta, runWithRequestMeta } from "../core/http/requestMetaContext.ts";
71
- export { createRequireAbilityMiddleware } from "../core/http/requireAbilityMiddleware.ts";
72
- export { createRequireGlobalAdminMiddleware } from "../core/http/requireGlobalAdminMiddleware.ts";
73
- export { createRequireWebAuthMiddleware } from "../core/http/requireWebAuthMiddleware.ts";
74
- export { serializeDate, toPaginatedResourceCollection, toResourceCollection, } from "../core/http/resources.ts";
75
- export type { RouteRequest } from "../core/http/route.ts";
76
- export { createScimThrottleMiddleware } from "../core/http/scimThrottleMiddleware.ts";
77
- export { createSecurityHeadersMiddleware } from "../core/http/securityHeadersMiddleware.ts";
78
- export { createThrottleMiddleware } from "../core/http/throttleMiddleware.ts";
79
- export { WebFormRequest } from "../core/http/webFormRequest.ts";
80
- export { installGracefulShutdownSignals, registerShutdownHandler, runGracefulShutdown, } from "../core/lifecycle/gracefulShutdown.ts";
81
- export { createRequestLoggingMiddleware } from "../core/logging/requestLoggingMiddleware.ts";
82
- export type { MailDriver, MailMessage } from "../core/mail/mailer.ts";
83
- export { buildSmtpPayload, LogMailDriver, Mailer, mailer, } from "../core/mail/mailer.ts";
84
- export type { MarkdownMailLayoutOptions, RenderedMarkdownMail } from "../core/mail/markdownMail.ts";
85
- export { markdownToHtml, renderMarkdownMail, stripMarkdown, wrapMarkdownMailLayout, } from "../core/mail/markdownMail.ts";
86
- export type { MarkdownMailableInput } from "../core/mail/markdownMailable.ts";
87
- export { buildMarkdownMailMessage, sendMarkdownMail } from "../core/mail/markdownMailable.ts";
88
- export type { MetricLabels } from "../core/metrics/prometheus.ts";
89
- export { PrometheusRegistry, prometheusRegistry } from "../core/metrics/prometheus.ts";
90
- export type { DatabaseNotificationPayload, DatabaseNotificationStore, MailNotificationMessage, Notifiable, NotificationChannelName, } from "../core/notifications/index.ts";
91
- export { createNotificationDispatcher, Notification, NotificationDispatcher, } from "../core/notifications/index.ts";
92
- export type { CursorPaginatedResult, PaginatedResult, PaginationMeta, } from "../core/pagination/index.ts";
93
- export type { Queue, QueuePriority } from "../core/queue/index.ts";
94
- export { AsyncQueue, createQueue, Job, SyncQueue } from "../core/queue/index.ts";
95
- export { createFailedJobService, createProductionQueue, createQueueWorker, createTrackedJob, FailedJobRepository, FailedJobService, jobRegistry, QueueWorker, RedisQueue, ResilientQueue, runQueueJob, } from "../core/queue/publicQueue.ts";
96
- export type { QueueMetricsSnapshot } from "../core/queue/queueMetrics.ts";
97
- export { collectQueueMetrics } from "../core/queue/queueMetrics.ts";
98
- export { resolveApplicationAuth, resolveApplicationCache, resolveApplicationConfig, resolveApplicationDependencies, resolveApplicationEventBus, resolveApplicationLogger, resolveApplicationPolicyGate, resolveApplicationQueue, setActiveApplicationContext, } from "../core/runtime/applicationRegistry.ts";
99
- export type { ScheduledTask } from "../core/scheduler/schedule.ts";
100
- export { appSchedule, runDueScheduledTasks, Schedule } from "../core/scheduler/schedule.ts";
101
- export { guestCanViewResource, isPublicReadsEnabled } from "../core/security/publicReads.ts";
102
- export type { SecurityEventDetails } from "../core/security/securityEvents.ts";
103
- export { logSecurityEvent } from "../core/security/securityEvents.ts";
104
- export type { StorageDriver } from "../core/storage/storage.ts";
105
- export { createStorageDriver, LocalStorageDriver, resetDefaultStorage, StorageManager, } from "../core/storage/storage.ts";
106
- export { currentTenant, currentTenantId, runWithTenant } from "../core/tenant/tenantContext.ts";
107
- export { isInsideTenantDatabaseScope, runWithTenantDatabase, } from "../core/tenant/tenantDatabaseScope.ts";
108
- export { auditChecksum, createTenantMiddleware, DEFAULT_TENANT, resolveUserTenantId, } from "../core/tenant/tenantMiddleware.ts";
109
- export type { TraceContext } from "../core/tracing/traceContext.ts";
110
- export { currentTraceId, runWithTraceContext } from "../core/tracing/traceContext.ts";
111
- export { createTracingMiddleware } from "../core/tracing/tracingMiddleware.ts";
112
- export type { ValidationRule, ValidationSchema } from "../core/validation/rules.ts";
113
- export { emailRule, maxLength, minLength, required, stringRule, validateObject, } from "../core/validation/rules.ts";
114
- export { DEFAULT_VIEWS_DIRECTORY, EtaViewEngine, htmlResponse, isHtmxRequest, resolveWebLayoutData, } from "../core/view/index.ts";
115
- export type { ViewEngine } from "../core/view/viewEngine.ts";
116
- export type { WebLayoutAuthUser, WebLayoutData } from "../core/view/webLayoutData.ts";
@@ -1,14 +0,0 @@
1
- import type { OrganizationMemberRecord, OrganizationMemberRole } from "./memberTypes";
2
- declare class OrganizationMemberRepository {
3
- constructor();
4
- findMembership(userId: number, organizationId: number): Promise<OrganizationMemberRecord | null>;
5
- listForUser(userId: number): Promise<OrganizationMemberRecord[]>;
6
- listForOrganization(organizationId: number): Promise<OrganizationMemberRecord[]>;
7
- addMember(input: {
8
- organizationId: number;
9
- userId: number;
10
- role?: OrganizationMemberRole;
11
- }): Promise<OrganizationMemberRecord>;
12
- removeMember(organizationId: number, userId: number): Promise<boolean>;
13
- }
14
- export default OrganizationMemberRepository;
@@ -1,9 +0,0 @@
1
- type OrganizationMemberRole = "owner" | "admin" | "member";
2
- type OrganizationMemberRecord = {
3
- id: number;
4
- organization_id: number;
5
- user_id: number;
6
- role: OrganizationMemberRole;
7
- created_at: Date;
8
- };
9
- export type { OrganizationMemberRecord, OrganizationMemberRole };
@@ -1,14 +0,0 @@
1
- import { BaseRepository } from "@getstrata/core/database";
2
- import type { OrganizationRecord } from "./types";
3
- declare class OrganizationRepository extends BaseRepository<OrganizationRecord, "id"> {
4
- constructor();
5
- findBySlug(slug: string): Promise<OrganizationRecord | null>;
6
- listForTenant(options: {
7
- limit: number;
8
- offset: number;
9
- tenantId?: number;
10
- }): Promise<OrganizationRecord[]>;
11
- countForTenant(tenantId?: number): Promise<number>;
12
- findForTenantOrThrow(id: number, tenantId?: number): Promise<OrganizationRecord>;
13
- }
14
- export default OrganizationRepository;
@@ -1,3 +0,0 @@
1
- import type { OrganizationRecord } from "./types";
2
- declare const organizationTable: import("@getstrata/core/database").TableDefinition<OrganizationRecord, "id">;
3
- export { organizationTable };
@@ -1,10 +0,0 @@
1
- interface OrganizationRecord {
2
- id: number;
3
- tenant_id: number;
4
- name: string;
5
- slug: string;
6
- created_at: Date;
7
- updated_at: Date;
8
- deleted_at: Date | null;
9
- }
10
- export type { OrganizationRecord };
@@ -1,16 +0,0 @@
1
- import type { AppDependencies } from "@getstrata/core/contracts/di";
2
- import type ScimService from "./service";
3
- declare class ScimController {
4
- private readonly service;
5
- constructor(dependencies: AppDependencies, service?: ScimService);
6
- readonly serviceProviderConfig: () => Promise<Response>;
7
- readonly listUsers: (request: Request) => Promise<Response>;
8
- readonly createUser: (request: Request) => Promise<Response>;
9
- readonly showUser: (request: Request) => Promise<Response>;
10
- readonly patchUser: (request: Request) => Promise<Response>;
11
- readonly deleteUser: (request: Request) => Promise<Response>;
12
- readonly listGroups: (request: Request) => Promise<Response>;
13
- readonly showGroup: (request: Request) => Promise<Response>;
14
- readonly patchGroup: (request: Request) => Promise<Response>;
15
- }
16
- export default ScimController;
@@ -1,10 +0,0 @@
1
- import { type EtagVersioned } from "@getstrata/core";
2
- interface ScimResponseOptions {
3
- status?: number;
4
- request?: Request;
5
- etagSource?: EtagVersioned;
6
- }
7
- declare function scimResponse(data: unknown, options?: ScimResponseOptions): Response;
8
- declare function assertScimIfMatch(request: Request, etagSource: EtagVersioned): void;
9
- export type { ScimResponseOptions };
10
- export { assertScimIfMatch, scimResponse };