@commonpub/server 2.79.0 → 2.81.0

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.
@@ -25,6 +25,12 @@ export interface JudgeScoreEntry {
25
25
  score: number;
26
26
  feedback?: string;
27
27
  criteriaScores?: CriterionScore[];
28
+ /**
29
+ * The review stage this score was given in (Phase B2.5 per-round isolation). A
30
+ * judge has one score per round; the entry's live `score` aggregates only the
31
+ * CURRENT round. Absent on pre-B2.5 scores (treated as a single bucket).
32
+ */
33
+ roundId?: string;
28
34
  }
29
35
  export interface ContestListItem {
30
36
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"contest.d.ts","sourceRoot":"","sources":["../../src/contest/contest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contest.d.ts","sourceRoot":"","sources":["../../src/contest/contest.ts"],"names":[],"mappings":"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"}
@@ -510,6 +510,11 @@ export async function judgeContestEntry(db, entryId, score, judgeId, feedback, c
510
510
  contestId: contests.id,
511
511
  entrantId: contestEntries.userId,
512
512
  stageState: contestEntries.stageState,
513
+ stages: contests.stages,
514
+ currentStageId: contests.currentStageId,
515
+ startDate: contests.startDate,
516
+ endDate: contests.endDate,
517
+ judgingEndDate: contests.judgingEndDate,
513
518
  })
514
519
  .from(contestEntries)
515
520
  .innerJoin(contests, eq(contestEntries.contestId, contests.id))
@@ -527,6 +532,19 @@ export async function judgeContestEntry(db, entryId, score, judgeId, feedback, c
527
532
  if (isEliminated({ stageState: row.stageState })) {
528
533
  return { judged: false, error: 'This entry was not advanced and can no longer be scored' };
529
534
  }
535
+ // Per-round isolation: which review round is this score for? The entry's live
536
+ // `score` will aggregate only THIS round's judge scores (a classic contest with
537
+ // no explicit stages resolves to the synthesized `core-review`, so it stays one
538
+ // bucket — unchanged single-round behaviour).
539
+ const roundStage = currentStage({
540
+ status: row.contestStatus,
541
+ startDate: row.startDate,
542
+ endDate: row.endDate,
543
+ judgingEndDate: row.judgingEndDate,
544
+ stages: row.stages,
545
+ currentStageId: row.currentStageId,
546
+ });
547
+ const roundId = roundStage && roundStage.kind === 'review' ? roundStage.id : null;
530
548
  // Conflict of interest: a judge cannot score their own entry.
531
549
  if (row.entrantId === judgeId) {
532
550
  return { judged: false, error: 'You cannot judge your own entry' };
@@ -577,12 +595,21 @@ export async function judgeContestEntry(db, entryId, score, judgeId, feedback, c
577
595
  const record = { judgeId, score: overall, feedback };
578
596
  if (criteriaScores && criteriaScores.length > 0)
579
597
  record.criteriaScores = criteriaScores;
580
- const existingIdx = scores.findIndex((s) => s.judgeId === judgeId);
598
+ if (roundId)
599
+ record.roundId = roundId;
600
+ // A judge has one score per round — match on judge AND round.
601
+ const existingIdx = scores.findIndex((s) => s.judgeId === judgeId && (s.roundId ?? null) === (roundId ?? null));
581
602
  if (existingIdx >= 0)
582
603
  scores[existingIdx] = record;
583
604
  else
584
605
  scores.push(record);
585
- const avgScore = Math.round(scores.reduce((sum, s) => sum + s.score, 0) / scores.length);
606
+ // The live aggregate reflects ONLY the current round's scores, so a later
607
+ // judging round doesn't blend with an earlier one. Earlier rounds stay in
608
+ // `judgeScores` (tagged with their roundId) as history.
609
+ const roundScores = roundId ? scores.filter((s) => (s.roundId ?? null) === roundId) : scores;
610
+ const avgScore = roundScores.length
611
+ ? Math.round(roundScores.reduce((sum, s) => sum + s.score, 0) / roundScores.length)
612
+ : 0;
586
613
  await tx
587
614
  .update(contestEntries)
588
615
  .set({ judgeScores: scores, score: avgScore })
@@ -1 +1 @@
1
- {"version":3,"file":"contest.js","sourceRoot":"","sources":["../../src/contest/contest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contest.js","sourceRoot":"","sources":["../../src/contest/contest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * CORS origin-pattern matching for the public API.
3
+ *
4
+ * The public API authenticates with `Authorization: Bearer <token>`, NOT
5
+ * cookies. There are no ambient credentials, and we never send
6
+ * `Access-Control-Allow-Credentials: true`. That makes
7
+ * `Access-Control-Allow-Origin: *` SAFE here: a cross-origin page still
8
+ * cannot obtain a key it does not already possess, so reflecting (or
9
+ * wildcarding) the origin only ENABLES legitimate browser clients. The
10
+ * Bearer token is what protects the data.
11
+ *
12
+ * Pattern grammar (the only metacharacter is `*`):
13
+ * * any origin (wildcard-all)
14
+ * localhost shorthand, expands to http(s)://localhost on any port
15
+ * https://app.example.com exact origin
16
+ * http://localhost:* any port on a host
17
+ * https://*.example.com any subdomain
18
+ * *://localhost:* any scheme + any port
19
+ */
20
+ export interface CorsDecision {
21
+ /** Whether the request's origin is permitted. */
22
+ allowed: boolean;
23
+ /** Value for `Access-Control-Allow-Origin`, or null when not allowed. */
24
+ headerValue: string | null;
25
+ /** True when `headerValue` is the literal `*` (cacheable, no `Vary` needed). */
26
+ wildcard: boolean;
27
+ }
28
+ /**
29
+ * True when `origin` is a syntactically valid, reflectable web origin. Used as
30
+ * a gate before reflecting an Origin header — both here (the actual request)
31
+ * and in the preflight echo, which is unauthenticated.
32
+ */
33
+ export declare function isWellFormedOrigin(origin: string): boolean;
34
+ /**
35
+ * Expand shorthand patterns. `localhost` (case-insensitive) becomes both http
36
+ * and https on any port; everything else passes through unchanged (including
37
+ * the bare `*`). Trims each entry and drops empties so a stray comma can't
38
+ * widen the policy.
39
+ */
40
+ export declare function expandOriginPatterns(patterns: readonly string[]): string[];
41
+ /**
42
+ * Decide CORS for an incoming `Origin` against a key's allow-list. Returns a
43
+ * literal `*` when the list permits all origins; otherwise reflects the exact
44
+ * origin (the caller then adds `Vary: Origin`). Returns a deny decision when
45
+ * the list is empty, the origin is missing or malformed, or no pattern matches.
46
+ *
47
+ * The returned shape intentionally has no "credentials" concept — the public
48
+ * API must never pair these headers with `Access-Control-Allow-Credentials`.
49
+ */
50
+ export declare function matchOrigin(patterns: readonly string[] | null | undefined, origin: string | null | undefined): CorsDecision;
51
+ //# sourceMappingURL=cors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/publicApi/cors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAqB1E;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC9C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,YAAY,CAiBd"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * CORS origin-pattern matching for the public API.
3
+ *
4
+ * The public API authenticates with `Authorization: Bearer <token>`, NOT
5
+ * cookies. There are no ambient credentials, and we never send
6
+ * `Access-Control-Allow-Credentials: true`. That makes
7
+ * `Access-Control-Allow-Origin: *` SAFE here: a cross-origin page still
8
+ * cannot obtain a key it does not already possess, so reflecting (or
9
+ * wildcarding) the origin only ENABLES legitimate browser clients. The
10
+ * Bearer token is what protects the data.
11
+ *
12
+ * Pattern grammar (the only metacharacter is `*`):
13
+ * * any origin (wildcard-all)
14
+ * localhost shorthand, expands to http(s)://localhost on any port
15
+ * https://app.example.com exact origin
16
+ * http://localhost:* any port on a host
17
+ * https://*.example.com any subdomain
18
+ * *://localhost:* any scheme + any port
19
+ */
20
+ const DENY = { allowed: false, headerValue: null, wildcard: false };
21
+ // A syntactically valid web origin: scheme://host[:port], with no path, query,
22
+ // fragment, credentials, whitespace, or control characters. The INCOMING
23
+ // Origin header is validated against this before it is ever reflected into an
24
+ // `Access-Control-Allow-Origin` response header — reflecting an unvalidated
25
+ // header value is a CRLF / response-splitting sink. We validate the value's
26
+ // domain (is this actually an origin?), not just its shape. IPv6-literal and
27
+ // `null` origins are intentionally unsupported: they can't match a pattern
28
+ // anyway, and bracketed/`null` hosts are not worth the reflection risk.
29
+ const WELL_FORMED_ORIGIN = /^[a-z][a-z0-9+.-]*:\/\/[a-z0-9.-]+(?::\d{1,5})?$/i;
30
+ // Control characters (C0 range + DEL), including CR, LF, and TAB. The control
31
+ // characters in this class are the whole point of the check (reject them).
32
+ // eslint-disable-next-line no-control-regex
33
+ const CONTROL_CHARS = /[\x00-\x1f\x7f]/;
34
+ /**
35
+ * True when `origin` is a syntactically valid, reflectable web origin. Used as
36
+ * a gate before reflecting an Origin header — both here (the actual request)
37
+ * and in the preflight echo, which is unauthenticated.
38
+ */
39
+ export function isWellFormedOrigin(origin) {
40
+ if (origin.length > 2000)
41
+ return false;
42
+ // Reject every control character explicitly: a bare `$` (no `m` flag) matches
43
+ // just before a trailing newline, so an anchored test alone would let
44
+ // `https://app.example.com\n` slip through and be reflected into a header.
45
+ if (CONTROL_CHARS.test(origin))
46
+ return false;
47
+ return WELL_FORMED_ORIGIN.test(origin);
48
+ }
49
+ /**
50
+ * Expand shorthand patterns. `localhost` (case-insensitive) becomes both http
51
+ * and https on any port; everything else passes through unchanged (including
52
+ * the bare `*`). Trims each entry and drops empties so a stray comma can't
53
+ * widen the policy.
54
+ */
55
+ export function expandOriginPatterns(patterns) {
56
+ const out = [];
57
+ for (const raw of patterns) {
58
+ const p = raw.trim();
59
+ if (p === '')
60
+ continue;
61
+ if (p.toLowerCase() === 'localhost') {
62
+ // Cover both the default-port origin (`http://localhost`, no colon) and
63
+ // any explicit port (`http://localhost:5173`), over http and https. The
64
+ // validator accepts `localhost` case-insensitively, so normalize here
65
+ // too — otherwise `LOCALHOST` would compile to a dead literal pattern.
66
+ out.push('http://localhost', 'http://localhost:*', 'https://localhost', 'https://localhost:*');
67
+ }
68
+ else {
69
+ out.push(p);
70
+ }
71
+ }
72
+ return out;
73
+ }
74
+ // Compiled-pattern cache. Pattern sets are tiny (<=50 per key) and the
75
+ // compiled regex uses only `[^/\s]*` (no nested quantifiers), so there is no
76
+ // ReDoS surface — the cache just avoids recompiling on every request.
77
+ const compiledCache = new Map();
78
+ function compilePattern(pattern) {
79
+ const cached = compiledCache.get(pattern);
80
+ if (cached)
81
+ return cached;
82
+ // Escape every regex metacharacter, THEN turn the escaped `*` back into
83
+ // `[^/\s]*`. Excluding `/` keeps a subdomain wildcard from crossing into a
84
+ // path, and excluding `\s` keeps it from matching newlines/tabs (defense in
85
+ // depth behind `isWellFormedOrigin`). Every `.` stays literal.
86
+ const escaped = pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
87
+ const withWildcard = escaped.replace(/\\\*/g, '[^/\\s]*');
88
+ const re = new RegExp(`^${withWildcard}$`, 'i');
89
+ compiledCache.set(pattern, re);
90
+ return re;
91
+ }
92
+ /**
93
+ * Decide CORS for an incoming `Origin` against a key's allow-list. Returns a
94
+ * literal `*` when the list permits all origins; otherwise reflects the exact
95
+ * origin (the caller then adds `Vary: Origin`). Returns a deny decision when
96
+ * the list is empty, the origin is missing or malformed, or no pattern matches.
97
+ *
98
+ * The returned shape intentionally has no "credentials" concept — the public
99
+ * API must never pair these headers with `Access-Control-Allow-Credentials`.
100
+ */
101
+ export function matchOrigin(patterns, origin) {
102
+ if (!patterns || patterns.length === 0)
103
+ return DENY;
104
+ const expanded = expandOriginPatterns(patterns);
105
+ if (expanded.includes('*')) {
106
+ // Wildcard-all responds with the literal `*` and never reflects the raw
107
+ // header, so a malformed origin here is harmless.
108
+ return { allowed: true, headerValue: '*', wildcard: true };
109
+ }
110
+ // Reflecting path: the origin will be echoed verbatim into a response header,
111
+ // so it MUST be a well-formed origin first (no CRLF / header injection).
112
+ if (!origin || !isWellFormedOrigin(origin))
113
+ return DENY;
114
+ for (const p of expanded) {
115
+ if (compilePattern(p).test(origin)) {
116
+ return { allowed: true, headerValue: origin, wildcard: false };
117
+ }
118
+ }
119
+ return DENY;
120
+ }
121
+ //# sourceMappingURL=cors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/publicApi/cors.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,16 @@ export type { GeneratedKey } from './keys.js';
4
4
  export type { ApiKey } from '@commonpub/schema';
5
5
  export { apiKeyRateLimit, ApiKeyRateLimit } from './rateLimit.js';
6
6
  export type { RateLimitResult } from './rateLimit.js';
7
+ export { matchOrigin, expandOriginPatterns, isWellFormedOrigin } from './cors.js';
8
+ export type { CorsDecision } from './cors.js';
7
9
  export { authenticateApiKey } from './auth.js';
8
10
  export type { AuthResult, AuthSuccess, AuthRejected, AuthFailure } from './auth.js';
9
11
  export { createApiKey, listApiKeys, revokeApiKey, getApiKeyById, logApiKeyUsage, touchLastUsed, } from './adminOps.js';
10
12
  export type { CreateApiKeyResult } from './adminOps.js';
11
13
  export { getApiKeyUsageStats } from './usage.js';
12
14
  export type { ApiKeyUsageStats } from './usage.js';
15
+ export { METRICS_MIN_BUCKET, getMetricsOverview, getTopContent, getTrendingTags, getTopContributors, getEngagementMetrics, getFederationReach, } from './metrics.js';
16
+ export type { MetricsOverview, ContentMetric, MetricsTopContributor, MetricsEngagement, MetricsFederationReach, } from './metrics.js';
13
17
  export { toPublicUser, isPublicUser, toPublicContentSummary, toPublicContentDetail, isPublicContent, toPublicHub, isPublicHub, toAdminApiKeyView, toPublicLearningPath, isPublicLearningPath, toPublicEvent, isPublicEvent, toPublicContest, isPublicContest, toPublicVideo, isPublicVideo, toPublicDocSite, isPublicDocSite, toPublicTag, } from './serializers.js';
14
18
  export type { PublicUser, PublicUserRow, PublicContentSummary, PublicContentDetail, PublicContentRow, PublicHub, PublicHubRow, PublicInstance, AdminApiKeyView, PublicLearningPath, PublicLearningPathRow, PublicEvent, PublicEventRow, PublicContest, PublicContestRow, PublicVideo, PublicVideoRow, PublicDocSite, PublicDocSiteRow, PublicTag, PublicTagRow, } from './serializers.js';
15
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publicApi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,YAAY,GACb,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publicApi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,YAAY,GACb,MAAM,kBAAkB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export { hasScope, filterKnownScopes } from './scopes.js';
2
2
  export { generateApiKey, hashApiKey, compareKeyHash, extractPrefix } from './keys.js';
3
3
  export { apiKeyRateLimit, ApiKeyRateLimit } from './rateLimit.js';
4
+ export { matchOrigin, expandOriginPatterns, isWellFormedOrigin } from './cors.js';
4
5
  export { authenticateApiKey } from './auth.js';
5
6
  export { createApiKey, listApiKeys, revokeApiKey, getApiKeyById, logApiKeyUsage, touchLastUsed, } from './adminOps.js';
6
7
  export { getApiKeyUsageStats } from './usage.js';
8
+ export { METRICS_MIN_BUCKET, getMetricsOverview, getTopContent, getTrendingTags, getTopContributors, getEngagementMetrics, getFederationReach, } from './metrics.js';
7
9
  export { toPublicUser, isPublicUser, toPublicContentSummary, toPublicContentDetail, isPublicContent, toPublicHub, isPublicHub, toAdminApiKeyView, toPublicLearningPath, isPublicLearningPath, toPublicEvent, isPublicEvent, toPublicContest, isPublicContest, toPublicVideo, isPublicVideo, toPublicDocSite, isPublicDocSite, toPublicTag, } from './serializers.js';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publicApi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGtF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publicApi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGtF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,117 @@
1
+ import type { DB } from '../types.js';
2
+ import { type PublicContentSummary, type PublicTag } from './serializers.js';
3
+ /**
4
+ * DevRel / company analytics metrics for the public API. Phase 2: instantaneous
5
+ * aggregates read straight from denormalized counters and timestamps — no
6
+ * per-event tracking, no new PII. Time-series (Phase 3) comes from daily rollups.
7
+ *
8
+ * Privacy contract (enforced here):
9
+ * - Aggregates and intentional public leaderboards only; never per-user activity.
10
+ * - Only published + public + non-deleted content and public-profile active users
11
+ * are counted, at the SQL WHERE level (so the indexes are actually used).
12
+ * - No IP / user-agent / email / referrer is read or returned.
13
+ * - k-anonymity (`METRICS_MIN_BUCKET`) guards any future user-pivotable breakdown
14
+ * (Phase 3 rollups). Phase 2 exposes only non-pivotable aggregates and the
15
+ * contributor leaderboard, which is intentional public attribution.
16
+ */
17
+ /** Suppression threshold for dimensioned breakdowns over users (Phase 3 use). */
18
+ export declare const METRICS_MIN_BUCKET = 5;
19
+ export interface MetricsOverview {
20
+ domain: string;
21
+ generatedAt: string;
22
+ totals: {
23
+ users: number;
24
+ contributors: number;
25
+ content: {
26
+ total: number;
27
+ byType: Record<string, number>;
28
+ };
29
+ hubs: number;
30
+ tags: number;
31
+ engagement: {
32
+ views: number;
33
+ likes: number;
34
+ comments: number;
35
+ };
36
+ };
37
+ recent: {
38
+ newUsers: {
39
+ last7d: number;
40
+ last30d: number;
41
+ };
42
+ newContent: {
43
+ last7d: number;
44
+ last30d: number;
45
+ };
46
+ activeContributors: {
47
+ last7d: number;
48
+ last30d: number;
49
+ };
50
+ };
51
+ notes: string[];
52
+ }
53
+ export declare function getMetricsOverview(db: DB, domain: string): Promise<MetricsOverview>;
54
+ export type ContentMetric = 'views' | 'likes' | 'comments';
55
+ export declare function getTopContent(db: DB, domain: string, opts: {
56
+ metric: ContentMetric;
57
+ type?: 'project' | 'article' | 'blog' | 'explainer';
58
+ limit: number;
59
+ }): Promise<PublicContentSummary[]>;
60
+ export declare function getTrendingTags(db: DB, domain: string, limit: number): Promise<PublicTag[]>;
61
+ export interface MetricsTopContributor {
62
+ user: {
63
+ id: string;
64
+ username: string;
65
+ displayName: string | null;
66
+ avatarUrl: string | null;
67
+ };
68
+ publishedContent: number;
69
+ totalViews: number;
70
+ totalLikes: number;
71
+ canonicalUrl: string;
72
+ }
73
+ export declare function getTopContributors(db: DB, domain: string, limit: number): Promise<MetricsTopContributor[]>;
74
+ export interface MetricsEngagement {
75
+ content: {
76
+ published: number;
77
+ views: number;
78
+ likes: number;
79
+ comments: number;
80
+ avgViewsPerItem: number;
81
+ likesPerView: number;
82
+ commentsPerView: number;
83
+ };
84
+ learning?: {
85
+ paths: number;
86
+ enrollments: number;
87
+ completions: number;
88
+ completionRate: number;
89
+ };
90
+ events?: {
91
+ events: number;
92
+ capacity: number;
93
+ attendees: number;
94
+ fillRate: number;
95
+ };
96
+ contests?: {
97
+ contests: number;
98
+ entries: number;
99
+ };
100
+ }
101
+ export declare function getEngagementMetrics(db: DB, features: {
102
+ learning?: boolean;
103
+ events?: boolean;
104
+ contests?: boolean;
105
+ }): Promise<MetricsEngagement>;
106
+ export interface MetricsFederationReach {
107
+ knownInstances: number;
108
+ activeMirrors: number;
109
+ followers: number;
110
+ inboundContent: number;
111
+ inboundByDomain: Array<{
112
+ domain: string;
113
+ count: number;
114
+ }>;
115
+ }
116
+ export declare function getFederationReach(db: DB, limit: number): Promise<MetricsFederationReach>;
117
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/publicApi/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,317 @@
1
+ import { contentItems, users, hubs, tags, learningPaths, events, contests, federatedContent, instanceMirrors, registryInstances, followRelationships, hubFollowers, } from '@commonpub/schema';
2
+ import { and, desc, eq, gt, inArray, isNull, sql } from 'drizzle-orm';
3
+ import { toPublicContentSummary, toPublicTag, } from './serializers.js';
4
+ /**
5
+ * DevRel / company analytics metrics for the public API. Phase 2: instantaneous
6
+ * aggregates read straight from denormalized counters and timestamps — no
7
+ * per-event tracking, no new PII. Time-series (Phase 3) comes from daily rollups.
8
+ *
9
+ * Privacy contract (enforced here):
10
+ * - Aggregates and intentional public leaderboards only; never per-user activity.
11
+ * - Only published + public + non-deleted content and public-profile active users
12
+ * are counted, at the SQL WHERE level (so the indexes are actually used).
13
+ * - No IP / user-agent / email / referrer is read or returned.
14
+ * - k-anonymity (`METRICS_MIN_BUCKET`) guards any future user-pivotable breakdown
15
+ * (Phase 3 rollups). Phase 2 exposes only non-pivotable aggregates and the
16
+ * contributor leaderboard, which is intentional public attribution.
17
+ */
18
+ /** Suppression threshold for dimensioned breakdowns over users (Phase 3 use). */
19
+ export const METRICS_MIN_BUCKET = 5;
20
+ const DAY_MS = 86_400_000;
21
+ // Counter SUMs cast to float8, not int4: a cumulative `sum(view_count)` can
22
+ // exceed int4's 2.1B ceiling on a busy instance, where `::int` would throw
23
+ // "integer out of range" and 500 the endpoint. float8 holds integer sums
24
+ // exactly up to 2^53 and the pg driver returns it as a JS number (no string
25
+ // coercion). count(*) / count(distinct) stay ::int — row counts won't overflow.
26
+ /** Published + public + non-deleted content — the only content any metric counts. */
27
+ function publicContentWhere() {
28
+ return and(eq(contentItems.status, 'published'), eq(contentItems.visibility, 'public'), isNull(contentItems.deletedAt));
29
+ }
30
+ // Only DB-valid, publicly-visible statuses. The events status enum is
31
+ // active|draft|published|completed|cancelled (no 'upcoming'/'past' — those are
32
+ // presentation-only labels), so the public set is published/active/completed.
33
+ const PUBLIC_EVENT_STATUSES = [
34
+ 'published',
35
+ 'active',
36
+ 'completed',
37
+ ];
38
+ const PUBLIC_CONTEST_STATUSES = [
39
+ 'upcoming',
40
+ 'active',
41
+ 'judging',
42
+ 'completed',
43
+ ];
44
+ export async function getMetricsOverview(db, domain) {
45
+ const now = Date.now();
46
+ const since7 = new Date(now - 7 * DAY_MS);
47
+ const since30 = new Date(now - 30 * DAY_MS);
48
+ const pub = publicContentWhere();
49
+ const [[contentAgg], byType, [userAgg], [hubAgg], [tagAgg]] = await Promise.all([
50
+ db
51
+ .select({
52
+ total: sql `count(*)::int`,
53
+ views: sql `coalesce(sum(${contentItems.viewCount}), 0)::float8`,
54
+ likes: sql `coalesce(sum(${contentItems.likeCount}), 0)::float8`,
55
+ comments: sql `coalesce(sum(${contentItems.commentCount}), 0)::float8`,
56
+ contributors: sql `count(distinct ${contentItems.authorId})::int`,
57
+ new7: sql `count(*) FILTER (WHERE ${contentItems.publishedAt} > ${since7})::int`,
58
+ new30: sql `count(*) FILTER (WHERE ${contentItems.publishedAt} > ${since30})::int`,
59
+ active7: sql `count(distinct ${contentItems.authorId}) FILTER (WHERE ${contentItems.publishedAt} > ${since7})::int`,
60
+ active30: sql `count(distinct ${contentItems.authorId}) FILTER (WHERE ${contentItems.publishedAt} > ${since30})::int`,
61
+ })
62
+ .from(contentItems)
63
+ .where(pub),
64
+ db
65
+ .select({ type: contentItems.type, count: sql `count(*)::int` })
66
+ .from(contentItems)
67
+ .where(pub)
68
+ .groupBy(contentItems.type),
69
+ db
70
+ .select({
71
+ total: sql `count(*)::int`,
72
+ new7: sql `count(*) FILTER (WHERE ${users.createdAt} > ${since7})::int`,
73
+ new30: sql `count(*) FILTER (WHERE ${users.createdAt} > ${since30})::int`,
74
+ })
75
+ .from(users)
76
+ .where(and(isNull(users.deletedAt), eq(users.status, 'active'))),
77
+ db.select({ total: sql `count(*)::int` }).from(hubs).where(isNull(hubs.deletedAt)),
78
+ db.select({ total: sql `count(*)::int` }).from(tags),
79
+ ]);
80
+ const byTypeRecord = {};
81
+ for (const r of byType)
82
+ byTypeRecord[r.type] = r.count;
83
+ return {
84
+ domain,
85
+ generatedAt: new Date(now).toISOString(),
86
+ totals: {
87
+ users: userAgg?.total ?? 0,
88
+ contributors: contentAgg?.contributors ?? 0,
89
+ content: { total: contentAgg?.total ?? 0, byType: byTypeRecord },
90
+ hubs: hubAgg?.total ?? 0,
91
+ tags: tagAgg?.total ?? 0,
92
+ engagement: {
93
+ views: contentAgg?.views ?? 0,
94
+ likes: contentAgg?.likes ?? 0,
95
+ comments: contentAgg?.comments ?? 0,
96
+ },
97
+ },
98
+ recent: {
99
+ newUsers: { last7d: userAgg?.new7 ?? 0, last30d: userAgg?.new30 ?? 0 },
100
+ newContent: { last7d: contentAgg?.new7 ?? 0, last30d: contentAgg?.new30 ?? 0 },
101
+ activeContributors: { last7d: contentAgg?.active7 ?? 0, last30d: contentAgg?.active30 ?? 0 },
102
+ },
103
+ notes: [
104
+ 'Counts cover published, public, non-deleted content and active public-profile users only.',
105
+ 'Engagement totals are cumulative; per-day engagement time-series arrives with Phase 3 rollups.',
106
+ ],
107
+ };
108
+ }
109
+ export async function getTopContent(db, domain, opts) {
110
+ const orderCol = opts.metric === 'likes'
111
+ ? contentItems.likeCount
112
+ : opts.metric === 'comments'
113
+ ? contentItems.commentCount
114
+ : contentItems.viewCount;
115
+ const where = opts.type
116
+ ? and(publicContentWhere(), eq(contentItems.type, opts.type))
117
+ : publicContentWhere();
118
+ const rows = await db
119
+ .select({
120
+ id: contentItems.id,
121
+ type: contentItems.type,
122
+ title: contentItems.title,
123
+ slug: contentItems.slug,
124
+ description: contentItems.description,
125
+ coverImageUrl: contentItems.coverImageUrl,
126
+ difficulty: contentItems.difficulty,
127
+ status: contentItems.status,
128
+ visibility: contentItems.visibility,
129
+ publishedAt: contentItems.publishedAt,
130
+ updatedAt: contentItems.updatedAt,
131
+ createdAt: contentItems.createdAt,
132
+ viewCount: contentItems.viewCount,
133
+ likeCount: contentItems.likeCount,
134
+ commentCount: contentItems.commentCount,
135
+ authorId: users.id,
136
+ authorUsername: users.username,
137
+ authorDisplayName: users.displayName,
138
+ authorAvatarUrl: users.avatarUrl,
139
+ })
140
+ .from(contentItems)
141
+ .innerJoin(users, eq(contentItems.authorId, users.id))
142
+ // Unique id tiebreaker keeps the ordering deterministic across equal counts.
143
+ .where(where)
144
+ .orderBy(desc(orderCol), desc(contentItems.id))
145
+ .limit(opts.limit);
146
+ return rows.map((r) => toPublicContentSummary({
147
+ id: r.id,
148
+ type: r.type,
149
+ title: r.title,
150
+ slug: r.slug,
151
+ description: r.description,
152
+ coverImageUrl: r.coverImageUrl,
153
+ difficulty: r.difficulty,
154
+ status: r.status,
155
+ visibility: r.visibility,
156
+ publishedAt: r.publishedAt,
157
+ updatedAt: r.updatedAt ?? undefined,
158
+ createdAt: r.createdAt ?? undefined,
159
+ deletedAt: null,
160
+ viewCount: r.viewCount,
161
+ likeCount: r.likeCount,
162
+ commentCount: r.commentCount,
163
+ author: {
164
+ id: r.authorId,
165
+ username: r.authorUsername,
166
+ displayName: r.authorDisplayName,
167
+ avatarUrl: r.authorAvatarUrl,
168
+ },
169
+ }, domain));
170
+ }
171
+ // --- Trending tags ---
172
+ export async function getTrendingTags(db, domain, limit) {
173
+ const rows = await db
174
+ .select({ id: tags.id, name: tags.name, slug: tags.slug, usageCount: tags.usageCount })
175
+ .from(tags)
176
+ .where(gt(tags.usageCount, 0))
177
+ .orderBy(desc(tags.usageCount), desc(tags.id))
178
+ .limit(limit);
179
+ return rows.map((r) => toPublicTag(r, domain));
180
+ }
181
+ export async function getTopContributors(db, domain, limit) {
182
+ const rows = await db
183
+ .select({
184
+ id: users.id,
185
+ username: users.username,
186
+ displayName: users.displayName,
187
+ avatarUrl: users.avatarUrl,
188
+ publishedContent: sql `count(${contentItems.id})::int`,
189
+ totalViews: sql `coalesce(sum(${contentItems.viewCount}), 0)::float8`,
190
+ totalLikes: sql `coalesce(sum(${contentItems.likeCount}), 0)::float8`,
191
+ })
192
+ .from(users)
193
+ // INNER JOIN on the public-content predicate: users with zero public content
194
+ // are excluded (they are not contributors), and only public content counts.
195
+ .innerJoin(contentItems, and(eq(contentItems.authorId, users.id), publicContentWhere()))
196
+ .where(and(eq(users.profileVisibility, 'public'), eq(users.status, 'active'), isNull(users.deletedAt)))
197
+ .groupBy(users.id, users.username, users.displayName, users.avatarUrl)
198
+ .orderBy(desc(sql `count(${contentItems.id})`), desc(users.id))
199
+ .limit(limit);
200
+ return rows.map((r) => ({
201
+ user: { id: r.id, username: r.username, displayName: r.displayName, avatarUrl: r.avatarUrl },
202
+ publishedContent: r.publishedContent,
203
+ totalViews: r.totalViews,
204
+ totalLikes: r.totalLikes,
205
+ canonicalUrl: `https://${domain}/u/${r.username}`,
206
+ }));
207
+ }
208
+ function ratio(numerator, denominator, digits = 3) {
209
+ if (denominator <= 0)
210
+ return 0;
211
+ const factor = 10 ** digits;
212
+ return Math.round((numerator / denominator) * factor) / factor;
213
+ }
214
+ export async function getEngagementMetrics(db, features) {
215
+ const [contentAgg] = await db
216
+ .select({
217
+ published: sql `count(*)::int`,
218
+ views: sql `coalesce(sum(${contentItems.viewCount}), 0)::float8`,
219
+ likes: sql `coalesce(sum(${contentItems.likeCount}), 0)::float8`,
220
+ comments: sql `coalesce(sum(${contentItems.commentCount}), 0)::float8`,
221
+ })
222
+ .from(contentItems)
223
+ .where(publicContentWhere());
224
+ const published = contentAgg?.published ?? 0;
225
+ const views = contentAgg?.views ?? 0;
226
+ const likes = contentAgg?.likes ?? 0;
227
+ const comments = contentAgg?.comments ?? 0;
228
+ const result = {
229
+ content: {
230
+ published,
231
+ views,
232
+ likes,
233
+ comments,
234
+ avgViewsPerItem: ratio(views, published, 2),
235
+ likesPerView: ratio(likes, views),
236
+ commentsPerView: ratio(comments, views),
237
+ },
238
+ };
239
+ if (features.learning) {
240
+ const [l] = await db
241
+ .select({
242
+ paths: sql `count(*)::int`,
243
+ enrollments: sql `coalesce(sum(${learningPaths.enrollmentCount}), 0)::float8`,
244
+ completions: sql `coalesce(sum(${learningPaths.completionCount}), 0)::float8`,
245
+ })
246
+ .from(learningPaths)
247
+ .where(eq(learningPaths.status, 'published'));
248
+ result.learning = {
249
+ paths: l?.paths ?? 0,
250
+ enrollments: l?.enrollments ?? 0,
251
+ completions: l?.completions ?? 0,
252
+ completionRate: ratio(l?.completions ?? 0, l?.enrollments ?? 0),
253
+ };
254
+ }
255
+ if (features.events) {
256
+ const [e] = await db
257
+ .select({
258
+ events: sql `count(*)::int`,
259
+ capacity: sql `coalesce(sum(${events.capacity}), 0)::float8`,
260
+ attendees: sql `coalesce(sum(${events.attendeeCount}), 0)::float8`,
261
+ })
262
+ .from(events)
263
+ .where(inArray(events.status, PUBLIC_EVENT_STATUSES));
264
+ result.events = {
265
+ events: e?.events ?? 0,
266
+ capacity: e?.capacity ?? 0,
267
+ attendees: e?.attendees ?? 0,
268
+ fillRate: ratio(e?.attendees ?? 0, e?.capacity ?? 0),
269
+ };
270
+ }
271
+ if (features.contests) {
272
+ const [c] = await db
273
+ .select({
274
+ contests: sql `count(*)::int`,
275
+ entries: sql `coalesce(sum(${contests.entryCount}), 0)::float8`,
276
+ })
277
+ .from(contests)
278
+ .where(and(inArray(contests.status, PUBLIC_CONTEST_STATUSES), eq(contests.visibility, 'public')));
279
+ result.contests = { contests: c?.contests ?? 0, entries: c?.entries ?? 0 };
280
+ }
281
+ return result;
282
+ }
283
+ export async function getFederationReach(db, limit) {
284
+ const [[instAgg], [mirrorAgg], [userFollowers], [hubFollowerAgg], [inboundAgg], byDomain] = await Promise.all([
285
+ db
286
+ .select({ total: sql `count(*)::int` })
287
+ .from(registryInstances)
288
+ .where(eq(registryInstances.status, 'active')),
289
+ db
290
+ .select({ total: sql `count(*)::int` })
291
+ .from(instanceMirrors)
292
+ .where(eq(instanceMirrors.status, 'active')),
293
+ db
294
+ .select({ total: sql `count(*)::int` })
295
+ .from(followRelationships)
296
+ .where(eq(followRelationships.status, 'accepted')),
297
+ db
298
+ .select({ total: sql `count(*)::int` })
299
+ .from(hubFollowers)
300
+ .where(eq(hubFollowers.status, 'accepted')),
301
+ db.select({ total: sql `count(*)::int` }).from(federatedContent),
302
+ db
303
+ .select({ domain: federatedContent.originDomain, count: sql `count(*)::int` })
304
+ .from(federatedContent)
305
+ .groupBy(federatedContent.originDomain)
306
+ .orderBy(desc(sql `count(*)`), desc(federatedContent.originDomain))
307
+ .limit(limit),
308
+ ]);
309
+ return {
310
+ knownInstances: instAgg?.total ?? 0,
311
+ activeMirrors: mirrorAgg?.total ?? 0,
312
+ followers: (userFollowers?.total ?? 0) + (hubFollowerAgg?.total ?? 0),
313
+ inboundContent: inboundAgg?.total ?? 0,
314
+ inboundByDomain: byDomain.map((r) => ({ domain: r.domain, count: r.count })),
315
+ };
316
+ }
317
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/publicApi/metrics.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commonpub/server",
3
- "version": "2.79.0",
3
+ "version": "2.81.0",
4
4
  "type": "module",
5
5
  "description": "Framework-agnostic business logic for CommonPub instances",
6
6
  "license": "AGPL-3.0-or-later",
@@ -114,14 +114,14 @@
114
114
  "linkedom": "^0.18.12",
115
115
  "megalodon": "^10.3.0",
116
116
  "turndown": "^7.2.4",
117
- "@commonpub/learning": "0.5.2",
118
- "@commonpub/docs": "0.6.3",
119
- "@commonpub/config": "0.18.0",
120
- "@commonpub/schema": "0.32.0",
121
- "@commonpub/infra": "0.8.0",
117
+ "@commonpub/auth": "0.8.0",
122
118
  "@commonpub/protocol": "0.13.0",
123
119
  "@commonpub/editor": "0.7.11",
124
- "@commonpub/auth": "0.8.0"
120
+ "@commonpub/docs": "0.6.3",
121
+ "@commonpub/schema": "0.34.0",
122
+ "@commonpub/infra": "0.8.0",
123
+ "@commonpub/learning": "0.5.2",
124
+ "@commonpub/config": "0.19.0"
125
125
  },
126
126
  "peerDependencies": {
127
127
  "drizzle-orm": "^0.45.1"