@foss.global/interfaces 0.12.0 → 0.13.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/changelog.md +8 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/forgeinventory.d.ts +24 -0
- package/package.json +1 -1
- package/readme.md +10 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/forgeinventory.ts +25 -0
package/changelog.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-09-05 - 0.13.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- add issue observation contract (forgeinventory)
|
|
8
|
+
- Add IForgeInventoryIssue for provider issue identity, repository-local numbers, metadata, author identity and timestamps.
|
|
9
|
+
- Document issue inventory semantics and add type-level round-trip contract coverage.
|
|
10
|
+
|
|
3
11
|
## 2026-09-04 - 0.12.0
|
|
4
12
|
|
|
5
13
|
### Features
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@foss.global/interfaces',
|
|
6
|
-
version: '0.
|
|
6
|
+
version: '0.13.0',
|
|
7
7
|
description: 'Shared TypeScript interfaces and TypedRequest contracts for the foss.global Git platform ecosystem.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHFHQUFxRztDQUNuSCxDQUFBIn0=
|
|
@@ -79,6 +79,30 @@ export interface IForgeInventoryRepository {
|
|
|
79
79
|
/** Git storage bytes only; never an admission estimate for an outgoing push. */
|
|
80
80
|
gitSizeBytes: TForgeInventoryQuantity;
|
|
81
81
|
}
|
|
82
|
+
/** Issue metadata observed from a provider, never a complete historical import payload. */
|
|
83
|
+
export interface IForgeInventoryIssue {
|
|
84
|
+
/** Provider row identity; an issue's displayed number is a separate locator. */
|
|
85
|
+
identity: TForgeInventoryIdentity;
|
|
86
|
+
repository: TForgeInventoryIdentity;
|
|
87
|
+
location: IForgeInventoryLocation;
|
|
88
|
+
/** Canonical positive decimal repository-local number (GitLab iid). */
|
|
89
|
+
number: string;
|
|
90
|
+
title: string;
|
|
91
|
+
/** Provider text verbatim, including empty text; null means not exposed. */
|
|
92
|
+
body: string | null;
|
|
93
|
+
state: 'open' | 'closed' | null;
|
|
94
|
+
/** Provider issue classification, such as GitLab issue/incident/task; null if unknown. */
|
|
95
|
+
providerType: string | null;
|
|
96
|
+
/** null means unknown or unsupported, never implicit public visibility. */
|
|
97
|
+
confidential: boolean | null;
|
|
98
|
+
/** Reported provider author identity; does not establish an imported original author. */
|
|
99
|
+
author: TForgeInventoryIdentity;
|
|
100
|
+
/** ISO 8601 provider content times, distinct from inventory observation times. */
|
|
101
|
+
createdAt: string | null;
|
|
102
|
+
updatedAt: string | null;
|
|
103
|
+
/** null means no observed close time; state determines whether the issue is open. */
|
|
104
|
+
closedAt: string | null;
|
|
105
|
+
}
|
|
82
106
|
export type TForgeInventoryEntityClass = 'namespaces' | 'users' | 'teams' | 'memberships' | 'repositories' | 'gitRefs' | 'gitObjects' | 'protectedRefs' | 'publicSshKeys' | 'deployKeys' | 'issues' | 'issueComments' | 'pullRequests' | 'reviews' | 'reviewComments' | 'labels' | 'milestones' | 'assignees' | 'reactions' | 'releases' | 'releaseAssets' | 'lfsObjects' | 'packages' | 'packageVersions' | 'packageBlobs' | 'webhooks' | 'webhookDeliveries' | 'ciWorkflows' | 'ciRuns' | 'ciArtifacts' | 'wikis' | 'projects';
|
|
83
107
|
/** Availability of an inventory read, never a claim of write/import fidelity. */
|
|
84
108
|
export type TForgeInventoryCapability = {
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -98,7 +98,7 @@ Protocol v1 describes OCI execution with Docker or Podman and `tar.gz` source ar
|
|
|
98
98
|
### Forge inventory contracts
|
|
99
99
|
|
|
100
100
|
`IForgeInventoryReport`, `IForgeInventoryPage<TItem>`, `IForgeInventoryNamespace`,
|
|
101
|
-
and `
|
|
101
|
+
`IForgeInventoryRepository` and `IForgeInventoryIssue` describe operator inventory observations. They
|
|
102
102
|
are exported from both the package root and `data`. This package supplies types;
|
|
103
103
|
it does not scan a forge or validate network responses.
|
|
104
104
|
|
|
@@ -108,6 +108,15 @@ subgroups and literal hyphens. A source without a stable identifier reports an
|
|
|
108
108
|
unresolved identity. URLs must be credential-free, and inventory responses need
|
|
109
109
|
operator authorization rather than anonymous public exposure.
|
|
110
110
|
|
|
111
|
+
Issue observations separate the provider row ID from its repository-local
|
|
112
|
+
`number` (GitLab `iid`) and retain the repository identity. They preserve empty
|
|
113
|
+
body text, unknown metadata, open/closed state, provider issue classification,
|
|
114
|
+
confidentiality, reported author identity and provider content timestamps.
|
|
115
|
+
The reported author does not prove original attribution for previously imported
|
|
116
|
+
issues. Comments, labels, milestones, assignees, attachments and history require
|
|
117
|
+
their own inventory and preservation work; this metadata DTO does not claim
|
|
118
|
+
that those collections or external writes are implemented.
|
|
119
|
+
|
|
111
120
|
Every canonical entity class has an explicit capability and collection result,
|
|
112
121
|
including classes not inspected or unavailable. Additional provider features
|
|
113
122
|
have their own entries. `enumerated` means the selected collection was exhausted
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -81,6 +81,31 @@ export interface IForgeInventoryRepository {
|
|
|
81
81
|
gitSizeBytes: TForgeInventoryQuantity;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
/** Issue metadata observed from a provider, never a complete historical import payload. */
|
|
85
|
+
export interface IForgeInventoryIssue {
|
|
86
|
+
/** Provider row identity; an issue's displayed number is a separate locator. */
|
|
87
|
+
identity: TForgeInventoryIdentity;
|
|
88
|
+
repository: TForgeInventoryIdentity;
|
|
89
|
+
location: IForgeInventoryLocation;
|
|
90
|
+
/** Canonical positive decimal repository-local number (GitLab iid). */
|
|
91
|
+
number: string;
|
|
92
|
+
title: string;
|
|
93
|
+
/** Provider text verbatim, including empty text; null means not exposed. */
|
|
94
|
+
body: string | null;
|
|
95
|
+
state: 'open' | 'closed' | null;
|
|
96
|
+
/** Provider issue classification, such as GitLab issue/incident/task; null if unknown. */
|
|
97
|
+
providerType: string | null;
|
|
98
|
+
/** null means unknown or unsupported, never implicit public visibility. */
|
|
99
|
+
confidential: boolean | null;
|
|
100
|
+
/** Reported provider author identity; does not establish an imported original author. */
|
|
101
|
+
author: TForgeInventoryIdentity;
|
|
102
|
+
/** ISO 8601 provider content times, distinct from inventory observation times. */
|
|
103
|
+
createdAt: string | null;
|
|
104
|
+
updatedAt: string | null;
|
|
105
|
+
/** null means no observed close time; state determines whether the issue is open. */
|
|
106
|
+
closedAt: string | null;
|
|
107
|
+
}
|
|
108
|
+
|
|
84
109
|
export type TForgeInventoryEntityClass =
|
|
85
110
|
| 'namespaces'
|
|
86
111
|
| 'users'
|