@marinoscar/platform-api 0.1.0-next.17 → 0.1.0-next.19

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 (196) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
  3. package/dist/ai/runtime/ai-limits.service.js +8 -1
  4. package/dist/ai/runtime/ai-limits.service.js.map +1 -1
  5. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js +4 -4
  6. package/dist/ai/testing/conformance/ai-no-sdk-leak.suite.js.map +1 -1
  7. package/dist/ai/testing/conformance/ai-secret-egress.suite.js +1 -1
  8. package/dist/ai/testing/conformance/ai-secret-egress.suite.js.map +1 -1
  9. package/dist/ai/usage/ai-usage-admin.controller.d.ts +6 -3
  10. package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -1
  11. package/dist/ai/usage/ai-usage-admin.controller.js +31 -17
  12. package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -1
  13. package/dist/ai/usage/ai-usage.controller.d.ts +5 -2
  14. package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -1
  15. package/dist/ai/usage/ai-usage.controller.js +18 -11
  16. package/dist/ai/usage/ai-usage.controller.js.map +1 -1
  17. package/dist/ai/usage/ai-usage.service.d.ts +19 -4
  18. package/dist/ai/usage/ai-usage.service.d.ts.map +1 -1
  19. package/dist/ai/usage/ai-usage.service.js +84 -43
  20. package/dist/ai/usage/ai-usage.service.js.map +1 -1
  21. package/dist/ai/usage/dto/ai-usage.dto.d.ts +8 -0
  22. package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -1
  23. package/dist/ai/usage/dto/ai-usage.dto.js +16 -5
  24. package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -1
  25. package/dist/core/index.d.ts +2 -0
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/index.js +7 -2
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/timezone/request-time-zone.d.ts +61 -0
  30. package/dist/core/timezone/request-time-zone.d.ts.map +1 -0
  31. package/dist/core/timezone/request-time-zone.js +71 -0
  32. package/dist/core/timezone/request-time-zone.js.map +1 -0
  33. package/dist/credentials/testing/with-credential-purposes.d.ts +2 -2
  34. package/dist/credentials/testing/with-credential-purposes.js +2 -2
  35. package/dist/doctor/egress/classify-host.d.ts +1 -1
  36. package/dist/doctor/egress/classify-host.js +1 -1
  37. package/dist/email/email-settings.controller.d.ts +5 -2
  38. package/dist/email/email-settings.controller.d.ts.map +1 -1
  39. package/dist/email/email-settings.controller.js +11 -5
  40. package/dist/email/email-settings.controller.js.map +1 -1
  41. package/dist/email/email-test-send.service.d.ts +11 -1
  42. package/dist/email/email-test-send.service.d.ts.map +1 -1
  43. package/dist/email/email-test-send.service.js +17 -3
  44. package/dist/email/email-test-send.service.js.map +1 -1
  45. package/dist/email/index.d.ts +2 -2
  46. package/dist/email/index.d.ts.map +1 -1
  47. package/dist/email/index.js +3 -1
  48. package/dist/email/index.js.map +1 -1
  49. package/dist/email/templates/backup-failed.email.d.ts.map +1 -1
  50. package/dist/email/templates/backup-failed.email.js +9 -5
  51. package/dist/email/templates/backup-failed.email.js.map +1 -1
  52. package/dist/email/templates/format-date.d.ts +39 -0
  53. package/dist/email/templates/format-date.d.ts.map +1 -0
  54. package/dist/email/templates/format-date.js +103 -0
  55. package/dist/email/templates/format-date.js.map +1 -0
  56. package/dist/email/templates/index.d.ts +2 -0
  57. package/dist/email/templates/index.d.ts.map +1 -1
  58. package/dist/email/templates/index.js +4 -1
  59. package/dist/email/templates/index.js.map +1 -1
  60. package/dist/email/templates/job-failed.email.d.ts +1 -1
  61. package/dist/email/templates/job-failed.email.d.ts.map +1 -1
  62. package/dist/email/templates/job-failed.email.js +6 -6
  63. package/dist/email/templates/job-failed.email.js.map +1 -1
  64. package/dist/email/templates/layout-theme.d.ts +1 -1
  65. package/dist/email/templates/node-offline.email.d.ts.map +1 -1
  66. package/dist/email/templates/node-offline.email.js +11 -7
  67. package/dist/email/templates/node-offline.email.js.map +1 -1
  68. package/dist/email/templates/render-context.d.ts +5 -0
  69. package/dist/email/templates/render-context.d.ts.map +1 -1
  70. package/dist/email/templates/render-context.js.map +1 -1
  71. package/dist/email/templates/restore-completed.email.d.ts.map +1 -1
  72. package/dist/email/templates/restore-completed.email.js +9 -5
  73. package/dist/email/templates/restore-completed.email.js.map +1 -1
  74. package/dist/email/templates/role-changed.email.d.ts +1 -1
  75. package/dist/email/templates/role-changed.email.d.ts.map +1 -1
  76. package/dist/email/templates/role-changed.email.js +6 -7
  77. package/dist/email/templates/role-changed.email.js.map +1 -1
  78. package/dist/email/templates/test-email.email.d.ts +1 -1
  79. package/dist/email/templates/test-email.email.d.ts.map +1 -1
  80. package/dist/email/templates/test-email.email.js +6 -11
  81. package/dist/email/templates/test-email.email.js.map +1 -1
  82. package/dist/exports/export-job.d.ts +1 -0
  83. package/dist/exports/export-job.d.ts.map +1 -1
  84. package/dist/exports/export-job.js +2 -0
  85. package/dist/exports/export-job.js.map +1 -1
  86. package/dist/exports/export.types.d.ts +8 -0
  87. package/dist/exports/export.types.d.ts.map +1 -1
  88. package/dist/exports/exports.controller.d.ts +4 -2
  89. package/dist/exports/exports.controller.d.ts.map +1 -1
  90. package/dist/exports/exports.controller.js +15 -6
  91. package/dist/exports/exports.controller.js.map +1 -1
  92. package/dist/exports/exports.service.d.ts +5 -0
  93. package/dist/exports/exports.service.d.ts.map +1 -1
  94. package/dist/exports/exports.service.js +3 -0
  95. package/dist/exports/exports.service.js.map +1 -1
  96. package/dist/exports/handlers/export-run.handler.d.ts.map +1 -1
  97. package/dist/exports/handlers/export-run.handler.js +4 -1
  98. package/dist/exports/handlers/export-run.handler.js.map +1 -1
  99. package/dist/exports/index.d.ts +1 -0
  100. package/dist/exports/index.d.ts.map +1 -1
  101. package/dist/exports/index.js +7 -2
  102. package/dist/exports/index.js.map +1 -1
  103. package/dist/exports/testing/conformance.d.ts.map +1 -1
  104. package/dist/exports/testing/conformance.js +1 -0
  105. package/dist/exports/testing/conformance.js.map +1 -1
  106. package/dist/host/http/cors-options.d.ts +5 -1
  107. package/dist/host/http/cors-options.d.ts.map +1 -1
  108. package/dist/host/http/cors-options.js.map +1 -1
  109. package/dist/identity/auth/dto/auth-user.dto.js +4 -4
  110. package/dist/identity/auth/dto/auth-user.dto.js.map +1 -1
  111. package/dist/identity/auth/sign-in-policy.d.ts +1 -1
  112. package/dist/identity/pat/pat.controller.d.ts +4 -3
  113. package/dist/identity/pat/pat.controller.d.ts.map +1 -1
  114. package/dist/identity/pat/pat.controller.js +19 -5
  115. package/dist/identity/pat/pat.controller.js.map +1 -1
  116. package/dist/identity/pat/pat.service.d.ts +21 -0
  117. package/dist/identity/pat/pat.service.d.ts.map +1 -1
  118. package/dist/identity/pat/pat.service.js +27 -10
  119. package/dist/identity/pat/pat.service.js.map +1 -1
  120. package/dist/jobs/provider-throttle.service.js +2 -2
  121. package/dist/jobs/provider-throttle.service.js.map +1 -1
  122. package/dist/manifest/permission-sets.d.ts +2 -2
  123. package/dist/manifest/permission-sets.js +4 -4
  124. package/dist/manifest/permission-sets.js.map +1 -1
  125. package/dist/notifications/channels/browser-notification.channel.js +1 -1
  126. package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
  127. package/dist/notifications/channels/browser-templates.d.ts +12 -1
  128. package/dist/notifications/channels/browser-templates.d.ts.map +1 -1
  129. package/dist/notifications/channels/browser-templates.js +5 -4
  130. package/dist/notifications/channels/browser-templates.js.map +1 -1
  131. package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -1
  132. package/dist/notifications/channels/email-notification.channel.js +3 -3
  133. package/dist/notifications/channels/email-notification.channel.js.map +1 -1
  134. package/dist/notifications/channels/push-notification.channel.js +1 -1
  135. package/dist/notifications/channels/push-notification.channel.js.map +1 -1
  136. package/dist/notifications/index.d.ts +1 -1
  137. package/dist/notifications/index.d.ts.map +1 -1
  138. package/dist/notifications/notification.types.d.ts +15 -0
  139. package/dist/notifications/notification.types.d.ts.map +1 -1
  140. package/dist/notifications/notification.types.js.map +1 -1
  141. package/dist/notifications/notifications.service.d.ts.map +1 -1
  142. package/dist/notifications/notifications.service.js +8 -0
  143. package/dist/notifications/notifications.service.js.map +1 -1
  144. package/dist/notifications/push-config.controller.d.ts +5 -2
  145. package/dist/notifications/push-config.controller.d.ts.map +1 -1
  146. package/dist/notifications/push-config.controller.js +11 -5
  147. package/dist/notifications/push-config.controller.js.map +1 -1
  148. package/dist/notifications/push-test.service.d.ts +1 -1
  149. package/dist/notifications/push-test.service.d.ts.map +1 -1
  150. package/dist/notifications/push-test.service.js +6 -4
  151. package/dist/notifications/push-test.service.js.map +1 -1
  152. package/dist/settings/index.d.ts +1 -1
  153. package/dist/settings/registry/assemble.d.ts +3 -3
  154. package/dist/settings/registry/assemble.js +4 -4
  155. package/dist/settings/registry/assemble.js.map +1 -1
  156. package/dist/settings/registry/compose.d.ts +3 -1
  157. package/dist/settings/registry/compose.d.ts.map +1 -1
  158. package/dist/settings/registry/compose.js.map +1 -1
  159. package/dist/settings/registry/core-user-fields.d.ts +4 -4
  160. package/dist/settings/registry/core-user-fields.d.ts.map +1 -1
  161. package/dist/settings/registry/core-user-fields.js +5 -4
  162. package/dist/settings/registry/core-user-fields.js.map +1 -1
  163. package/dist/settings/settings-resolver.d.ts +28 -1
  164. package/dist/settings/settings-resolver.d.ts.map +1 -1
  165. package/dist/settings/settings-resolver.js +41 -0
  166. package/dist/settings/settings-resolver.js.map +1 -1
  167. package/dist/settings/settings.module.d.ts.map +1 -1
  168. package/dist/settings/settings.module.js +9 -4
  169. package/dist/settings/settings.module.js.map +1 -1
  170. package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -1
  171. package/dist/settings/user-settings/user-settings.service.js +14 -0
  172. package/dist/settings/user-settings/user-settings.service.js.map +1 -1
  173. package/dist/sharing/grants/grants.service.js +2 -2
  174. package/dist/sharing/grants/grants.service.js.map +1 -1
  175. package/dist/sharing/groups/group-invites.service.js +1 -1
  176. package/dist/sharing/groups/group-invites.service.js.map +1 -1
  177. package/dist/sharing/groups/sharing-effects.d.ts +2 -1
  178. package/dist/sharing/groups/sharing-effects.d.ts.map +1 -1
  179. package/dist/sharing/groups/sharing-effects.js +4 -4
  180. package/dist/sharing/groups/sharing-effects.js.map +1 -1
  181. package/dist/sharing/index.d.ts +1 -1
  182. package/dist/sharing/index.d.ts.map +1 -1
  183. package/dist/sharing/index.js.map +1 -1
  184. package/dist/sharing/notifications/group-invitation.templates.d.ts +23 -0
  185. package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -1
  186. package/dist/sharing/notifications/group-invitation.templates.js +17 -2
  187. package/dist/sharing/notifications/group-invitation.templates.js.map +1 -1
  188. package/dist/sharing/notifications/shared-with-you.templates.d.ts +1 -1
  189. package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -1
  190. package/dist/sharing/notifications/shared-with-you.templates.js +3 -2
  191. package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -1
  192. package/dist/sharing/ports.d.ts +15 -2
  193. package/dist/sharing/ports.d.ts.map +1 -1
  194. package/dist/sharing/ports.js.map +1 -1
  195. package/dist/telemetry/testing/stub-ports.d.ts +1 -1
  196. package/package.json +3 -3
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AiUsageReportDto = exports.aiUsageReportSchema = exports.aiUsageSeriesItemSchema = exports.aiUsageBucketSchema = exports.AiUsageAdminQueryDto = exports.AiUsageMeQueryDto = exports.AiUsageOrgQueryDto = exports.aiUsageOrgQuerySchema = exports.aiUsageAdminQuerySchema = exports.aiUsageMeQuerySchema = exports.AI_USAGE_ME_GROUP_BY = exports.AI_USAGE_ORG_GROUP_BY = exports.AI_USAGE_ADMIN_GROUP_BY = exports.DEFAULT_AI_USAGE_RANGE_DAYS = exports.MAX_AI_USAGE_RANGE_DAYS = void 0;
4
4
  const ai_1 = require("@marinoscar/platform-contract/ai");
5
+ const settings_1 = require("@marinoscar/platform-contract/settings");
5
6
  const nestjs_zod_1 = require("nestjs-zod");
6
7
  const zod_1 = require("zod");
7
8
  // =============================================================================
@@ -15,8 +16,10 @@ const zod_1 = require("zod");
15
16
  // renders either. Aggregated in SQL over `ai_usage_events` (the `created_at`
16
17
  // and `(user_id, created_at)` indexes); see `ai-usage.service.ts`.
17
18
  //
18
- // DATES ARE UTC CALENDAR DAYS, BOTH ENDS INCLUSIVE. `from=2026-09-01&to=
19
- // 2026-09-30` is thirty whole UTC days. Default: the last 30 days ending today;
19
+ // DATES ARE CALENDAR DAYS IN THE REPORT'S TIME ZONE, BOTH ENDS INCLUSIVE.
20
+ // `tz` (an IANA id) defaults to the caller's `profile.timezone`, then the
21
+ // `X-Time-Zone` header, then UTC; the report echoes the zone used as
22
+ // `timeZone`. `from=2026-09-01&to=2026-09-30` is thirty whole days there. Default: the last 30 days ending today;
20
23
  // the span is at most `MAX_AI_USAGE_RANGE_DAYS` (the job-insights bound).
21
24
  // =============================================================================
22
25
  /** Largest window a report may cover, in days (inclusive). Same bound as job insights. */
@@ -41,15 +44,19 @@ exports.AI_USAGE_ORG_GROUP_BY = ['day', 'user', 'model', 'provider', 'keySource'
41
44
  exports.AI_USAGE_ME_GROUP_BY = ['day', 'model'];
42
45
  const isoDay = zod_1.z.iso.date();
43
46
  exports.aiUsageMeQuerySchema = zod_1.z.object({
44
- /** First UTC day included (`YYYY-MM-DD`). Default: 29 days before `to`. */
47
+ /** First day included (`YYYY-MM-DD`, in `tz`). Default: 29 days before `to`. */
45
48
  from: isoDay.optional(),
46
- /** Last UTC day included (`YYYY-MM-DD`). Default: today (UTC). */
49
+ /** Last day included (`YYYY-MM-DD`, in `tz`). Default: today in `tz`. */
47
50
  to: isoDay.optional(),
51
+ /** IANA time zone the days are cut in. Default: your profile zone, then `X-Time-Zone`, then UTC. */
52
+ tz: settings_1.timeZoneIdSchema.optional(),
48
53
  groupBy: zod_1.z.enum(exports.AI_USAGE_ME_GROUP_BY).default('day'),
49
54
  });
50
55
  exports.aiUsageAdminQuerySchema = zod_1.z.object({
51
56
  from: isoDay.optional(),
52
57
  to: isoDay.optional(),
58
+ /** IANA time zone the days are cut in. Default: the caller's profile zone, then `X-Time-Zone`, then UTC. */
59
+ tz: settings_1.timeZoneIdSchema.optional(),
53
60
  groupBy: zod_1.z.enum(exports.AI_USAGE_ADMIN_GROUP_BY).default('day'),
54
61
  /** Only this user's events. */
55
62
  userId: zod_1.z.uuid().optional(),
@@ -69,6 +76,8 @@ exports.aiUsageAdminQuerySchema = zod_1.z.object({
69
76
  exports.aiUsageOrgQuerySchema = zod_1.z.object({
70
77
  from: isoDay.optional(),
71
78
  to: isoDay.optional(),
79
+ /** IANA time zone the days are cut in. Default: the caller's profile zone, then `X-Time-Zone`, then UTC. */
80
+ tz: settings_1.timeZoneIdSchema.optional(),
72
81
  groupBy: zod_1.z.enum(exports.AI_USAGE_ORG_GROUP_BY).default('day'),
73
82
  userId: zod_1.z.uuid().optional(),
74
83
  provider: zod_1.z.string().min(1).max(64).optional(),
@@ -141,8 +150,10 @@ exports.aiUsageSeriesItemSchema = exports.aiUsageBucketSchema.extend({
141
150
  label: zod_1.z.string(),
142
151
  });
143
152
  exports.aiUsageReportSchema = zod_1.z.object({
144
- /** The window actually reported, UTC days, both inclusive. */
153
+ /** The window actually reported: calendar days in `timeZone`, both inclusive. */
145
154
  range: zod_1.z.object({ from: isoDay, to: isoDay }),
155
+ /** The IANA zone the days were cut in (the request's `tz`, else the caller's zone, else `UTC`). */
156
+ timeZone: settings_1.timeZoneIdSchema,
146
157
  groupBy: zod_1.z.enum(exports.AI_USAGE_ADMIN_GROUP_BY),
147
158
  /** Whether a pricing port is bound, so buckets carry a `cost` (PP-14.17). */
148
159
  priced: zod_1.z.boolean().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"ai-usage.dto.js","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-usage.dto.js","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export * from './registry/index';
2
2
  export { RegistryFreezeService } from './registry/registry-freeze.service';
3
3
  export * from './pluggable/index';
4
4
  export * from './host/index';
5
+ export { REQUEST_TIME_ZONE_RESOLVER, chooseTimeZone, readRequestTimeZoneHeader, resolveRequestTimeZoneWith, } from './timezone/request-time-zone';
6
+ export type { RequestTimeZoneResolver, RequestWithHeaders } from './timezone/request-time-zone';
5
7
  export { buildPermissionCatalog, catalogGrants, composePermissionCatalog, grantPermissions, permissionIds, permissionRegistry, registerPermissions, registerRoles, roleGrantRegistry, roleIds, roleRegistry, } from './permissions/index';
6
8
  export type { CatalogGrant, DeclarationList, Declarations, IdentifiedDeclaration, PermissionCatalog, PermissionCatalogDeclarations, PermissionCatalogEntry, PermissionCatalogSource, PermissionDeclaration, PermissionDeclarationMap, PermissionScope, RoleDeclaration, RoleDeclarationMap, RoleGrantDeclaration, RoleGrantEntry, } from './permissions/index';
7
9
  export type { BuiltinCredentialKind, BuiltinPrincipalKind, CredentialKindDef, GroupMembership, NodePrincipal, OrgMembership, Principal, PrincipalKindDef, Scope, SystemActor, TenancyMode, UserPrincipal, } from './principal/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
22
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.ownerFieldOf = exports.forUser = exports.asSystem = exports.ScopedAccessError = exports.openApiTags = exports.openApiTagGroups = exports.OPENAPI_TAG_NAME_PATTERN = exports.verifyEncryptionKeyAtStartup = exports.userCredentialPurpose = exports.orgCredentialPurpose = exports.isCanonicalUuid = exports.encryptSecret = exports.deriveSigningKey = exports.decryptSecret = exports.assertEncryptionKeyConfigured = exports.USER_CREDENTIAL_DOMAIN_PREFIX = exports.ORG_CREDENTIAL_DOMAIN_PREFIX = exports.ErrorDto = exports.DatabaseSeedException = exports.hasVerbatimErrorBody = exports.withVerbatimErrorBody = exports.registerErrorCode = exports.isErrorCodeForStatus = exports.errorCodeRegistry = exports.defaultErrorCodeForStatus = exports.FALLBACK_ERROR_CODE = exports.ERROR_CODE_PATTERN = exports.BUILTIN_ERROR_CODES = exports.HttpExceptionFilter = exports.HTTP_EXCEPTION_FILTER_OPTIONS = exports.requireCredentialKind = exports.registerPrincipalKind = exports.registerCredentialKind = exports.principalKindRegistry = exports.isCredentialKind = exports.credentialKindRegistry = exports.UnknownCredentialKindError = exports.KIND_ID_PATTERN = exports.roleRegistry = exports.roleIds = exports.roleGrantRegistry = exports.registerRoles = exports.registerPermissions = exports.permissionRegistry = exports.permissionIds = exports.grantPermissions = exports.composePermissionCatalog = exports.catalogGrants = exports.buildPermissionCatalog = exports.RegistryFreezeService = void 0;
26
- exports.buildDatabaseUrl = exports.ApiDataResponse = exports.AllowDuringMaintenance = exports.ALLOW_DURING_MAINTENANCE_KEY = exports.systemScopeExtension = exports.systemAccessReasonRegistry = exports.runInScope = exports.runInOrg = exports.runAsSystem = exports.registerSystemAccessReason = exports.registerModelOwnership = exports.orgScopeExtension = exports.orgFieldOf = exports.orgColumnOf = exports.modelsOfKind = exports.modelOwnershipRegistry = exports.isSystemAccessReason = exports.forSystem = exports.forScope = exports.forOrg = exports.SYSTEM_ACCESS_REASON_ID_PATTERN = exports.SYSTEM_ACCESS_REASONS = exports.RLS_SETTINGS = exports.BUILTIN_SYSTEM_ACCESS_REASONS = exports.userScopeExtension = exports.userOwnedModelRegistry = exports.registerUserOwnedModels = exports.ownerRelationOf = void 0;
25
+ exports.openApiTags = exports.openApiTagGroups = exports.OPENAPI_TAG_NAME_PATTERN = exports.verifyEncryptionKeyAtStartup = exports.userCredentialPurpose = exports.orgCredentialPurpose = exports.isCanonicalUuid = exports.encryptSecret = exports.deriveSigningKey = exports.decryptSecret = exports.assertEncryptionKeyConfigured = exports.USER_CREDENTIAL_DOMAIN_PREFIX = exports.ORG_CREDENTIAL_DOMAIN_PREFIX = exports.ErrorDto = exports.DatabaseSeedException = exports.hasVerbatimErrorBody = exports.withVerbatimErrorBody = exports.registerErrorCode = exports.isErrorCodeForStatus = exports.errorCodeRegistry = exports.defaultErrorCodeForStatus = exports.FALLBACK_ERROR_CODE = exports.ERROR_CODE_PATTERN = exports.BUILTIN_ERROR_CODES = exports.HttpExceptionFilter = exports.HTTP_EXCEPTION_FILTER_OPTIONS = exports.requireCredentialKind = exports.registerPrincipalKind = exports.registerCredentialKind = exports.principalKindRegistry = exports.isCredentialKind = exports.credentialKindRegistry = exports.UnknownCredentialKindError = exports.KIND_ID_PATTERN = exports.roleRegistry = exports.roleIds = exports.roleGrantRegistry = exports.registerRoles = exports.registerPermissions = exports.permissionRegistry = exports.permissionIds = exports.grantPermissions = exports.composePermissionCatalog = exports.catalogGrants = exports.buildPermissionCatalog = exports.resolveRequestTimeZoneWith = exports.readRequestTimeZoneHeader = exports.chooseTimeZone = exports.REQUEST_TIME_ZONE_RESOLVER = exports.RegistryFreezeService = void 0;
26
+ exports.buildDatabaseUrl = exports.ApiDataResponse = exports.AllowDuringMaintenance = exports.ALLOW_DURING_MAINTENANCE_KEY = exports.systemScopeExtension = exports.systemAccessReasonRegistry = exports.runInScope = exports.runInOrg = exports.runAsSystem = exports.registerSystemAccessReason = exports.registerModelOwnership = exports.orgScopeExtension = exports.orgFieldOf = exports.orgColumnOf = exports.modelsOfKind = exports.modelOwnershipRegistry = exports.isSystemAccessReason = exports.forSystem = exports.forScope = exports.forOrg = exports.SYSTEM_ACCESS_REASON_ID_PATTERN = exports.SYSTEM_ACCESS_REASONS = exports.RLS_SETTINGS = exports.BUILTIN_SYSTEM_ACCESS_REASONS = exports.userScopeExtension = exports.userOwnedModelRegistry = exports.registerUserOwnedModels = exports.ownerRelationOf = exports.ownerFieldOf = exports.forUser = exports.asSystem = exports.ScopedAccessError = void 0;
27
27
  __exportStar(require("./registry/index"), exports);
28
28
  var registry_freeze_service_1 = require("./registry/registry-freeze.service");
29
29
  Object.defineProperty(exports, "RegistryFreezeService", { enumerable: true, get: function () { return registry_freeze_service_1.RegistryFreezeService; } });
@@ -36,6 +36,11 @@ __exportStar(require("./pluggable/index"), exports);
36
36
  // DI-time ports (`AUDIT_SINK`, `SYSTEM_SETTINGS_STORE`, `PLATFORM_PRISMA`) and
37
37
  // `PlatformHostModule`, which binds them. Every packaged slice reuses them.
38
38
  __exportStar(require("./host/index"), exports);
39
+ var request_time_zone_1 = require("./timezone/request-time-zone");
40
+ Object.defineProperty(exports, "REQUEST_TIME_ZONE_RESOLVER", { enumerable: true, get: function () { return request_time_zone_1.REQUEST_TIME_ZONE_RESOLVER; } });
41
+ Object.defineProperty(exports, "chooseTimeZone", { enumerable: true, get: function () { return request_time_zone_1.chooseTimeZone; } });
42
+ Object.defineProperty(exports, "readRequestTimeZoneHeader", { enumerable: true, get: function () { return request_time_zone_1.readRequestTimeZoneHeader; } });
43
+ Object.defineProperty(exports, "resolveRequestTimeZoneWith", { enumerable: true, get: function () { return request_time_zone_1.resolveRequestTimeZoneWith; } });
39
44
  // Roles and permissions (issue #676, packaged by #866): the role and
40
45
  // permission registries every slice declares into, the declaration types, and
41
46
  // the seed catalog built from them. Framework-free, like the registry
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The minimal request shape the header reader needs (a Fastify request fits).
3
+ *
4
+ * @stability experimental
5
+ */
6
+ export interface RequestWithHeaders {
7
+ /** The request headers, lower-cased names as Node and Fastify deliver them. */
8
+ readonly headers: Readonly<Record<string, string | string[] | undefined>>;
9
+ }
10
+ /**
11
+ * Injection token of the request time zone resolver. Provided globally by
12
+ * `SettingsModule`; inject it `@Optional()` from a slice that cannot import settings.
13
+ *
14
+ * @stability experimental
15
+ */
16
+ export declare const REQUEST_TIME_ZONE_RESOLVER: unique symbol;
17
+ /**
18
+ * Resolves the zone for a request: profile, then header, then UTC.
19
+ *
20
+ * @stability experimental
21
+ */
22
+ export interface RequestTimeZoneResolver {
23
+ /**
24
+ * @param request - the incoming request (its `X-Time-Zone` header is the second choice).
25
+ * @param userId - the requester, when signed in.
26
+ * @returns a valid IANA zone id; never throws.
27
+ */
28
+ resolveRequestTimeZone(request: RequestWithHeaders | undefined, userId?: string | null): Promise<string>;
29
+ }
30
+ /**
31
+ * The valid `X-Time-Zone` header of a request, or `null` when absent or not an IANA zone.
32
+ *
33
+ * @param request - the request, or `undefined`.
34
+ * @returns the zone id, or `null`.
35
+ *
36
+ * @stability experimental
37
+ */
38
+ export declare function readRequestTimeZoneHeader(request: RequestWithHeaders | undefined): string | null;
39
+ /**
40
+ * The pure ordering: stored profile zone, then header zone, then `UTC`.
41
+ *
42
+ * @param profileZone - the stored `profile.timezone`, if any.
43
+ * @param headerZone - the validated `X-Time-Zone`, if any.
44
+ * @returns the zone to use.
45
+ *
46
+ * @stability experimental
47
+ */
48
+ export declare function chooseTimeZone(profileZone: string | null | undefined, headerZone: string | null | undefined): string;
49
+ /**
50
+ * Resolves a request's zone through an optional resolver. With no resolver
51
+ * (no settings slice mounted) the header and then `UTC` decide.
52
+ *
53
+ * @param resolver - the injected {@link RequestTimeZoneResolver}, if any.
54
+ * @param request - the incoming request.
55
+ * @param userId - the requester.
56
+ * @returns a valid IANA zone id.
57
+ *
58
+ * @stability experimental
59
+ */
60
+ export declare function resolveRequestTimeZoneWith(resolver: RequestTimeZoneResolver | undefined | null, request: RequestWithHeaders | undefined, userId?: string | null): Promise<string>;
61
+ //# sourceMappingURL=request-time-zone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-time-zone.d.ts","sourceRoot":"","sources":["../../../src/core/timezone/request-time-zone.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;CAC3E;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,eAAuC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1G;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIhG;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEpH;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI,EACpD,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The request time zone: which zone a request-scoped date operation uses
4
+ // =============================================================================
5
+ //
6
+ // Order: the user's stored `profile.timezone`, then a valid `X-Time-Zone`
7
+ // request header (the device zone a client sends for a user on "Automatic"),
8
+ // then `UTC`. Background work has no request, so it uses profile then UTC.
9
+ //
10
+ // `core` holds only the pure pieces and the port. The lookup of the stored
11
+ // zone needs the settings slice, which implements the port
12
+ // (`SettingsResolver.resolveRequestTimeZone`) and provides it globally; a slice
13
+ // below settings (identity, exports) injects it `@Optional()` and falls back to
14
+ // header-then-UTC when no settings slice is mounted.
15
+ // =============================================================================
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.REQUEST_TIME_ZONE_RESOLVER = void 0;
18
+ exports.readRequestTimeZoneHeader = readRequestTimeZoneHeader;
19
+ exports.chooseTimeZone = chooseTimeZone;
20
+ exports.resolveRequestTimeZoneWith = resolveRequestTimeZoneWith;
21
+ const settings_1 = require("@marinoscar/platform-contract/settings");
22
+ const timezone_1 = require("@marinoscar/platform-contract/timezone");
23
+ /**
24
+ * Injection token of the request time zone resolver. Provided globally by
25
+ * `SettingsModule`; inject it `@Optional()` from a slice that cannot import settings.
26
+ *
27
+ * @stability experimental
28
+ */
29
+ exports.REQUEST_TIME_ZONE_RESOLVER = Symbol('REQUEST_TIME_ZONE_RESOLVER');
30
+ /**
31
+ * The valid `X-Time-Zone` header of a request, or `null` when absent or not an IANA zone.
32
+ *
33
+ * @param request - the request, or `undefined`.
34
+ * @returns the zone id, or `null`.
35
+ *
36
+ * @stability experimental
37
+ */
38
+ function readRequestTimeZoneHeader(request) {
39
+ const raw = request?.headers?.[timezone_1.TIME_ZONE_HEADER];
40
+ const value = (Array.isArray(raw) ? raw[0] : raw)?.trim();
41
+ return value && (0, settings_1.isValidTimeZone)(value) ? value : null;
42
+ }
43
+ /**
44
+ * The pure ordering: stored profile zone, then header zone, then `UTC`.
45
+ *
46
+ * @param profileZone - the stored `profile.timezone`, if any.
47
+ * @param headerZone - the validated `X-Time-Zone`, if any.
48
+ * @returns the zone to use.
49
+ *
50
+ * @stability experimental
51
+ */
52
+ function chooseTimeZone(profileZone, headerZone) {
53
+ return profileZone ?? headerZone ?? timezone_1.DEFAULT_SERVER_TIME_ZONE;
54
+ }
55
+ /**
56
+ * Resolves a request's zone through an optional resolver. With no resolver
57
+ * (no settings slice mounted) the header and then `UTC` decide.
58
+ *
59
+ * @param resolver - the injected {@link RequestTimeZoneResolver}, if any.
60
+ * @param request - the incoming request.
61
+ * @param userId - the requester.
62
+ * @returns a valid IANA zone id.
63
+ *
64
+ * @stability experimental
65
+ */
66
+ async function resolveRequestTimeZoneWith(resolver, request, userId) {
67
+ if (resolver)
68
+ return resolver.resolveRequestTimeZone(request, userId);
69
+ return chooseTimeZone(null, readRequestTimeZoneHeader(request));
70
+ }
71
+ //# sourceMappingURL=request-time-zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-time-zone.js","sourceRoot":"","sources":["../../../src/core/timezone/request-time-zone.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yEAAyE;AACzE,gFAAgF;AAChF,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,EAAE;AACF,2EAA2E;AAC3E,2DAA2D;AAC3D,gFAAgF;AAChF,gFAAgF;AAChF,qDAAqD;AACrD,gFAAgF;;;AA6ChF,8DAIC;AAWD,wCAEC;AAaD,gEAOC;AAhFD,qEAAyE;AACzE,qEAAoG;AAYpG;;;;;GAKG;AACU,QAAA,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAgB/E;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CAAC,OAAuC;IAC/E,MAAM,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,2BAAgB,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,OAAO,KAAK,IAAI,IAAA,0BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAAC,WAAsC,EAAE,UAAqC;IAC1G,OAAO,WAAW,IAAI,UAAU,IAAI,mCAAwB,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,0BAA0B,CAC9C,QAAoD,EACpD,OAAuC,EACvC,MAAsB;IAEtB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtE,OAAO,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -22,8 +22,8 @@ export interface TemporaryCredentialPurposes {
22
22
  *
23
23
  * @example
24
24
  * ```ts
25
- * await withCredentialPurposes({ purposes: [{ purpose: 'acme', owner: 'app', label: 'Acme key', tiers: ['org'] }] }, async () => {
26
- * await orgCredentials.setSecret(orgId, 'acme', 'default', 'k-123');
25
+ * await withCredentialPurposes({ purposes: [{ purpose: 'kappa', owner: 'app', label: 'Org Kappa key', tiers: ['org'] }] }, async () => {
26
+ * await orgCredentials.setSecret(orgId, 'kappa', 'default', 'k-123');
27
27
  * });
28
28
  * ```
29
29
  *
@@ -15,8 +15,8 @@ const registry_1 = require("../registry");
15
15
  *
16
16
  * @example
17
17
  * ```ts
18
- * await withCredentialPurposes({ purposes: [{ purpose: 'acme', owner: 'app', label: 'Acme key', tiers: ['org'] }] }, async () => {
19
- * await orgCredentials.setSecret(orgId, 'acme', 'default', 'k-123');
18
+ * await withCredentialPurposes({ purposes: [{ purpose: 'kappa', owner: 'app', label: 'Org Kappa key', tiers: ['org'] }] }, async () => {
19
+ * await orgCredentials.setSecret(orgId, 'kappa', 'default', 'k-123');
20
20
  * });
21
21
  * ```
22
22
  *
@@ -31,7 +31,7 @@ export declare function hostnameOf(value: string | null | undefined): string | n
31
31
  * @example
32
32
  * ```ts
33
33
  * classifyHost('minio:9000'); // 'private'
34
- * classifyHost('contoso.openai.azure.com'); // 'public'
34
+ * classifyHost('theta.openai.azure.com'); // 'public'
35
35
  * classifyHost(''); // 'unknown'
36
36
  * ```
37
37
  *
@@ -135,7 +135,7 @@ function hostnameOf(value) {
135
135
  * @example
136
136
  * ```ts
137
137
  * classifyHost('minio:9000'); // 'private'
138
- * classifyHost('contoso.openai.azure.com'); // 'public'
138
+ * classifyHost('theta.openai.azure.com'); // 'public'
139
139
  * classifyHost(''); // 'unknown'
140
140
  * ```
141
141
  *
@@ -1,4 +1,6 @@
1
+ import type { RequestWithHeaders } from '../core/index';
1
2
  import { type RequestUser } from '../identity/index';
3
+ import { SettingsResolver } from '../settings/index';
2
4
  import { EmailSettingsService } from './email-settings.service';
3
5
  import { EmailTestSendService } from './email-test-send.service';
4
6
  import { UpdateEmailSettingsDto } from './dto/update-email-settings.dto';
@@ -11,7 +13,8 @@ import { UpdateEmailSettingsDto } from './dto/update-email-settings.dto';
11
13
  export declare class EmailSettingsController {
12
14
  private readonly emailSettings;
13
15
  private readonly testSend;
14
- constructor(emailSettings: EmailSettingsService, testSend: EmailTestSendService);
16
+ private readonly settings;
17
+ constructor(emailSettings: EmailSettingsService, testSend: EmailTestSendService, settings: SettingsResolver);
15
18
  /**
16
19
  * `GET /api/email-settings`: the settings and the masked secret statuses.
17
20
  *
@@ -33,7 +36,7 @@ export declare class EmailSettingsController {
33
36
  * @param user - the caller, the only recipient.
34
37
  * @returns the attempt's outcome (HTTP 200 either way).
35
38
  */
36
- sendTestEmail(user: RequestUser): Promise<{
39
+ sendTestEmail(user: RequestUser, request: RequestWithHeaders): Promise<{
37
40
  success: boolean;
38
41
  sentTo: string;
39
42
  providerKind: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"email-settings.controller.d.ts","sourceRoot":"","sources":["../../src/email/email-settings.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAuCzE;;;;;GAKG;AACH,qBAEa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,aAAa,EAAE,oBAAoB,EACnC,QAAQ,EAAE,oBAAoB;IAGjD;;;;OAIG;IAiBG,WAAW;IAIjB;;;;;;;OAOG;IAwBG,eAAe,CACX,GAAG,EAAE,sBAAsB,EAChB,MAAM,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM;IAavC;;;;;OAKG;IAwBG,aAAa,CAAgB,IAAI,EAAE,WAAW;;;;;;;;CAKrD"}
1
+ {"version":3,"file":"email-settings.controller.d.ts","sourceRoot":"","sources":["../../src/email/email-settings.controller.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAwB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAuCzE;;;;;GAKG;AACH,qBAEa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,aAAa,EAAE,oBAAoB,EACnC,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,EAAE,gBAAgB;IAG7C;;;;OAIG;IAiBG,WAAW;IAIjB;;;;;;;OAOG;IAwBG,eAAe,CACX,GAAG,EAAE,sBAAsB,EAChB,MAAM,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM;IAavC;;;;;OAKG;IAwBG,aAAa,CAAgB,IAAI,EAAE,WAAW,EAAS,OAAO,EAAE,kBAAkB;;;;;;;;CAOzF"}
@@ -67,9 +67,11 @@ const update_email_settings_dto_1 = require("./dto/update-email-settings.dto");
67
67
  let EmailSettingsController = class EmailSettingsController {
68
68
  emailSettings;
69
69
  testSend;
70
- constructor(emailSettings, testSend) {
70
+ settings;
71
+ constructor(emailSettings, testSend, settings) {
71
72
  this.emailSettings = emailSettings;
72
73
  this.testSend = testSend;
74
+ this.settings = settings;
73
75
  }
74
76
  /**
75
77
  * `GET /api/email-settings`: the settings and the masked secret statuses.
@@ -103,10 +105,12 @@ let EmailSettingsController = class EmailSettingsController {
103
105
  * @param user - the caller, the only recipient.
104
106
  * @returns the attempt's outcome (HTTP 200 either way).
105
107
  */
106
- async sendTestEmail(user) {
108
+ async sendTestEmail(user, request) {
107
109
  // The recipient is the session's own address. Nothing from the request
108
110
  // body reaches the transport — there is no body, and no parameter for one.
109
- return this.testSend.sendTest({ id: user.id, email: user.email });
111
+ // Timestamps render in the caller's zone: profile, then X-Time-Zone, then UTC.
112
+ const timeZone = await this.settings.resolveRequestTimeZone(request, user.id);
113
+ return this.testSend.sendTest({ id: user.id, email: user.email, timeZone });
110
114
  }
111
115
  };
112
116
  exports.EmailSettingsController = EmailSettingsController;
@@ -182,14 +186,16 @@ __decorate([
182
186
  type: test_email_result_dto_1.TestEmailResultDto,
183
187
  }),
184
188
  __param(0, (0, index_1.CurrentUser)()),
189
+ __param(1, (0, common_1.Req)()),
185
190
  __metadata("design:type", Function),
186
- __metadata("design:paramtypes", [Object]),
191
+ __metadata("design:paramtypes", [Object, Object]),
187
192
  __metadata("design:returntype", Promise)
188
193
  ], EmailSettingsController.prototype, "sendTestEmail", null);
189
194
  exports.EmailSettingsController = EmailSettingsController = __decorate([
190
195
  (0, swagger_1.ApiTags)('Email Settings'),
191
196
  (0, common_1.Controller)('email-settings'),
192
197
  __metadata("design:paramtypes", [email_settings_service_1.EmailSettingsService,
193
- email_test_send_service_1.EmailTestSendService])
198
+ email_test_send_service_1.EmailTestSendService,
199
+ index_2.SettingsResolver])
194
200
  ], EmailSettingsController);
195
201
  //# sourceMappingURL=email-settings.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-settings.controller.js","sourceRoot":"","sources":["../../src/email/email-settings.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email-settings.controller.js","sourceRoot":"","sources":["../../src/email/email-settings.controller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type AuditSink } from '../core/index';
2
+ import { SettingsResolver } from '../settings/index';
2
3
  import { type ResolvedEmailModuleOptions } from './email.options';
3
4
  import { EmailSettingsService } from './email-settings.service';
4
5
  import { EmailTransportResolver } from './transports/email-transport.resolver';
@@ -42,6 +43,12 @@ export interface TestSendActor {
42
43
  id: string;
43
44
  /** The caller's own address: the only recipient a test send can have. */
44
45
  email: string;
46
+ /**
47
+ * The zone the message's timestamps render in: the controller resolves it
48
+ * for the request (profile, then `X-Time-Zone`, then UTC). Absent, the
49
+ * service reads the caller's `profile.timezone`, else UTC.
50
+ */
51
+ timeZone?: string | null;
45
52
  }
46
53
  /**
47
54
  * Sends the test message to the caller's own address and audits the attempt.
@@ -53,9 +60,10 @@ export declare class EmailTestSendService {
53
60
  private readonly auditSink;
54
61
  private readonly emailSettings;
55
62
  private readonly transports;
63
+ private readonly settings?;
56
64
  private readonly logger;
57
65
  private readonly options;
58
- constructor(auditSink: AuditSink, emailSettings: EmailSettingsService, transports: EmailTransportResolver, options?: Pick<ResolvedEmailModuleOptions, 'appUrl'>);
66
+ constructor(auditSink: AuditSink, emailSettings: EmailSettingsService, transports: EmailTransportResolver, options?: Pick<ResolvedEmailModuleOptions, 'appUrl'>, settings?: SettingsResolver | undefined);
59
67
  /**
60
68
  * Render the `test-email` template and send it to the caller's own address.
61
69
  *
@@ -75,6 +83,8 @@ export declare class EmailTestSendService {
75
83
  * trail with the same fields. A second, hand-rolled failure literal is how
76
84
  * one of them ends up without an audit row.
77
85
  */
86
+ /** The caller's stored `profile.timezone`, or `null` (UTC, labelled) when none or unreadable. */
87
+ private actorTimeZone;
78
88
  private failure;
79
89
  /**
80
90
  * Record the attempt.
@@ -1 +1 @@
1
- {"version":3,"file":"email-test-send.service.d.ts","sourceRoot":"","sources":["../../src/email/email-test-send.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAA6C,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAkEnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAavE;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBACa,oBAAoB;IAQT,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAG9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAX7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEhE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;gBAK9B,SAAS,EAAE,SAAS,EACxC,aAAa,EAAE,oBAAoB,EAGnC,UAAU,EAAE,sBAAsB,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC;IAKzF;;;;;;;;;OASG;IACG,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IA4I9D;;;;;;;OAOG;YACW,OAAO;IA0BrB;;;;;;;;;;;OAWG;YACW,KAAK;IAsBnB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;CAIpB"}
1
+ {"version":3,"file":"email-test-send.service.d.ts","sourceRoot":"","sources":["../../src/email/email-test-send.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAA6C,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7G,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAkEnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAavE;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,qBACa,oBAAoB;IAQT,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAG9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAEf,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAbxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEhE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;gBAK9B,SAAS,EAAE,SAAS,EACxC,aAAa,EAAE,oBAAoB,EAGnC,UAAU,EAAE,sBAAsB,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EAC1D,QAAQ,CAAC,EAAE,gBAAgB,YAAA;IAK1D;;;;;;;;;OASG;IACG,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IA6I9D;;;;;;;OAOG;IACH,iGAAiG;YACnF,aAAa;YAQb,OAAO;IA0BrB;;;;;;;;;;;OAWG;YACW,KAAK;IAsBnB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;CAIpB"}
@@ -17,6 +17,7 @@ exports.EmailTestSendService = void 0;
17
17
  exports.formatFromHeader = formatFromHeader;
18
18
  const common_1 = require("@nestjs/common");
19
19
  const index_1 = require("../core/index");
20
+ const index_2 = require("../settings/index");
20
21
  const email_options_1 = require("./email.options");
21
22
  const email_settings_service_1 = require("./email-settings.service");
22
23
  const email_transport_resolver_1 = require("./transports/email-transport.resolver");
@@ -128,15 +129,17 @@ let EmailTestSendService = EmailTestSendService_1 = class EmailTestSendService {
128
129
  auditSink;
129
130
  emailSettings;
130
131
  transports;
132
+ settings;
131
133
  logger = new common_1.Logger(EmailTestSendService_1.name);
132
134
  options;
133
135
  constructor(auditSink, emailSettings,
134
136
  // The configured transport, resolved from the registry by the settings'
135
137
  // `provider`: an app's transport is used here exactly as `ses` and `smtp` are.
136
- transports, options) {
138
+ transports, options, settings) {
137
139
  this.auditSink = auditSink;
138
140
  this.emailSettings = emailSettings;
139
141
  this.transports = transports;
142
+ this.settings = settings;
140
143
  this.options = options ?? email_options_1.UNCONFIGURED_EMAIL_OPTIONS;
141
144
  }
142
145
  /**
@@ -202,6 +205,7 @@ let EmailTestSendService = EmailTestSendService_1 = class EmailTestSendService {
202
205
  return this.failure(actor, providerKind, attemptedAt, verdict.message);
203
206
  }
204
207
  }
208
+ const timeZone = actor.timeZone !== undefined ? actor.timeZone : await this.actorTimeZone(actor.id);
205
209
  const rendered = (0, templates_1.renderEmailTemplate)('test-email', {
206
210
  recipientEmail: actor.email,
207
211
  providerKind,
@@ -210,7 +214,7 @@ let EmailTestSendService = EmailTestSendService_1 = class EmailTestSendService {
210
214
  // difference between a test and an unexplained message in an inbox.
211
215
  triggeredBy: actor.email,
212
216
  settingsUrl: this.settingsUrl(),
213
- });
217
+ }, { ...(0, templates_1.currentEmailRenderContext)(), timeZone });
214
218
  const message = {
215
219
  to: actor.email,
216
220
  from: formatFromHeader(settings.fromAddress, settings.fromName),
@@ -257,6 +261,15 @@ let EmailTestSendService = EmailTestSendService_1 = class EmailTestSendService {
257
261
  * trail with the same fields. A second, hand-rolled failure literal is how
258
262
  * one of them ends up without an audit row.
259
263
  */
264
+ /** The caller's stored `profile.timezone`, or `null` (UTC, labelled) when none or unreadable. */
265
+ async actorTimeZone(userId) {
266
+ try {
267
+ return (await this.settings?.resolveUserTimeZone(userId)) ?? null;
268
+ }
269
+ catch {
270
+ return null;
271
+ }
272
+ }
260
273
  async failure(actor, providerKind, attemptedAt, error) {
261
274
  // `warn`, not `error`: a misconfigured mail server is an operator problem
262
275
  // the operator is actively looking at, not a fault of this service. The
@@ -319,7 +332,8 @@ exports.EmailTestSendService = EmailTestSendService = EmailTestSendService_1 = _
319
332
  __param(0, (0, common_1.Inject)(index_1.AUDIT_SINK)),
320
333
  __param(3, (0, common_1.Optional)()),
321
334
  __param(3, (0, common_1.Inject)(email_options_1.EMAIL_OPTIONS)),
335
+ __param(4, (0, common_1.Optional)()),
322
336
  __metadata("design:paramtypes", [Object, email_settings_service_1.EmailSettingsService,
323
- email_transport_resolver_1.EmailTransportResolver, Object])
337
+ email_transport_resolver_1.EmailTransportResolver, Object, index_2.SettingsResolver])
324
338
  ], EmailTestSendService);
325
339
  //# sourceMappingURL=email-test-send.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-test-send.service.js","sourceRoot":"","sources":["../../src/email/email-test-send.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email-test-send.service.js","sourceRoot":"","sources":["../../src/email/email-test-send.service.ts"],"names":[],"mappings":"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"}