@getstrata/core 0.5.13 → 0.5.15

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 (46) hide show
  1. package/README.md +16 -6
  2. package/dist/bootstrap/contracts.d.ts +2 -0
  3. package/dist/bootstrap/httpKernel.d.ts +1 -2
  4. package/dist/core/admin/registry.d.ts +1 -0
  5. package/dist/core/auth/membershipService.d.ts +5 -1
  6. package/dist/core/database/baseRepository.d.ts +6 -1
  7. package/dist/core/database/connectionContext.d.ts +2 -1
  8. package/dist/core/database/defaultConnection.d.ts +6 -0
  9. package/dist/core/database/queryProxy.d.ts +3 -0
  10. package/dist/core/database/repositoryConnection.d.ts +3 -3
  11. package/dist/core/jobs/dispatchWebhookJob.d.ts +0 -1
  12. package/dist/core/security/safeFetch.d.ts +2 -0
  13. package/dist/core/security/safeUrl.d.ts +16 -1
  14. package/dist/core/storage/storage.d.ts +6 -3
  15. package/dist/core/tenant/tenantDatabaseScope.d.ts +2 -1
  16. package/dist/db/connection/index.d.ts +1 -1
  17. package/dist/entries/auth/accessControl.js +1 -113
  18. package/dist/entries/auth/authContext.js +1 -15
  19. package/dist/entries/auth/guard.js +1 -3044
  20. package/dist/entries/auth/membershipContext.js +1 -276
  21. package/dist/entries/auth/membershipScope.js +1 -390
  22. package/dist/entries/auth/membershipService.js +1 -480
  23. package/dist/entries/auth/policy.js +1 -134
  24. package/dist/entries/database.js +1 -2398
  25. package/dist/entries/http/csrfToken.js +0 -6
  26. package/dist/entries/http/middleware.js +1 -68
  27. package/dist/entries/http/requestMetaContext.js +1 -18
  28. package/dist/entries/http/webErrorResponse.js +94 -563
  29. package/dist/entries/http/webFormRequest.js +0 -131
  30. package/dist/entries/http.js +1 -4091
  31. package/dist/entries/jobs/dispatchWebhookJob.js +109 -102
  32. package/dist/entries/queue/createAppQueue.js +111 -631
  33. package/dist/entries/queue/jobRunner.js +0 -3
  34. package/dist/entries/queue/publicQueue.js +45 -546
  35. package/dist/entries/queue/queueMetrics.js +111 -631
  36. package/dist/entries/security/safeUrl.js +29 -0
  37. package/dist/entries/security/securityEvents.js +1 -41
  38. package/dist/entries/storage/storage.js +14 -4
  39. package/dist/entries/tenant/tenantContext.js +1 -30
  40. package/dist/entries/tenant/tenantMiddleware.js +1 -312
  41. package/dist/entries/tracing/traceContext.js +1 -15
  42. package/dist/entries/view.js +94 -563
  43. package/dist/framework/public-api.d.ts +36 -4
  44. package/dist/index.js +2270 -1666
  45. package/dist/modules/user/repository.d.ts +1 -0
  46. package/package.json +6 -5
@@ -8,9 +8,17 @@ export { ConfigStore, resolveService, ServiceContainer, } from "../bootstrap/con
8
8
  export type { AdminColumn, AdminColumnType, AdminResource, AdminResourceDefinition, AdminResourceHandlers, } from "../core/admin/index.ts";
9
9
  export { AdminResourceRegistry, formatAdminValue, } from "../core/admin/index.ts";
10
10
  export type { AbilityChecker } from "../core/auth/abilityChecker.ts";
11
+ export { isGlobalAdmin, resolveUserId } from "../core/auth/accessControl.ts";
11
12
  export type { AuthUser } from "../core/auth/authContext.ts";
12
- export { currentAuthUser, runWithAuthUser } from "../core/auth/authContext.ts";
13
+ export { authContext, currentAuthUser, runWithAuthUser } from "../core/auth/authContext.ts";
14
+ export type { AuthGuard } from "../core/auth/guard.ts";
15
+ export { ApiTokenGuard, AuthManager, CompositeGuard, DatabaseTokenGuard, GuestGuard, } from "../core/auth/guard.ts";
16
+ export { currentOrganizationIds, currentOrgRole, hasMinimumOrgRole, hasOrgMembership, } from "../core/auth/membershipContext.ts";
17
+ export { createMembershipMiddleware } from "../core/auth/membershipMiddleware.ts";
18
+ export { appendOrganizationScope, appendProjectScope, assertOrganizationReadable, assertResourceInCurrentTenant, emptyPaginateResult, resolveOrganizationScope, scopedOrganizationIds, } from "../core/auth/membershipScope.ts";
19
+ export { default as MembershipService, resolveMembershipService, } from "../core/auth/membershipService.ts";
13
20
  export { Policy, PolicyGate } from "../core/auth/policy.ts";
21
+ export { createScimAuthMiddleware } from "../core/auth/scimAuthMiddleware.ts";
14
22
  export { default as CacheRepository } from "../core/cache/repository.ts";
15
23
  export { CACHE_TAGS } from "../core/cache/tags.ts";
16
24
  export type { DatabaseConnection } from "../core/database/baseRepository.ts";
@@ -18,13 +26,16 @@ export { default as BaseRepository } from "../core/database/baseRepository.ts";
18
26
  export { bindDatabaseConnection } from "../core/database/bindConnection.ts";
19
27
  export { createDatabaseConnection } from "../core/database/connection.ts";
20
28
  export { getActiveDatabaseConnection, runWithDatabaseConnection, } from "../core/database/connectionContext.ts";
29
+ export { getDefaultDatabasePool, getDefaultDatabaseQuery, registerDefaultDatabasePool, } from "../core/database/defaultConnection.ts";
21
30
  export { withMigrationLock } from "../core/database/migrations/advisoryLock.ts";
22
31
  export { freshDatabase, getMigrationStatus, loadMigrationsFromDirectory, migrateDatabase, rollbackDatabase, } from "../core/database/migrations/runner.ts";
23
32
  export type { Migration, MigrationDatabase, MigrationStatus, } from "../core/database/migrations/types.ts";
24
33
  export type { CastType, GlobalScopeFn, ModelConstructor } from "../core/database/model.ts";
25
34
  export { applyCasts, dehydrateValue, filterMassAssignable, hydrateValue, Model, registerModelRepository, } from "../core/database/model.ts";
35
+ export { createDatabaseQueryProxy } from "../core/database/queryProxy.ts";
26
36
  export type { BelongsToManyRelation, BelongsToRelation, HasManyRelation, HasOneRelation, MorphManyRelation, MorphOneRelation, MorphToRelation, } from "../core/database/relationships.ts";
27
37
  export { belongsTo, belongsToMany, hasMany, hasOne, indexBelongsToManyRelation, indexBelongsToRelation, indexHasManyRelation, indexHasOneRelation, indexMorphManyRelation, indexMorphOneRelation, indexMorphToRelation, morphMany, morphOne, morphTo, } from "../core/database/relationships.ts";
38
+ export { repositoryConnection, resolveRepositoryConnection, } from "../core/database/repositoryConnection.ts";
28
39
  export { RepositoryQuery } from "../core/database/repositoryQuery.ts";
29
40
  export type { BlueprintAction, BlueprintCallback, ColumnKind, DatabaseDriver, ForeignKeyOptions, Grammar, IndexDefinition, IndexKind, ResolveDatabaseDriverOptions, SchemaBuilder, } from "../core/database/schema/index.ts";
30
41
  export { Blueprint, ColumnDefinition, compileBlueprint, createSchemaBuilder, ForeignIdColumnDefinition, grammarForDriver, inferReferencedTable, MySqlGrammar, PostgresGrammar, resolveDatabaseDriver, Schema, SqliteGrammar, UnsupportedSchemaFeatureError, } from "../core/database/schema/index.ts";
@@ -39,24 +50,34 @@ export { BadRequestError, ConflictError, ForbiddenError, NotFoundError, Precondi
39
50
  export { EventBus } from "../core/events/eventBus.ts";
40
51
  export { auth, cache, config, events, log, mail, policyGate, queue, storage, } from "../core/facades/index.ts";
41
52
  export { createBodySizeLimitMiddleware } from "../core/http/bodySizeLimitMiddleware.ts";
53
+ export { conditionalJsonResponse } from "../core/http/conditionalResponse.ts";
42
54
  export { readBunRequestCookie, readRequestCookie } from "../core/http/cookies.ts";
55
+ export { createCorsMiddleware } from "../core/http/corsMiddleware.ts";
43
56
  export { createCsrfMiddleware } from "../core/http/csrfMiddleware.ts";
44
57
  export { createCsrfProtection } from "../core/http/csrfProtection.ts";
45
58
  export { createCsrfTokenCookie, readSubmittedCsrfToken, readSubmittedCsrfTokenFromBody, resolveCsrfToken, resolveCsrfTokenForRequest, verifyCsrfToken, } from "../core/http/csrfToken.ts";
46
- export { assertIfMatch, etagFromResource, isEtagEnabled, } from "../core/http/etag.ts";
59
+ export { applyConditionalGet, assertIfMatch, type EtagVersioned, etagFromResource, isEtagEnabled, } from "../core/http/etag.ts";
60
+ export { createFlashMiddleware } from "../core/http/flashMiddleware.ts";
47
61
  export { FormRequest } from "../core/http/formRequest.ts";
48
- export { applyMiddlewareToRoutes, composeMiddleware, createAuthMiddleware, createAuthorizeMiddleware, createdResponse, createRequireAuthMiddleware, jsonResponse, noContentResponse, paginatedResponse, parsePaginationQuery, securedBindRouteModel, securedBindRouteModelByKey, withErrorHandling, withMiddleware, } from "../core/http/index.ts";
62
+ 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";
49
63
  export { createLoginThrottleMiddleware } from "../core/http/loginThrottleMiddleware.ts";
50
64
  export { createMemoryThrottleMiddleware } from "../core/http/memoryThrottleMiddleware.ts";
51
65
  export { createMetricsMiddleware, normalizeMetricPath } from "../core/http/metricsMiddleware.ts";
52
66
  export type { Middleware, RouteHandler } from "../core/http/middleware.ts";
67
+ export { type ParsedUpload, parseMultipartUpload } from "../core/http/parseMultipartUpload.ts";
68
+ export type { RequestMeta } from "../core/http/requestMetaContext.ts";
69
+ export { currentRequestMeta, runWithRequestMeta } from "../core/http/requestMetaContext.ts";
70
+ export { createRequireAbilityMiddleware } from "../core/http/requireAbilityMiddleware.ts";
71
+ export { createRequireGlobalAdminMiddleware } from "../core/http/requireGlobalAdminMiddleware.ts";
53
72
  export { createRequireWebAuthMiddleware } from "../core/http/requireWebAuthMiddleware.ts";
54
73
  export { serializeDate, toPaginatedResourceCollection, toResourceCollection, } from "../core/http/resources.ts";
55
74
  export type { RouteRequest } from "../core/http/route.ts";
75
+ export { createScimThrottleMiddleware } from "../core/http/scimThrottleMiddleware.ts";
56
76
  export { createSecurityHeadersMiddleware } from "../core/http/securityHeadersMiddleware.ts";
57
77
  export { createThrottleMiddleware } from "../core/http/throttleMiddleware.ts";
58
78
  export { WebFormRequest } from "../core/http/webFormRequest.ts";
59
79
  export { installGracefulShutdownSignals, registerShutdownHandler, runGracefulShutdown, } from "../core/lifecycle/gracefulShutdown.ts";
80
+ export { createRequestLoggingMiddleware } from "../core/logging/requestLoggingMiddleware.ts";
60
81
  export type { MailDriver, MailMessage } from "../core/mail/mailer.ts";
61
82
  export { buildSmtpPayload, LogMailDriver, Mailer, mailer, } from "../core/mail/mailer.ts";
62
83
  export type { MarkdownMailLayoutOptions, RenderedMarkdownMail } from "../core/mail/markdownMail.ts";
@@ -71,10 +92,21 @@ export type { CursorPaginatedResult, PaginatedResult, PaginationMeta, } from "..
71
92
  export type { Queue, QueuePriority } from "../core/queue/index.ts";
72
93
  export { AsyncQueue, createQueue, Job, SyncQueue } from "../core/queue/index.ts";
73
94
  export { createFailedJobService, createProductionQueue, createQueueWorker, createTrackedJob, FailedJobRepository, FailedJobService, jobRegistry, QueueWorker, RedisQueue, ResilientQueue, runQueueJob, } from "../core/queue/publicQueue.ts";
95
+ export type { QueueMetricsSnapshot } from "../core/queue/queueMetrics.ts";
96
+ export { collectQueueMetrics } from "../core/queue/queueMetrics.ts";
74
97
  export type { ScheduledTask } from "../core/scheduler/schedule.ts";
75
98
  export { appSchedule, runDueScheduledTasks, Schedule } from "../core/scheduler/schedule.ts";
99
+ export { guestCanViewResource, isPublicReadsEnabled } from "../core/security/publicReads.ts";
100
+ export type { SecurityEventDetails } from "../core/security/securityEvents.ts";
101
+ export { logSecurityEvent } from "../core/security/securityEvents.ts";
76
102
  export type { StorageDriver } from "../core/storage/storage.ts";
77
- export { LocalStorageDriver, StorageManager } from "../core/storage/storage.ts";
103
+ export { createStorageDriver, LocalStorageDriver, resetDefaultStorage, StorageManager, } from "../core/storage/storage.ts";
104
+ export { currentTenant, currentTenantId, runWithTenant } from "../core/tenant/tenantContext.ts";
105
+ export { isInsideTenantDatabaseScope, runWithTenantDatabase, } from "../core/tenant/tenantDatabaseScope.ts";
106
+ export { auditChecksum, createTenantMiddleware, DEFAULT_TENANT, resolveUserTenantId, } from "../core/tenant/tenantMiddleware.ts";
107
+ export type { TraceContext } from "../core/tracing/traceContext.ts";
108
+ export { currentTraceId, runWithTraceContext } from "../core/tracing/traceContext.ts";
109
+ export { createTracingMiddleware } from "../core/tracing/tracingMiddleware.ts";
78
110
  export type { ValidationRule, ValidationSchema } from "../core/validation/rules.ts";
79
111
  export { emailRule, maxLength, minLength, required, stringRule, validateObject, } from "../core/validation/rules.ts";
80
112
  export { DEFAULT_VIEWS_DIRECTORY, EtaViewEngine, htmlResponse, isHtmxRequest, resolveWebLayoutData, } from "../core/view/index.ts";