@marinoscar/platform-api 0.1.0-next.18 → 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.
- package/CHANGELOG.md +12 -0
- package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
- package/dist/ai/runtime/ai-limits.service.js +8 -1
- package/dist/ai/runtime/ai-limits.service.js.map +1 -1
- package/dist/ai/usage/ai-usage-admin.controller.d.ts +6 -3
- package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -1
- package/dist/ai/usage/ai-usage-admin.controller.js +31 -17
- package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -1
- package/dist/ai/usage/ai-usage.controller.d.ts +5 -2
- package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -1
- package/dist/ai/usage/ai-usage.controller.js +18 -11
- package/dist/ai/usage/ai-usage.controller.js.map +1 -1
- package/dist/ai/usage/ai-usage.service.d.ts +19 -4
- package/dist/ai/usage/ai-usage.service.d.ts.map +1 -1
- package/dist/ai/usage/ai-usage.service.js +84 -43
- package/dist/ai/usage/ai-usage.service.js.map +1 -1
- package/dist/ai/usage/dto/ai-usage.dto.d.ts +8 -0
- package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -1
- package/dist/ai/usage/dto/ai-usage.dto.js +16 -5
- package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/timezone/request-time-zone.d.ts +61 -0
- package/dist/core/timezone/request-time-zone.d.ts.map +1 -0
- package/dist/core/timezone/request-time-zone.js +71 -0
- package/dist/core/timezone/request-time-zone.js.map +1 -0
- package/dist/email/email-settings.controller.d.ts +5 -2
- package/dist/email/email-settings.controller.d.ts.map +1 -1
- package/dist/email/email-settings.controller.js +11 -5
- package/dist/email/email-settings.controller.js.map +1 -1
- package/dist/email/email-test-send.service.d.ts +11 -1
- package/dist/email/email-test-send.service.d.ts.map +1 -1
- package/dist/email/email-test-send.service.js +17 -3
- package/dist/email/email-test-send.service.js.map +1 -1
- package/dist/email/index.d.ts +2 -2
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +3 -1
- package/dist/email/index.js.map +1 -1
- package/dist/email/templates/backup-failed.email.d.ts.map +1 -1
- package/dist/email/templates/backup-failed.email.js +9 -5
- package/dist/email/templates/backup-failed.email.js.map +1 -1
- package/dist/email/templates/format-date.d.ts +39 -0
- package/dist/email/templates/format-date.d.ts.map +1 -0
- package/dist/email/templates/format-date.js +103 -0
- package/dist/email/templates/format-date.js.map +1 -0
- package/dist/email/templates/index.d.ts +2 -0
- package/dist/email/templates/index.d.ts.map +1 -1
- package/dist/email/templates/index.js +4 -1
- package/dist/email/templates/index.js.map +1 -1
- package/dist/email/templates/job-failed.email.d.ts +1 -1
- package/dist/email/templates/job-failed.email.d.ts.map +1 -1
- package/dist/email/templates/job-failed.email.js +6 -6
- package/dist/email/templates/job-failed.email.js.map +1 -1
- package/dist/email/templates/node-offline.email.d.ts.map +1 -1
- package/dist/email/templates/node-offline.email.js +11 -7
- package/dist/email/templates/node-offline.email.js.map +1 -1
- package/dist/email/templates/render-context.d.ts +5 -0
- package/dist/email/templates/render-context.d.ts.map +1 -1
- package/dist/email/templates/render-context.js.map +1 -1
- package/dist/email/templates/restore-completed.email.d.ts.map +1 -1
- package/dist/email/templates/restore-completed.email.js +9 -5
- package/dist/email/templates/restore-completed.email.js.map +1 -1
- package/dist/email/templates/role-changed.email.d.ts +1 -1
- package/dist/email/templates/role-changed.email.d.ts.map +1 -1
- package/dist/email/templates/role-changed.email.js +6 -7
- package/dist/email/templates/role-changed.email.js.map +1 -1
- package/dist/email/templates/test-email.email.d.ts +1 -1
- package/dist/email/templates/test-email.email.d.ts.map +1 -1
- package/dist/email/templates/test-email.email.js +6 -11
- package/dist/email/templates/test-email.email.js.map +1 -1
- package/dist/exports/export-job.d.ts +1 -0
- package/dist/exports/export-job.d.ts.map +1 -1
- package/dist/exports/export-job.js +2 -0
- package/dist/exports/export-job.js.map +1 -1
- package/dist/exports/export.types.d.ts +8 -0
- package/dist/exports/export.types.d.ts.map +1 -1
- package/dist/exports/exports.controller.d.ts +4 -2
- package/dist/exports/exports.controller.d.ts.map +1 -1
- package/dist/exports/exports.controller.js +15 -6
- package/dist/exports/exports.controller.js.map +1 -1
- package/dist/exports/exports.service.d.ts +5 -0
- package/dist/exports/exports.service.d.ts.map +1 -1
- package/dist/exports/exports.service.js +3 -0
- package/dist/exports/exports.service.js.map +1 -1
- package/dist/exports/handlers/export-run.handler.d.ts.map +1 -1
- package/dist/exports/handlers/export-run.handler.js +4 -1
- package/dist/exports/handlers/export-run.handler.js.map +1 -1
- package/dist/exports/index.d.ts +1 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/index.js +7 -2
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/testing/conformance.d.ts.map +1 -1
- package/dist/exports/testing/conformance.js +1 -0
- package/dist/exports/testing/conformance.js.map +1 -1
- package/dist/host/http/cors-options.d.ts +5 -1
- package/dist/host/http/cors-options.d.ts.map +1 -1
- package/dist/host/http/cors-options.js.map +1 -1
- package/dist/identity/pat/pat.controller.d.ts +4 -3
- package/dist/identity/pat/pat.controller.d.ts.map +1 -1
- package/dist/identity/pat/pat.controller.js +19 -5
- package/dist/identity/pat/pat.controller.js.map +1 -1
- package/dist/identity/pat/pat.service.d.ts +21 -0
- package/dist/identity/pat/pat.service.d.ts.map +1 -1
- package/dist/identity/pat/pat.service.js +27 -10
- package/dist/identity/pat/pat.service.js.map +1 -1
- package/dist/notifications/channels/browser-notification.channel.js +1 -1
- package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
- package/dist/notifications/channels/browser-templates.d.ts +12 -1
- package/dist/notifications/channels/browser-templates.d.ts.map +1 -1
- package/dist/notifications/channels/browser-templates.js +5 -4
- package/dist/notifications/channels/browser-templates.js.map +1 -1
- package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -1
- package/dist/notifications/channels/email-notification.channel.js +3 -3
- package/dist/notifications/channels/email-notification.channel.js.map +1 -1
- package/dist/notifications/channels/push-notification.channel.js +1 -1
- package/dist/notifications/channels/push-notification.channel.js.map +1 -1
- package/dist/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/notification.types.d.ts +15 -0
- package/dist/notifications/notification.types.d.ts.map +1 -1
- package/dist/notifications/notification.types.js.map +1 -1
- package/dist/notifications/notifications.service.d.ts.map +1 -1
- package/dist/notifications/notifications.service.js +8 -0
- package/dist/notifications/notifications.service.js.map +1 -1
- package/dist/notifications/push-config.controller.d.ts +5 -2
- package/dist/notifications/push-config.controller.d.ts.map +1 -1
- package/dist/notifications/push-config.controller.js +11 -5
- package/dist/notifications/push-config.controller.js.map +1 -1
- package/dist/notifications/push-test.service.d.ts +1 -1
- package/dist/notifications/push-test.service.d.ts.map +1 -1
- package/dist/notifications/push-test.service.js +6 -4
- package/dist/notifications/push-test.service.js.map +1 -1
- package/dist/settings/settings-resolver.d.ts +28 -1
- package/dist/settings/settings-resolver.d.ts.map +1 -1
- package/dist/settings/settings-resolver.js +41 -0
- package/dist/settings/settings-resolver.js.map +1 -1
- package/dist/settings/settings.module.d.ts.map +1 -1
- package/dist/settings/settings.module.js +9 -4
- package/dist/settings/settings.module.js.map +1 -1
- package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -1
- package/dist/settings/user-settings/user-settings.service.js +2 -4
- package/dist/settings/user-settings/user-settings.service.js.map +1 -1
- package/dist/sharing/grants/grants.service.js +2 -2
- package/dist/sharing/grants/grants.service.js.map +1 -1
- package/dist/sharing/groups/group-invites.service.js +1 -1
- package/dist/sharing/groups/group-invites.service.js.map +1 -1
- package/dist/sharing/groups/sharing-effects.d.ts +2 -1
- package/dist/sharing/groups/sharing-effects.d.ts.map +1 -1
- package/dist/sharing/groups/sharing-effects.js +4 -4
- package/dist/sharing/groups/sharing-effects.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -1
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/notifications/group-invitation.templates.d.ts +23 -0
- package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -1
- package/dist/sharing/notifications/group-invitation.templates.js +17 -2
- package/dist/sharing/notifications/group-invitation.templates.js.map +1 -1
- package/dist/sharing/notifications/shared-with-you.templates.d.ts +1 -1
- package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -1
- package/dist/sharing/notifications/shared-with-you.templates.js +3 -2
- package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -1
- package/dist/sharing/ports.d.ts +15 -2
- package/dist/sharing/ports.d.ts.map +1 -1
- package/dist/sharing/ports.js.map +1 -1
- package/package.json +3 -3
|
@@ -24,6 +24,7 @@ const operation_registry_1 = require("../core/operation-registry");
|
|
|
24
24
|
const ai_feature_registry_1 = require("../features/ai-feature.registry");
|
|
25
25
|
const provider_registry_1 = require("../core/provider-registry");
|
|
26
26
|
const ai_usage_dto_1 = require("./dto/ai-usage.dto");
|
|
27
|
+
const timezone_1 = require("@marinoscar/platform-contract/timezone");
|
|
27
28
|
// =============================================================================
|
|
28
29
|
// AiUsageService — aggregates over `ai_usage_events` (issue #443, epic #420)
|
|
29
30
|
// =============================================================================
|
|
@@ -41,10 +42,18 @@ const ai_usage_dto_1 = require("./dto/ai-usage.dto");
|
|
|
41
42
|
// admin report and the `(user_id, created_at)` index for a user's own.
|
|
42
43
|
//
|
|
43
44
|
// ⚠ THE GROUP KEY IS A FIXED SQL FRAGMENT PICKED FROM `GROUP_KEY_SQL` BY AN
|
|
44
|
-
// ENUM THE DTO VALIDATED — never text from the request.
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
// three
|
|
45
|
+
// ENUM THE DTO VALIDATED — never text from the request. The `day` key carries
|
|
46
|
+
// the report's time zone as a BOUND parameter (`AT TIME ZONE $n`), and a
|
|
47
|
+
// parameter repeated in `GROUPING(expr)` / `SELECT expr` / `GROUP BY expr`
|
|
48
|
+
// becomes three different placeholders that Postgres will not match. So the key
|
|
49
|
+
// is computed ONCE, in the derived table `src` (`gkey`), and every statement
|
|
50
|
+
// groups by the plain column.
|
|
51
|
+
//
|
|
52
|
+
// DAYS ARE CALENDAR DAYS IN THE REPORT'S TIME ZONE (the caller's `tz`, else
|
|
53
|
+
// their profile zone, else UTC), echoed back as `timeZone`. `from`/`to` are
|
|
54
|
+
// local midnights converted to instants, so a day may be 23 or 25 hours long.
|
|
55
|
+
// The AI DAILY LIMITS are not this: they reset at UTC midnight on purpose (see
|
|
56
|
+
// the limits service).
|
|
48
57
|
//
|
|
49
58
|
// Every count/sum is cast at the database (`::int`, `::float8`): `count(*)` is
|
|
50
59
|
// `bigint` and `sum(int)` is `bigint`/`numeric`, which Prisma returns as a JS
|
|
@@ -58,8 +67,8 @@ const DAY_MS = 24 * 60 * 60 * 1000;
|
|
|
58
67
|
exports.AI_USAGE_NO_USER_KEY = 'system';
|
|
59
68
|
/** Stable reason code for an unusable range (in `details.reason`). */
|
|
60
69
|
exports.AI_USAGE_RANGE_INVALID = 'AI_USAGE_RANGE_INVALID';
|
|
70
|
+
/** The group key fragments. `day` is built per report (it binds the zone), see {@link groupKeySql}. */
|
|
61
71
|
const GROUP_KEY_SQL = {
|
|
62
|
-
day: prisma_1.Prisma.raw(`to_char(created_at AT TIME ZONE 'UTC', 'YYYY-MM-DD')`),
|
|
63
72
|
user: prisma_1.Prisma.raw(`user_id::text`),
|
|
64
73
|
model: prisma_1.Prisma.raw(`provider || ':' || model_id`),
|
|
65
74
|
provider: prisma_1.Prisma.raw(`provider`),
|
|
@@ -113,10 +122,12 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
113
122
|
* every organization's through the system client.
|
|
114
123
|
*/
|
|
115
124
|
async report(query, now = new Date(), orgId) {
|
|
116
|
-
const range = resolveAiUsageRange(query.from, query.to, now);
|
|
117
|
-
const key = GROUP_KEY_SQL[query.groupBy];
|
|
118
|
-
const where = whereSql(range, query);
|
|
119
125
|
const db = orgId ? this.prisma.forOrg(orgId) : this.system.asSystem('admin-aggregate');
|
|
126
|
+
// A zone Intl accepts but Postgres does not know would make `AT TIME ZONE` fail: fall back to UTC.
|
|
127
|
+
const timeZone = await this.databaseKnowsZone(db, query.timeZone);
|
|
128
|
+
const range = resolveAiUsageRange(query.from, query.to, now, timeZone);
|
|
129
|
+
const key = prisma_1.Prisma.raw('gkey');
|
|
130
|
+
const src = sourceSql(groupKeySql(query.groupBy, range.timeZone), whereSql(range, query));
|
|
120
131
|
const [rows, unitRows] = await Promise.all([
|
|
121
132
|
db.$queryRaw(prisma_1.Prisma.sql `
|
|
122
133
|
SELECT
|
|
@@ -131,8 +142,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
131
142
|
(count(*) FILTER (WHERE key_source = 'org'))::int AS org_requests,
|
|
132
143
|
coalesce(sum(input_tokens) FILTER (WHERE key_source = 'org'), 0)::float8 AS org_input_tokens,
|
|
133
144
|
coalesce(sum(output_tokens) FILTER (WHERE key_source = 'org'), 0)::float8 AS org_output_tokens
|
|
134
|
-
FROM
|
|
135
|
-
${where}
|
|
145
|
+
FROM ${src}
|
|
136
146
|
GROUP BY GROUPING SETS ((${key}), ())
|
|
137
147
|
`),
|
|
138
148
|
// `CASE` rather than a WHERE on `jsonb_typeof`: `jsonb_each` raises on a
|
|
@@ -144,12 +154,11 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
144
154
|
${key} AS key,
|
|
145
155
|
u.unit AS unit,
|
|
146
156
|
sum((u.amount)::numeric)::float8 AS amount
|
|
147
|
-
FROM
|
|
157
|
+
FROM ${src},
|
|
148
158
|
LATERAL jsonb_each(
|
|
149
159
|
CASE WHEN jsonb_typeof(units) = 'object' THEN units ELSE '{}'::jsonb END
|
|
150
160
|
) AS u(unit, amount)
|
|
151
|
-
|
|
152
|
-
AND jsonb_typeof(u.amount) = 'number'
|
|
161
|
+
WHERE jsonb_typeof(u.amount) = 'number'
|
|
153
162
|
GROUP BY GROUPING SETS ((${key}, u.unit), (u.unit))
|
|
154
163
|
`),
|
|
155
164
|
]);
|
|
@@ -177,7 +186,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
177
186
|
}
|
|
178
187
|
const priced = query.withCost === true && this.pricing !== undefined;
|
|
179
188
|
if (priced) {
|
|
180
|
-
const costs = await this.costs(db, key,
|
|
189
|
+
const costs = await this.costs(db, key, src);
|
|
181
190
|
totals = { ...totals, cost: costs.total };
|
|
182
191
|
for (const group of groups)
|
|
183
192
|
group.bucket = { ...group.bucket, cost: costs.byKey.get(group.key) ?? null };
|
|
@@ -187,12 +196,32 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
187
196
|
: await this.labelled(query.groupBy, groups);
|
|
188
197
|
return {
|
|
189
198
|
range: { from: range.from, to: range.to },
|
|
199
|
+
timeZone: range.timeZone,
|
|
190
200
|
groupBy: query.groupBy,
|
|
191
201
|
...(query.withCost === true ? { priced } : {}),
|
|
192
202
|
totals,
|
|
193
203
|
series,
|
|
194
204
|
};
|
|
195
205
|
}
|
|
206
|
+
/** Per-zone answers of `pg_timezone_names`, kept for the life of the process. */
|
|
207
|
+
knownZones = new Map();
|
|
208
|
+
/**
|
|
209
|
+
* The zone to bucket in: `requested` when Postgres knows it (checked once per
|
|
210
|
+
* zone against `pg_timezone_names`, then cached), else UTC. UTC is never queried.
|
|
211
|
+
*/
|
|
212
|
+
async databaseKnowsZone(db, requested) {
|
|
213
|
+
if (!requested || requested === timezone_1.DEFAULT_SERVER_TIME_ZONE)
|
|
214
|
+
return timezone_1.DEFAULT_SERVER_TIME_ZONE;
|
|
215
|
+
let known = this.knownZones.get(requested);
|
|
216
|
+
if (known === undefined) {
|
|
217
|
+
const rows = await db.$queryRaw(prisma_1.Prisma.sql `SELECT 1 FROM pg_timezone_names WHERE name = ${requested} LIMIT 1`);
|
|
218
|
+
known = Array.isArray(rows) && rows.length > 0;
|
|
219
|
+
this.knownZones.set(requested, known);
|
|
220
|
+
if (!known)
|
|
221
|
+
this.logger.warn(`Postgres does not know the time zone "${requested}"; the usage report falls back to UTC`);
|
|
222
|
+
}
|
|
223
|
+
return known ? requested : timezone_1.DEFAULT_SERVER_TIME_ZONE;
|
|
224
|
+
}
|
|
196
225
|
/** Non-day groups, labelled, most requests first (ties by key, so the order is stable). */
|
|
197
226
|
async labelled(groupBy, groups) {
|
|
198
227
|
const emails = groupBy === 'user' ? await this.emailsFor(groups) : new Map();
|
|
@@ -243,7 +272,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
243
272
|
* do not here, but `day` and `user` reports are different cuts of the same
|
|
244
273
|
* slices).
|
|
245
274
|
*/
|
|
246
|
-
async costs(db, key,
|
|
275
|
+
async costs(db, key, src) {
|
|
247
276
|
const pricing = this.pricing;
|
|
248
277
|
const [rows, unitRows] = await Promise.all([
|
|
249
278
|
db.$queryRaw(prisma_1.Prisma.sql `
|
|
@@ -257,8 +286,7 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
257
286
|
coalesce(sum(output_tokens), 0)::float8 AS output_tokens,
|
|
258
287
|
coalesce(sum(reasoning_tokens), 0)::float8 AS reasoning_tokens,
|
|
259
288
|
coalesce(sum(cached_input_tokens), 0)::float8 AS cached_input_tokens
|
|
260
|
-
FROM
|
|
261
|
-
${where}
|
|
289
|
+
FROM ${src}
|
|
262
290
|
GROUP BY ${key}, provider, model_id, operation
|
|
263
291
|
`),
|
|
264
292
|
db.$queryRaw(prisma_1.Prisma.sql `
|
|
@@ -269,12 +297,11 @@ let AiUsageService = AiUsageService_1 = class AiUsageService {
|
|
|
269
297
|
operation,
|
|
270
298
|
u.unit AS unit,
|
|
271
299
|
sum((u.amount)::numeric)::float8 AS amount
|
|
272
|
-
FROM
|
|
300
|
+
FROM ${src},
|
|
273
301
|
LATERAL jsonb_each(
|
|
274
302
|
CASE WHEN jsonb_typeof(units) = 'object' THEN units ELSE '{}'::jsonb END
|
|
275
303
|
) AS u(unit, amount)
|
|
276
|
-
|
|
277
|
-
AND jsonb_typeof(u.amount) = 'number'
|
|
304
|
+
WHERE jsonb_typeof(u.amount) = 'number'
|
|
278
305
|
GROUP BY ${key}, provider, model_id, operation, u.unit
|
|
279
306
|
`),
|
|
280
307
|
]);
|
|
@@ -360,6 +387,19 @@ exports.AiUsageService = AiUsageService = AiUsageService_1 = __decorate([
|
|
|
360
387
|
__param(3, (0, common_1.Inject)(ports_1.AI_PRICING)),
|
|
361
388
|
__metadata("design:paramtypes", [Object, provider_registry_1.AiProviderRegistry, Object, Object])
|
|
362
389
|
], AiUsageService);
|
|
390
|
+
/**
|
|
391
|
+
* The group key expression. `day` is the calendar day in `timeZone`, bound as a
|
|
392
|
+
* parameter (the key is evaluated once, in {@link sourceSql}).
|
|
393
|
+
*/
|
|
394
|
+
function groupKeySql(groupBy, timeZone) {
|
|
395
|
+
return groupBy === 'day'
|
|
396
|
+
? prisma_1.Prisma.sql `to_char(created_at AT TIME ZONE ${timeZone}::text, 'YYYY-MM-DD')`
|
|
397
|
+
: GROUP_KEY_SQL[groupBy];
|
|
398
|
+
}
|
|
399
|
+
/** The filtered rows with the group key computed once as `gkey`. */
|
|
400
|
+
function sourceSql(key, where) {
|
|
401
|
+
return prisma_1.Prisma.sql `(SELECT *, ${key} AS gkey FROM ai_usage_events ${where}) AS src`;
|
|
402
|
+
}
|
|
363
403
|
function whereSql(range, query) {
|
|
364
404
|
const clauses = [
|
|
365
405
|
prisma_1.Prisma.sql `created_at >= ${range.start}::timestamptz`,
|
|
@@ -381,45 +421,46 @@ function whereSql(range, query) {
|
|
|
381
421
|
* The window a report covers. Pure, so the defaults and bounds are unit
|
|
382
422
|
* testable without a database.
|
|
383
423
|
*
|
|
384
|
-
* Defaults: `to` = today
|
|
385
|
-
* inclusive).
|
|
424
|
+
* Days are CALENDAR DAYS IN `timeZone`. Defaults: `to` = today there; `from` =
|
|
425
|
+
* `to` minus 29 days (30 days inclusive). `start` is local midnight of `from`
|
|
426
|
+
* and `end` local midnight after `to`, as instants, so a DST day is 23 or 25
|
|
427
|
+
* hours long. Refused with 400 `AI_USAGE_RANGE_INVALID` when `from` is after
|
|
386
428
|
* `to` or the span exceeds `MAX_AI_USAGE_RANGE_DAYS` — refused, not clamped:
|
|
387
429
|
* a caller who asked for a year and silently got a quarter would compare the
|
|
388
430
|
* wrong numbers (the job-insights argument).
|
|
389
431
|
*/
|
|
390
|
-
function resolveAiUsageRange(from, to, now) {
|
|
391
|
-
const toDay = to ?
|
|
392
|
-
const fromDay = from ?
|
|
393
|
-
if (fromDay
|
|
432
|
+
function resolveAiUsageRange(from, to, now, timeZone = timezone_1.DEFAULT_SERVER_TIME_ZONE) {
|
|
433
|
+
const toDay = to ? checkedDay(to) : (0, timezone_1.zonedDateKey)(now, timeZone);
|
|
434
|
+
const fromDay = from ? checkedDay(from) : (0, timezone_1.addDaysToDateKey)(toDay, -(ai_usage_dto_1.DEFAULT_AI_USAGE_RANGE_DAYS - 1));
|
|
435
|
+
if (fromDay > toDay) {
|
|
394
436
|
throw rangeError('`from` must not be after `to`.');
|
|
395
437
|
}
|
|
396
|
-
const days = Math.round((toDay
|
|
438
|
+
const days = Math.round((dayNumber(toDay) - dayNumber(fromDay))) + 1;
|
|
397
439
|
if (days > ai_usage_dto_1.MAX_AI_USAGE_RANGE_DAYS) {
|
|
398
440
|
throw rangeError(`The range covers ${days} days; at most ${ai_usage_dto_1.MAX_AI_USAGE_RANGE_DAYS} are allowed.`);
|
|
399
441
|
}
|
|
400
442
|
return {
|
|
401
|
-
from:
|
|
402
|
-
to:
|
|
403
|
-
start: fromDay,
|
|
404
|
-
end:
|
|
443
|
+
from: fromDay,
|
|
444
|
+
to: toDay,
|
|
445
|
+
start: (0, timezone_1.zonedDayStart)(fromDay, timeZone),
|
|
446
|
+
end: (0, timezone_1.zonedDayStart)((0, timezone_1.addDaysToDateKey)(toDay, 1), timeZone),
|
|
447
|
+
timeZone,
|
|
405
448
|
};
|
|
406
449
|
}
|
|
407
|
-
|
|
450
|
+
/** Whole days since the epoch of a `YYYY-MM-DD` (zone-free calendar arithmetic). */
|
|
451
|
+
function dayNumber(day) {
|
|
452
|
+
return Date.parse(`${day}T00:00:00.000Z`) / DAY_MS;
|
|
453
|
+
}
|
|
454
|
+
function checkedDay(day) {
|
|
408
455
|
const parsed = new Date(`${day}T00:00:00.000Z`);
|
|
409
|
-
if (Number.isNaN(parsed.getTime()) ||
|
|
456
|
+
if (Number.isNaN(parsed.getTime()) || parsed.toISOString().slice(0, 10) !== day) {
|
|
410
457
|
throw rangeError(`"${day}" is not a valid date (YYYY-MM-DD).`);
|
|
411
458
|
}
|
|
412
|
-
return
|
|
459
|
+
return day;
|
|
413
460
|
}
|
|
414
461
|
function rangeError(message) {
|
|
415
462
|
return new common_1.BadRequestException({ message, details: { reason: exports.AI_USAGE_RANGE_INVALID } });
|
|
416
463
|
}
|
|
417
|
-
function startOfUtcDay(date) {
|
|
418
|
-
return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
419
|
-
}
|
|
420
|
-
function isoDay(date) {
|
|
421
|
-
return date.toISOString().slice(0, 10);
|
|
422
|
-
}
|
|
423
464
|
function emptyBucket() {
|
|
424
465
|
return {
|
|
425
466
|
requests: 0,
|
|
@@ -448,12 +489,12 @@ function toBucket(row, units) {
|
|
|
448
489
|
orgKeyOutputTokens: Number(row.org_output_tokens),
|
|
449
490
|
};
|
|
450
491
|
}
|
|
451
|
-
/** Every day of the range, in order, with a zero bucket where nothing was recorded. */
|
|
492
|
+
/** Every calendar day of the range, in order, with a zero bucket where nothing was recorded. */
|
|
452
493
|
function zeroFilledDays(range, groups) {
|
|
453
494
|
const byDay = new Map(groups.map((g) => [g.key, g.bucket]));
|
|
454
495
|
const series = [];
|
|
455
|
-
|
|
456
|
-
|
|
496
|
+
// Stepped on the calendar (never by 24 hours), so a DST day cannot skip or repeat a key.
|
|
497
|
+
for (let day = range.from; day <= range.to; day = (0, timezone_1.addDaysToDateKey)(day, 1)) {
|
|
457
498
|
series.push({ key: day, label: day, ...(byDay.get(day) ?? emptyBucket()) });
|
|
458
499
|
}
|
|
459
500
|
return series;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-usage.service.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-usage.service.js","sourceRoot":"","sources":["../../../src/ai/usage/ai-usage.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export type AiUsageGroupBy = (typeof AI_USAGE_ADMIN_GROUP_BY)[number];
|
|
|
13
13
|
export declare const aiUsageMeQuerySchema: z.ZodObject<{
|
|
14
14
|
from: z.ZodOptional<z.ZodISODate>;
|
|
15
15
|
to: z.ZodOptional<z.ZodISODate>;
|
|
16
|
+
tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
|
|
16
17
|
groupBy: z.ZodDefault<z.ZodEnum<{
|
|
17
18
|
model: "model";
|
|
18
19
|
day: "day";
|
|
@@ -21,6 +22,7 @@ export declare const aiUsageMeQuerySchema: z.ZodObject<{
|
|
|
21
22
|
export declare const aiUsageAdminQuerySchema: z.ZodObject<{
|
|
22
23
|
from: z.ZodOptional<z.ZodISODate>;
|
|
23
24
|
to: z.ZodOptional<z.ZodISODate>;
|
|
25
|
+
tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
|
|
24
26
|
groupBy: z.ZodDefault<z.ZodEnum<{
|
|
25
27
|
org: "org";
|
|
26
28
|
user: "user";
|
|
@@ -44,6 +46,7 @@ export declare const aiUsageAdminQuerySchema: z.ZodObject<{
|
|
|
44
46
|
export declare const aiUsageOrgQuerySchema: z.ZodObject<{
|
|
45
47
|
from: z.ZodOptional<z.ZodISODate>;
|
|
46
48
|
to: z.ZodOptional<z.ZodISODate>;
|
|
49
|
+
tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
|
|
47
50
|
groupBy: z.ZodDefault<z.ZodEnum<{
|
|
48
51
|
user: "user";
|
|
49
52
|
model: "model";
|
|
@@ -61,6 +64,7 @@ export declare const aiUsageOrgQuerySchema: z.ZodObject<{
|
|
|
61
64
|
declare const AiUsageOrgQueryDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
62
65
|
from: z.ZodOptional<z.ZodISODate>;
|
|
63
66
|
to: z.ZodOptional<z.ZodISODate>;
|
|
67
|
+
tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
|
|
64
68
|
groupBy: z.ZodDefault<z.ZodEnum<{
|
|
65
69
|
user: "user";
|
|
66
70
|
model: "model";
|
|
@@ -81,6 +85,7 @@ export type AiUsageOrgQuery = z.output<typeof aiUsageOrgQuerySchema>;
|
|
|
81
85
|
declare const AiUsageMeQueryDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
82
86
|
from: z.ZodOptional<z.ZodISODate>;
|
|
83
87
|
to: z.ZodOptional<z.ZodISODate>;
|
|
88
|
+
tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
|
|
84
89
|
groupBy: z.ZodDefault<z.ZodEnum<{
|
|
85
90
|
model: "model";
|
|
86
91
|
day: "day";
|
|
@@ -91,6 +96,7 @@ export declare class AiUsageMeQueryDto extends AiUsageMeQueryDto_base {
|
|
|
91
96
|
declare const AiUsageAdminQueryDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
92
97
|
from: z.ZodOptional<z.ZodISODate>;
|
|
93
98
|
to: z.ZodOptional<z.ZodISODate>;
|
|
99
|
+
tz: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
|
|
94
100
|
groupBy: z.ZodDefault<z.ZodEnum<{
|
|
95
101
|
org: "org";
|
|
96
102
|
user: "user";
|
|
@@ -160,6 +166,7 @@ export declare const aiUsageReportSchema: z.ZodObject<{
|
|
|
160
166
|
from: z.ZodISODate;
|
|
161
167
|
to: z.ZodISODate;
|
|
162
168
|
}, z.core.$strip>;
|
|
169
|
+
timeZone: z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
|
|
163
170
|
groupBy: z.ZodEnum<{
|
|
164
171
|
org: "org";
|
|
165
172
|
user: "user";
|
|
@@ -211,6 +218,7 @@ declare const AiUsageReportDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
|
|
|
211
218
|
from: z.ZodISODate;
|
|
212
219
|
to: z.ZodISODate;
|
|
213
220
|
}, z.core.$strip>;
|
|
221
|
+
timeZone: z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
|
|
214
222
|
groupBy: z.ZodEnum<{
|
|
215
223
|
org: "org";
|
|
216
224
|
user: "user";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-usage.dto.d.ts","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai-usage.dto.d.ts","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,2FAU1B,CAAC;AAEX,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,oFAAqF,CAAC;AAExH,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,2BAA4B,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAItE,eAAO,MAAM,oBAAoB;;;;;;;;iBAQ/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;iBAgBlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;iBAWhC,CAAC;;;;;;;;;;;;;;;;;;;AAEH,qBAAa,kBAAmB,SAAQ,uBAAmC;CAAG;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;;;;;;;;;;AAErE,qBAAa,iBAAkB,SAAQ,sBAAkC;CAAG;;;;;;;;;;;;;;;;;;;;;AAC5E,qBAAa,oBAAqB,SAAQ,yBAAqC;CAAG;AAElF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAYzE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAqB9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAclC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qBAAa,gBAAiB,SAAQ,qBAAiC;CAAG;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -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
|
|
19
|
-
//
|
|
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
|
|
47
|
+
/** First day included (`YYYY-MM-DD`, in `tz`). Default: 29 days before `to`. */
|
|
45
48
|
from: isoDay.optional(),
|
|
46
|
-
/** Last
|
|
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
|
|
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":";;;AAAA,yDAAwF;AACxF,2CAA0C;AAC1C,6BAAwB;AAExB,gFAAgF;AAChF,wEAAwE;AACxE,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,wEAAwE;AACxE,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,mEAAmE;AACnE,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"ai-usage.dto.js","sourceRoot":"","sources":["../../../../src/ai/usage/dto/ai-usage.dto.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AASA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAM3E,cAAc,mBAAmB,CAAC;AAKlC,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -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.
|
|
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
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,uEAAuE;AACvE,iEAAiE;AACjE,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,0DAA0D;;;;;;;;;;;;;;;;;;AAE1D,mDAAiC;AACjC,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAE9B,sEAAsE;AACtE,4EAA4E;AAC5E,8EAA8E;AAC9E,0FAA0F;AAC1F,oDAAkC;AAElC,2EAA2E;AAC3E,+EAA+E;AAC/E,4EAA4E;AAC5E,+CAA6B;
|
|
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
|