@buildinternet/releases-api-types 0.5.0 → 0.6.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.
- package/README.md +6 -5
- package/package.json +1 -1
- package/src/api-types.ts +97 -1
package/README.md
CHANGED
|
@@ -15,16 +15,17 @@ npm install @buildinternet/releases-api-types
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```ts
|
|
18
|
-
import type {
|
|
18
|
+
import type { OrgListResponse } from "@buildinternet/releases-api-types";
|
|
19
19
|
|
|
20
|
-
async function listOrgs(): Promise<
|
|
20
|
+
async function listOrgs(): Promise<OrgListResponse> {
|
|
21
21
|
const res = await fetch("https://api.releases.sh/v1/orgs");
|
|
22
|
-
|
|
22
|
+
if (!res.ok) throw new Error(`API error: ${res.status}`);
|
|
23
|
+
return (await res.json()) as OrgListResponse;
|
|
23
24
|
}
|
|
24
25
|
```
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
`@buildinternet/releases-core/cli-contracts
|
|
27
|
+
Paginated list endpoints return a `ListResponse<T>` envelope (`{ items, pagination }`). The shared pagination semantics also live in
|
|
28
|
+
`@buildinternet/releases-core/cli-contracts` for CLI callers.
|
|
28
29
|
|
|
29
30
|
## Versioning
|
|
30
31
|
|
package/package.json
CHANGED
package/src/api-types.ts
CHANGED
|
@@ -23,6 +23,22 @@ export interface Stats {
|
|
|
23
23
|
products: number;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
// ── Pagination ──
|
|
27
|
+
|
|
28
|
+
export interface Pagination {
|
|
29
|
+
page: number;
|
|
30
|
+
pageSize: number;
|
|
31
|
+
returned: number;
|
|
32
|
+
totalItems?: number;
|
|
33
|
+
totalPages?: number;
|
|
34
|
+
hasMore: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ListResponse<T> {
|
|
38
|
+
items: T[];
|
|
39
|
+
pagination: Pagination;
|
|
40
|
+
}
|
|
41
|
+
|
|
26
42
|
// ── Sitemap (bulk URL emission) ──
|
|
27
43
|
|
|
28
44
|
export interface SitemapPayload {
|
|
@@ -47,6 +63,16 @@ export interface OrgListItem {
|
|
|
47
63
|
sparkline: number[];
|
|
48
64
|
}
|
|
49
65
|
|
|
66
|
+
export type OrgListResponse = ListResponse<OrgListItem>;
|
|
67
|
+
|
|
68
|
+
export interface OrgAccountItem {
|
|
69
|
+
platform: string;
|
|
70
|
+
handle: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export type OrgAccountsResponse = ListResponse<OrgAccountItem>;
|
|
74
|
+
export type OrgTagsResponse = ListResponse<string>;
|
|
75
|
+
|
|
50
76
|
export interface OrgDetail {
|
|
51
77
|
id?: string;
|
|
52
78
|
slug: string;
|
|
@@ -64,7 +90,7 @@ export interface OrgDetail {
|
|
|
64
90
|
lastPolledAt: string | null;
|
|
65
91
|
trackingSince: string;
|
|
66
92
|
aliases?: string[];
|
|
67
|
-
accounts:
|
|
93
|
+
accounts: OrgAccountItem[];
|
|
68
94
|
products: Array<{
|
|
69
95
|
id: string;
|
|
70
96
|
slug: string;
|
|
@@ -520,6 +546,51 @@ export interface OverviewPageItem {
|
|
|
520
546
|
/** @deprecated Use OverviewPageItem */
|
|
521
547
|
export type KnowledgePageItem = OverviewPageItem;
|
|
522
548
|
|
|
549
|
+
// ── Overview Manifest (admin planning) ──
|
|
550
|
+
|
|
551
|
+
export type OverviewStaleness = "missing" | "behind" | "fresh";
|
|
552
|
+
export type OverviewPlanAction = "missing" | "refresh" | "skip";
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Per-org row returned by GET /v1/admin/overviews. Designed for orchestrators
|
|
556
|
+
* planning a maintenance sweep — `releasesSinceOverview` is the freshness
|
|
557
|
+
* signal that matters, not date diff alone.
|
|
558
|
+
*/
|
|
559
|
+
export interface OverviewManifestRow {
|
|
560
|
+
orgSlug: string;
|
|
561
|
+
orgName: string;
|
|
562
|
+
discovery: "curated" | "agent" | "on_demand";
|
|
563
|
+
overviewUpdatedAt: string | null;
|
|
564
|
+
overviewGeneratedAt: string | null;
|
|
565
|
+
lastContributingReleaseAt: string | null;
|
|
566
|
+
orgLastActivity: string | null;
|
|
567
|
+
releasesSinceOverview: number;
|
|
568
|
+
recentReleaseCount: number;
|
|
569
|
+
staleness: OverviewStaleness;
|
|
570
|
+
/** Only populated when ?format=plan. */
|
|
571
|
+
action?: OverviewPlanAction;
|
|
572
|
+
/** Only populated when ?format=plan. */
|
|
573
|
+
needsFetch?: boolean;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
export type OverviewManifestResponse = ListResponse<OverviewManifestRow>;
|
|
577
|
+
|
|
578
|
+
// ── Overview inputs (?check=true) ──
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Lightweight pre-flight payload returned by GET /v1/orgs/:slug/overview/inputs?check=true.
|
|
582
|
+
* Skips the heavy release-content hydration so an orchestrator can decide whether
|
|
583
|
+
* to dispatch without paying for the full payload.
|
|
584
|
+
*/
|
|
585
|
+
export interface OverviewInputsCheck {
|
|
586
|
+
orgSlug: string;
|
|
587
|
+
selected: number;
|
|
588
|
+
totalAvailable: number;
|
|
589
|
+
hasExistingContent: boolean;
|
|
590
|
+
wouldRegenerate: boolean;
|
|
591
|
+
windowDays: number;
|
|
592
|
+
}
|
|
593
|
+
|
|
523
594
|
/** @deprecated Use UnifiedSearchResponse */
|
|
524
595
|
export type SearchResult = SearchReleaseHit;
|
|
525
596
|
/** @deprecated Use UnifiedSearchResponse */
|
|
@@ -614,6 +685,8 @@ export interface ProductListItem {
|
|
|
614
685
|
sourceCount: number;
|
|
615
686
|
}
|
|
616
687
|
|
|
688
|
+
export type ProductListResponse = ListResponse<ProductListItem>;
|
|
689
|
+
|
|
617
690
|
export interface ProductDetail {
|
|
618
691
|
id: string;
|
|
619
692
|
name: string;
|
|
@@ -799,6 +872,29 @@ export interface Session {
|
|
|
799
872
|
cancelRequested?: boolean;
|
|
800
873
|
}
|
|
801
874
|
|
|
875
|
+
export type SessionListResponse = ListResponse<Session>;
|
|
876
|
+
|
|
877
|
+
// ── Admin URL Lists ──
|
|
878
|
+
|
|
879
|
+
export interface IgnoredUrlItem {
|
|
880
|
+
id: string;
|
|
881
|
+
url: string;
|
|
882
|
+
orgId: string;
|
|
883
|
+
reason: string | null;
|
|
884
|
+
ignoredAt: string;
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
export interface BlockedUrlItem {
|
|
888
|
+
id: string;
|
|
889
|
+
pattern: string;
|
|
890
|
+
type: "exact" | "domain";
|
|
891
|
+
reason: string | null;
|
|
892
|
+
createdAt: string;
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
export type IgnoredUrlListResponse = ListResponse<IgnoredUrlItem>;
|
|
896
|
+
export type BlockedUrlListResponse = ListResponse<BlockedUrlItem>;
|
|
897
|
+
|
|
802
898
|
// ── Embed (admin) ──
|
|
803
899
|
|
|
804
900
|
export interface EmbedBackfillResponse {
|