@getstrata/core 0.5.55 → 0.5.57

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 (118) hide show
  1. package/README.md +3 -1
  2. package/dist/{domain/abilities.d.ts → core/auth/abilityCatalog.d.ts} +9 -1
  3. package/dist/core/auth/accessControl.d.ts +1 -1
  4. package/dist/core/auth/membershipContext.d.ts +6 -4
  5. package/dist/core/auth/membershipService.d.ts +5 -6
  6. package/dist/core/contracts/authUserDirectory.d.ts +11 -0
  7. package/dist/core/contracts/membership.d.ts +20 -0
  8. package/dist/core/http/clientIp.d.ts +3 -0
  9. package/dist/core/jobs/dispatchWebhookJob.d.ts +2 -0
  10. package/dist/core/media/imageTransform.d.ts +13 -0
  11. package/dist/core/scheduler/osCron.d.ts +14 -0
  12. package/dist/core/tenant/tenancyConfig.d.ts +5 -0
  13. package/dist/core/tenant/tenantMiddleware.d.ts +1 -1
  14. package/dist/core/terminal/runShell.d.ts +6 -0
  15. package/dist/core/view/assertEtaHtmlSource.d.ts +5 -0
  16. package/dist/core/view/etaViewEngine.d.ts +4 -0
  17. package/dist/entries/audit/exportAuditLogs.js +2 -2
  18. package/dist/entries/audit/siemFormatter.js +2 -2
  19. package/dist/entries/auth/accessControl.js +4 -4
  20. package/dist/entries/auth/membershipMiddleware.js +21 -161
  21. package/dist/entries/auth/membershipScope.js +26 -166
  22. package/dist/entries/auth/membershipService.js +21 -161
  23. package/dist/entries/auth/oauth/providers.js +2 -2
  24. package/dist/entries/auth/password.js +2 -2
  25. package/dist/entries/auth/policy.js +2 -2
  26. package/dist/entries/auth/scimAuthMiddleware.js +22 -4
  27. package/dist/entries/auth/sessionCookie.js +4 -4
  28. package/dist/entries/auth/sessionGuard.js +12 -349
  29. package/dist/entries/auth/tokenHash.js +2 -2
  30. package/dist/entries/config/envSchema.js +2 -2
  31. package/dist/entries/contracts/container.js +2 -2
  32. package/dist/entries/contracts/di.js +2 -2
  33. package/dist/entries/contracts/serviceTokens.js +6 -6
  34. package/dist/entries/crypto/fieldEncryption.js +8 -8
  35. package/dist/entries/crypto/mfaSecret.js +2 -2
  36. package/dist/entries/database/errors.js +2 -2
  37. package/dist/entries/database/migrations.js +8 -8
  38. package/dist/entries/database/model.js +5 -5
  39. package/dist/entries/database/query.js +19 -19
  40. package/dist/entries/database/relationships.js +13 -13
  41. package/dist/entries/database/schema.js +13 -13
  42. package/dist/entries/database/seeders.js +2 -2
  43. package/dist/entries/facades.js +8 -8
  44. package/dist/entries/http/authMiddleware.js +2 -2
  45. package/dist/entries/http/bodySizeLimitMiddleware.js +2 -2
  46. package/dist/entries/http/clientIp.js +19 -0
  47. package/dist/entries/http/cookies.js +2 -2
  48. package/dist/entries/http/csrfMiddleware.js +2 -1
  49. package/dist/entries/http/csrfProtection.js +2 -2
  50. package/dist/entries/http/csrfToken.js +8 -7
  51. package/dist/entries/http/etag.js +8 -8
  52. package/dist/entries/http/flashSession.js +4 -4
  53. package/dist/entries/http/formRequest.js +2 -2
  54. package/dist/entries/http/loginThrottleMiddleware.js +20 -3
  55. package/dist/entries/http/memoryThrottleMiddleware.js +16 -1
  56. package/dist/entries/http/metricsMiddleware.js +2 -2
  57. package/dist/entries/http/pagination.js +4 -4
  58. package/dist/entries/http/parseFormBody.js +2 -2
  59. package/dist/entries/http/parseMultipartUpload.js +2 -2
  60. package/dist/entries/http/resources.js +2 -2
  61. package/dist/entries/http/response.js +214 -395
  62. package/dist/entries/http/scimThrottleMiddleware.js +40 -1
  63. package/dist/entries/http/securedRouteModelBinding.js +2 -2
  64. package/dist/entries/http/throttleMiddleware.js +20 -3
  65. package/dist/entries/http/validation.js +13 -13
  66. package/dist/entries/http/webErrorResponse.js +212 -393
  67. package/dist/entries/jobs/dispatchWebhookJob.js +111 -5
  68. package/dist/entries/lifecycle/gracefulShutdown.js +3 -3
  69. package/dist/entries/logging/logger.js +2 -2
  70. package/dist/entries/logging/requestLoggingMiddleware.js +16 -1
  71. package/dist/entries/mail/mailer.js +6 -6
  72. package/dist/entries/mail/markdownMail.js +3 -3
  73. package/dist/entries/mail/markdownMailable.js +2 -2
  74. package/dist/entries/media/imageTransform.js +40 -0
  75. package/dist/entries/metrics/prometheus.js +2 -2
  76. package/dist/entries/openapi/generator.js +2 -2
  77. package/dist/entries/queue/createAppQueue.js +4 -4
  78. package/dist/entries/queue/publicQueue.js +10 -10
  79. package/dist/entries/queue/queueMetrics.js +2 -2
  80. package/dist/entries/queue/redisQueue.js +7 -7
  81. package/dist/entries/queue.js +3 -3
  82. package/dist/entries/scheduler/osCron.js +27 -0
  83. package/dist/entries/scheduler/schedule.js +2 -2
  84. package/dist/entries/security/oauthState.js +3 -3
  85. package/dist/entries/security/publicReads.js +2 -2
  86. package/dist/entries/security/safeFetch.js +2 -2
  87. package/dist/entries/security/safeUrl.js +5 -5
  88. package/dist/entries/security/scimTenantTokens.js +3 -6
  89. package/dist/entries/security/totp.js +2 -2
  90. package/dist/entries/storage/storage.js +7 -7
  91. package/dist/entries/tenant/tenancyConfig.js +12 -0
  92. package/dist/entries/tenant/tenantDatabaseScope.js +13 -2
  93. package/dist/entries/terminal/runShell.js +18 -0
  94. package/dist/entries/validation/rules.js +12 -12
  95. package/dist/entries/view.js +212 -393
  96. package/dist/framework/public-api.d.ts +4 -1
  97. package/dist/index.js +2591 -2686
  98. package/package.json +27 -2
  99. package/dist/config/database.d.ts +0 -10
  100. package/dist/db/connection/createConnection.d.ts +0 -6
  101. package/dist/db/connection/index.d.ts +0 -11
  102. package/dist/domain/auth.d.ts +0 -4
  103. package/dist/domain/scim.d.ts +0 -9
  104. package/dist/modules/organization/memberRepository.d.ts +0 -14
  105. package/dist/modules/organization/memberTypes.d.ts +0 -9
  106. package/dist/modules/user/apiTokenRepository.d.ts +0 -8
  107. package/dist/modules/user/apiTokenTable.d.ts +0 -3
  108. package/dist/modules/user/authService.d.ts +0 -23
  109. package/dist/modules/user/notificationRepository.d.ts +0 -6
  110. package/dist/modules/user/notificationService.d.ts +0 -25
  111. package/dist/modules/user/notificationTable.d.ts +0 -3
  112. package/dist/modules/user/notificationTypes.d.ts +0 -12
  113. package/dist/modules/user/oauthIdentityRepository.d.ts +0 -9
  114. package/dist/modules/user/provider.d.ts +0 -11
  115. package/dist/modules/user/repository.d.ts +0 -13
  116. package/dist/modules/user/table.d.ts +0 -3
  117. package/dist/modules/user/tokenService.d.ts +0 -29
  118. package/dist/modules/user/types.d.ts +0 -46
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getstrata/core",
3
- "version": "0.5.55",
3
+ "version": "0.5.57",
4
4
  "description": "Strata — Laravel-inspired Bun framework public API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -330,6 +330,11 @@
330
330
  "import": "./dist/entries/http/bodySizeLimitMiddleware.js",
331
331
  "default": "./dist/entries/http/bodySizeLimitMiddleware.js"
332
332
  },
333
+ "./http/clientIp": {
334
+ "types": "./dist/core/http/clientIp.d.ts",
335
+ "import": "./dist/entries/http/clientIp.js",
336
+ "default": "./dist/entries/http/clientIp.js"
337
+ },
333
338
  "./http/cookies": {
334
339
  "types": "./dist/core/http/cookies.d.ts",
335
340
  "import": "./dist/entries/http/cookies.js",
@@ -545,6 +550,11 @@
545
550
  "import": "./dist/entries/mail/markdownMailable.js",
546
551
  "default": "./dist/entries/mail/markdownMailable.js"
547
552
  },
553
+ "./media/imageTransform": {
554
+ "types": "./dist/core/media/imageTransform.d.ts",
555
+ "import": "./dist/entries/media/imageTransform.js",
556
+ "default": "./dist/entries/media/imageTransform.js"
557
+ },
548
558
  "./metrics/prometheus": {
549
559
  "types": "./dist/core/metrics/prometheus.d.ts",
550
560
  "import": "./dist/entries/metrics/prometheus.js",
@@ -640,6 +650,11 @@
640
650
  "import": "./dist/entries/scheduler/schedule.js",
641
651
  "default": "./dist/entries/scheduler/schedule.js"
642
652
  },
653
+ "./scheduler/osCron": {
654
+ "types": "./dist/core/scheduler/osCron.d.ts",
655
+ "import": "./dist/entries/scheduler/osCron.js",
656
+ "default": "./dist/entries/scheduler/osCron.js"
657
+ },
643
658
  "./security/oauthState": {
644
659
  "types": "./dist/core/security/oauthState.d.ts",
645
660
  "import": "./dist/entries/security/oauthState.js",
@@ -695,6 +710,11 @@
695
710
  "import": "./dist/entries/storage/storage.js",
696
711
  "default": "./dist/entries/storage/storage.js"
697
712
  },
713
+ "./tenant/tenancyConfig": {
714
+ "types": "./dist/core/tenant/tenancyConfig.d.ts",
715
+ "import": "./dist/entries/tenant/tenancyConfig.js",
716
+ "default": "./dist/entries/tenant/tenancyConfig.js"
717
+ },
698
718
  "./tenant/tenantContext": {
699
719
  "types": "./dist/core/tenant/tenantContext.d.ts",
700
720
  "import": "./dist/entries/tenant/tenantContext.js",
@@ -715,6 +735,11 @@
715
735
  "import": "./dist/entries/tenant/tenantMiddleware.js",
716
736
  "default": "./dist/entries/tenant/tenantMiddleware.js"
717
737
  },
738
+ "./terminal/runShell": {
739
+ "types": "./dist/core/terminal/runShell.d.ts",
740
+ "import": "./dist/entries/terminal/runShell.js",
741
+ "default": "./dist/entries/terminal/runShell.js"
742
+ },
718
743
  "./tracing/traceContext": {
719
744
  "types": "./dist/core/tracing/traceContext.d.ts",
720
745
  "import": "./dist/entries/tracing/traceContext.js",
@@ -747,7 +772,7 @@
747
772
  "build:bundle": "bun build index.ts --outdir dist --target bun --external bun --external eta",
748
773
  "build:types": "tsc -p tsconfig.types.json",
749
774
  "prepublishOnly": "bun run build && bun ../../scripts/prepare-core-package-publish.ts",
750
- "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/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/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/security/oauthState.ts entries/security/publicReads.ts entries/security/safeFetch.ts entries/security/safeUrl.ts entries/security/scimTenantTokens.ts entries/security/stripeWebhook.ts entries/security/timingSafeCompare.ts entries/security/tokenExpiry.ts entries/security/totp.ts entries/storage/storage.ts entries/tenant/tenantDatabaseScope.ts entries/tenant/databaseTenantContext.ts entries/tracing/tracingMiddleware.ts entries/validation/rules.ts entries/view.ts --outdir dist --root . --target bun --external bun --external eta --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/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/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/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/tenantContext --external @getstrata/core/tenant/tenantDatabaseScope --external @getstrata/core/tenant/databaseTenantContext --external @getstrata/core/tenant/tenantMiddleware --external @getstrata/core/tracing/traceContext --external @getstrata/core/tracing/tracingMiddleware --external @getstrata/core/validation/rules --external @getstrata/core/view",
775
+ "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",
751
776
  "build:shims": "bun ../../scripts/write-core-shared-shims.ts"
752
777
  },
753
778
  "publishConfig": {
@@ -1,10 +0,0 @@
1
- interface DatabaseConfig {
2
- url: string;
3
- poolMax: number;
4
- idleTimeoutSeconds: number;
5
- maxLifetimeSeconds: number;
6
- connectionTimeoutSeconds: number;
7
- }
8
- declare const databaseConfig: DatabaseConfig;
9
- export type { DatabaseConfig };
10
- export { databaseConfig };
@@ -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,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,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,8 +0,0 @@
1
- import { BaseRepository } from "@getstrata/core/database/baseRepository";
2
- import type { ApiTokenRecord } from "./types";
3
- declare class ApiTokenRepository extends BaseRepository<ApiTokenRecord, "id"> {
4
- constructor();
5
- findByTokenHash(tokenHash: string): Promise<ApiTokenRecord | null>;
6
- touchLastUsedAt(id: number): Promise<void>;
7
- }
8
- export default ApiTokenRepository;
@@ -1,3 +0,0 @@
1
- import type { ApiTokenRecord } from "./types";
2
- declare const apiTokenTable: import("@getstrata/core/database/table").TableDefinition<ApiTokenRecord, "id">;
3
- export { apiTokenTable };
@@ -1,23 +0,0 @@
1
- import type { OAuthProvider } from "@getstrata/core/auth/oauth/types";
2
- import type OAuthIdentityRepository from "./oauthIdentityRepository";
3
- import type UserRepository from "./repository";
4
- import type TokenService from "./tokenService";
5
- import type { CreatedApiToken } from "./types";
6
- interface LoginOptions {
7
- mfaCode?: string;
8
- }
9
- declare class AuthService {
10
- private readonly users;
11
- private readonly tokens;
12
- private readonly oauthIdentities;
13
- private readonly oauthProviders;
14
- constructor(users: UserRepository, tokens: TokenService, oauthIdentities: OAuthIdentityRepository);
15
- registerOAuthProvider(provider: OAuthProvider): void;
16
- getOAuthProvider(name: string): OAuthProvider | undefined;
17
- loginWithPassword(email: string, password: string, options?: LoginOptions): Promise<CreatedApiToken>;
18
- loginWithOAuth(providerName: string, code: string): Promise<CreatedApiToken>;
19
- buildOAuthAuthorizationUrl(providerName: string, state: string): string;
20
- private findOrCreateOAuthUser;
21
- }
22
- export default AuthService;
23
- export type { LoginOptions };
@@ -1,6 +0,0 @@
1
- import { BaseRepository } from "@getstrata/core/database/baseRepository";
2
- import type { NotificationRecord } from "./notificationTypes";
3
- declare class NotificationRepository extends BaseRepository<NotificationRecord, "id"> {
4
- constructor();
5
- }
6
- export default NotificationRepository;
@@ -1,25 +0,0 @@
1
- import type { PaginatedResult } from "@getstrata/core/pagination";
2
- import type NotificationRepository from "./notificationRepository";
3
- import type { NotificationRecord } from "./notificationTypes";
4
- interface CreateNotificationInput {
5
- userId: number;
6
- tenantId: number;
7
- type: string;
8
- title: string;
9
- body: string;
10
- data?: Record<string, unknown>;
11
- }
12
- declare class NotificationService {
13
- private readonly repository;
14
- constructor(repository: NotificationRepository);
15
- listForUser(userId: number, options: {
16
- page: number;
17
- perPage: number;
18
- unreadOnly?: boolean;
19
- }): Promise<PaginatedResult<NotificationRecord>>;
20
- markRead(userId: number, notificationId: number): Promise<NotificationRecord>;
21
- markAllRead(userId: number): Promise<number>;
22
- create(input: CreateNotificationInput): Promise<NotificationRecord>;
23
- }
24
- export default NotificationService;
25
- export type { CreateNotificationInput };
@@ -1,3 +0,0 @@
1
- import type { NotificationRecord } from "./notificationTypes";
2
- declare const notificationTable: import("@getstrata/core/database/table").TableDefinition<NotificationRecord, "id">;
3
- export { notificationTable };
@@ -1,12 +0,0 @@
1
- interface NotificationRecord {
2
- id: number;
3
- user_id: number;
4
- tenant_id: number;
5
- type: string;
6
- title: string;
7
- body: string;
8
- data: Record<string, unknown>;
9
- read_at: Date | null;
10
- created_at: Date;
11
- }
12
- export type { NotificationRecord };
@@ -1,9 +0,0 @@
1
- import { BaseRepository } from "@getstrata/core/database/baseRepository";
2
- import type { OAuthIdentityRecord } from "./types";
3
- declare const oauthIdentityTable: import("@getstrata/core/database/table").TableDefinition<OAuthIdentityRecord, "id">;
4
- declare class OAuthIdentityRepository extends BaseRepository<OAuthIdentityRecord, "id"> {
5
- constructor();
6
- findByProviderUser(provider: string, providerUserId: string): Promise<OAuthIdentityRecord | null>;
7
- }
8
- export default OAuthIdentityRepository;
9
- export { oauthIdentityTable };
@@ -1,11 +0,0 @@
1
- import type { ServiceProvider } from "@getstrata/core/contracts/di";
2
- declare const userRepositoryToken = "user.repository";
3
- declare const apiTokenRepositoryToken = "user.apiTokenRepository";
4
- declare const tokenServiceToken = "core.tokenService";
5
- declare const authServiceToken = "user.authService";
6
- declare const oauthIdentityRepositoryToken = "user.oauthIdentityRepository";
7
- declare const notificationRepositoryToken = "user.notificationRepository";
8
- declare const notificationServiceToken = "user.notificationService";
9
- declare const userProvider: ServiceProvider;
10
- export default userProvider;
11
- export { apiTokenRepositoryToken, authServiceToken, notificationRepositoryToken, notificationServiceToken, oauthIdentityRepositoryToken, tokenServiceToken, userRepositoryToken, };
@@ -1,13 +0,0 @@
1
- import { BaseRepository } from "@getstrata/core/database/baseRepository";
2
- import type { UserRecord } from "./types";
3
- declare class UserRepository extends BaseRepository<UserRecord, "id"> {
4
- constructor();
5
- private decode;
6
- findById(id: number): Promise<UserRecord | null>;
7
- findAll(options?: Parameters<BaseRepository<UserRecord, "id">["findAll"]>[0]): Promise<UserRecord[]>;
8
- create(values: Partial<UserRecord>): Promise<UserRecord>;
9
- updateByIdOrThrow(id: number, values: Partial<UserRecord>, errorFactory?: (missingId: number) => Error): Promise<UserRecord>;
10
- findByEmail(email: string): Promise<UserRecord | null>;
11
- countForTenant(tenantId?: number): Promise<number>;
12
- }
13
- export default UserRepository;
@@ -1,3 +0,0 @@
1
- import type { UserRecord } from "./types";
2
- declare const userTable: import("@getstrata/core/database/table").TableDefinition<UserRecord, "id">;
3
- export { userTable };
@@ -1,29 +0,0 @@
1
- import type { AuthUser } from "@getstrata/core/auth/authContext";
2
- import type ApiTokenRepository from "./apiTokenRepository";
3
- import type UserRepository from "./repository";
4
- import type { ApiTokenRecord, ApiTokenResource, CreatedApiToken, UserRecord } from "./types";
5
- interface CreateTokenInput {
6
- name: string;
7
- abilities?: string[];
8
- expiresAt?: Date | null;
9
- expiresInDays?: number;
10
- }
11
- declare function toApiTokenResource(record: ApiTokenRecord): ApiTokenResource;
12
- declare function generatePlainTextToken(): string;
13
- declare function resolveExpiresAt(input: CreateTokenInput): Date | null;
14
- declare function normalizeAbilities(value: unknown): string[];
15
- declare class TokenService {
16
- private readonly users;
17
- private readonly tokens;
18
- constructor(users: UserRepository, tokens: ApiTokenRepository);
19
- resolveUserFromToken(token: string): Promise<AuthUser | null>;
20
- createToken(userId: number, input: CreateTokenInput): Promise<CreatedApiToken>;
21
- listTokensForUser(userId: number): Promise<ApiTokenResource[]>;
22
- revokeToken(userId: number, tokenId: number): Promise<void>;
23
- tokenCan(user: AuthUser | null, ability: string): boolean;
24
- requireAbility(user: AuthUser | null, ability: string): void;
25
- findByIdOrThrow(id: number): Promise<UserRecord>;
26
- deleteUserAccount(userId: number): Promise<void>;
27
- }
28
- export default TokenService;
29
- export { generatePlainTextToken, normalizeAbilities, resolveExpiresAt, toApiTokenResource };
@@ -1,46 +0,0 @@
1
- import type { UserRole } from "../../domain/auth";
2
- interface UserRecord {
3
- id: number;
4
- name: string;
5
- email: string;
6
- email_lookup?: string | null;
7
- role: UserRole;
8
- tenant_id: number;
9
- password_hash?: string | null;
10
- email_verified_at?: Date | null;
11
- mfa_secret?: string | null;
12
- mfa_enabled?: boolean;
13
- created_at: Date;
14
- updated_at: Date;
15
- }
16
- interface OAuthIdentityRecord {
17
- id: number;
18
- user_id: number;
19
- provider: string;
20
- provider_user_id: string;
21
- email: string | null;
22
- created_at: Date;
23
- }
24
- interface ApiTokenRecord {
25
- id: number;
26
- user_id: number;
27
- name: string;
28
- token_hash: string;
29
- abilities: string[];
30
- last_used_at: Date | null;
31
- expires_at: Date | null;
32
- created_at: Date;
33
- }
34
- interface ApiTokenResource {
35
- id: number;
36
- name: string;
37
- abilities: string[];
38
- last_used_at: string | null;
39
- expires_at: string | null;
40
- created_at: string;
41
- }
42
- interface CreatedApiToken {
43
- token: ApiTokenResource;
44
- plainTextToken: string;
45
- }
46
- export type { ApiTokenRecord, ApiTokenResource, CreatedApiToken, OAuthIdentityRecord, UserRecord };