@plasius/asset-sources 0.1.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/LICENSE +203 -0
- package/README.md +70 -0
- package/THIRD_PARTY_NOTICES.md +75 -0
- package/dist/index.cjs +428 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +216 -0
- package/dist/index.d.ts +216 -0
- package/dist/index.js +376 -0
- package/dist/index.js.map +1 -0
- package/package.json +99 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
declare const FEATURE_FLAGS: Readonly<{
|
|
2
|
+
readonly parent: "asset.pipeline.unified-ai-assets.enabled";
|
|
3
|
+
readonly externalHarvest: "asset.pipeline.external-model-harvest.enabled";
|
|
4
|
+
readonly polyHaven: "asset.pipeline.provider.polyhaven.enabled";
|
|
5
|
+
readonly kenney: "asset.pipeline.provider.kenney.enabled";
|
|
6
|
+
readonly smithsonian: "asset.pipeline.provider.smithsonian.enabled";
|
|
7
|
+
readonly nasa: "asset.pipeline.provider.nasa.enabled";
|
|
8
|
+
readonly sketchfab: "asset.pipeline.provider.sketchfab.enabled";
|
|
9
|
+
}>;
|
|
10
|
+
declare const CAPABILITIES: Readonly<{
|
|
11
|
+
readonly sourceManage: "asset.source.manage";
|
|
12
|
+
readonly catalogReview: "asset.catalog.review";
|
|
13
|
+
readonly catalogRequest: "asset.catalog.request";
|
|
14
|
+
}>;
|
|
15
|
+
type ProviderId = string & {
|
|
16
|
+
readonly __providerId: unique symbol;
|
|
17
|
+
};
|
|
18
|
+
type AssetIdentifier = string & {
|
|
19
|
+
readonly __assetIdentifier: unique symbol;
|
|
20
|
+
};
|
|
21
|
+
type Revision = number & {
|
|
22
|
+
readonly __revision: unique symbol;
|
|
23
|
+
};
|
|
24
|
+
type ProviderOperation = "search" | "resolveMetadata" | "requestDownload" | "download";
|
|
25
|
+
type SupportedFormat = "glb" | "gltf" | "fbx" | "obj" | "blend" | "zip" | "unknown";
|
|
26
|
+
type SourceReviewState = "pending" | "approved" | "rejected";
|
|
27
|
+
type RightsEvidenceState = "approved" | "unknown" | "changed";
|
|
28
|
+
type RightsPolicyState = "commercial-redistribution" | "commercial-with-attribution" | "not-approved";
|
|
29
|
+
interface ProviderSourceDescriptor {
|
|
30
|
+
readonly providerId: ProviderId;
|
|
31
|
+
readonly displayName: string;
|
|
32
|
+
readonly enabled: boolean;
|
|
33
|
+
readonly featureFlag: string;
|
|
34
|
+
readonly parentFeatureFlag: typeof FEATURE_FLAGS.parent;
|
|
35
|
+
readonly requiredCapabilities: readonly string[];
|
|
36
|
+
readonly operationalGates: readonly string[];
|
|
37
|
+
readonly sourceReview: SourceReviewState;
|
|
38
|
+
readonly rightsPolicy: RightsPolicyState;
|
|
39
|
+
readonly supportedFormats: readonly SupportedFormat[];
|
|
40
|
+
}
|
|
41
|
+
interface SearchRequest {
|
|
42
|
+
readonly providerId: ProviderId;
|
|
43
|
+
readonly query: string;
|
|
44
|
+
readonly limit?: number;
|
|
45
|
+
readonly cursor?: string;
|
|
46
|
+
}
|
|
47
|
+
interface ResolveMetadataRequest {
|
|
48
|
+
readonly providerId: ProviderId;
|
|
49
|
+
readonly assetId: AssetIdentifier;
|
|
50
|
+
}
|
|
51
|
+
interface RequestDownloadRequest {
|
|
52
|
+
readonly providerId: ProviderId;
|
|
53
|
+
readonly assetId: AssetIdentifier;
|
|
54
|
+
readonly idempotencyKey: string;
|
|
55
|
+
readonly expectedRevision?: Revision;
|
|
56
|
+
}
|
|
57
|
+
interface DownloadRequest {
|
|
58
|
+
readonly providerId: ProviderId;
|
|
59
|
+
readonly assetId: AssetIdentifier;
|
|
60
|
+
readonly acquisitionId: string;
|
|
61
|
+
}
|
|
62
|
+
interface RightsEvidence {
|
|
63
|
+
readonly state: RightsEvidenceState;
|
|
64
|
+
readonly policy: RightsPolicyState;
|
|
65
|
+
readonly evidenceRevision: Revision;
|
|
66
|
+
readonly attributionRequired: boolean;
|
|
67
|
+
}
|
|
68
|
+
interface ProviderAssetCandidate {
|
|
69
|
+
readonly providerId: ProviderId;
|
|
70
|
+
readonly assetId: AssetIdentifier;
|
|
71
|
+
readonly title: string;
|
|
72
|
+
readonly description: string;
|
|
73
|
+
readonly sourcePage: string;
|
|
74
|
+
readonly rights: RightsEvidence;
|
|
75
|
+
readonly supportedFormats: readonly SupportedFormat[];
|
|
76
|
+
readonly revision: Revision;
|
|
77
|
+
readonly disposition: "eligible" | "quarantined";
|
|
78
|
+
}
|
|
79
|
+
interface ProviderAssetMetadata extends ProviderAssetCandidate {
|
|
80
|
+
readonly creator?: string;
|
|
81
|
+
readonly attributionText?: string;
|
|
82
|
+
}
|
|
83
|
+
interface CredentialRequest {
|
|
84
|
+
readonly providerId: ProviderId;
|
|
85
|
+
readonly operation: ProviderOperation;
|
|
86
|
+
}
|
|
87
|
+
interface ProviderCredential {
|
|
88
|
+
readonly kind: "oauth" | "api-key" | "none";
|
|
89
|
+
readonly value: string;
|
|
90
|
+
}
|
|
91
|
+
interface CredentialProvider {
|
|
92
|
+
getCredential(request: CredentialRequest): Promise<ProviderCredential | null>;
|
|
93
|
+
}
|
|
94
|
+
interface ProviderTransportRequest {
|
|
95
|
+
readonly providerId: ProviderId;
|
|
96
|
+
readonly operation: "search" | "resolveMetadata";
|
|
97
|
+
readonly assetId?: AssetIdentifier;
|
|
98
|
+
readonly query?: string;
|
|
99
|
+
readonly limit?: number;
|
|
100
|
+
readonly cursor?: string;
|
|
101
|
+
}
|
|
102
|
+
interface ProviderTransport {
|
|
103
|
+
execute(request: ProviderTransportRequest, credential: ProviderCredential | null): Promise<unknown>;
|
|
104
|
+
}
|
|
105
|
+
interface ProviderPayloadNormalizer {
|
|
106
|
+
normalizeSearch(payload: unknown): readonly ProviderAssetCandidate[];
|
|
107
|
+
normalizeMetadata(payload: unknown): ProviderAssetMetadata;
|
|
108
|
+
}
|
|
109
|
+
interface AcquisitionRequest {
|
|
110
|
+
readonly providerId: ProviderId;
|
|
111
|
+
readonly assetId: AssetIdentifier;
|
|
112
|
+
readonly idempotencyKey: string;
|
|
113
|
+
readonly expectedRevision?: Revision;
|
|
114
|
+
}
|
|
115
|
+
interface AcquisitionReceipt {
|
|
116
|
+
readonly acquisitionId: string;
|
|
117
|
+
readonly providerId: ProviderId;
|
|
118
|
+
readonly assetId: AssetIdentifier;
|
|
119
|
+
readonly revision: Revision;
|
|
120
|
+
readonly status: "accepted" | "unavailable" | "quarantined";
|
|
121
|
+
}
|
|
122
|
+
interface AcquiredContent {
|
|
123
|
+
readonly acquisitionId: string;
|
|
124
|
+
readonly mediaType: string;
|
|
125
|
+
readonly byteLength: number;
|
|
126
|
+
readonly checksumSha256: string;
|
|
127
|
+
}
|
|
128
|
+
interface AcquisitionPort {
|
|
129
|
+
requestDownload(request: AcquisitionRequest): Promise<AcquisitionReceipt>;
|
|
130
|
+
download(request: DownloadRequest): Promise<AcquiredContent>;
|
|
131
|
+
}
|
|
132
|
+
interface PrivateStagingRef {
|
|
133
|
+
readonly stagingId: string;
|
|
134
|
+
readonly mediaType: string;
|
|
135
|
+
readonly byteLength: number;
|
|
136
|
+
readonly checksumSha256: string;
|
|
137
|
+
readonly expiresAt: string;
|
|
138
|
+
}
|
|
139
|
+
interface PrivateStagingPort {
|
|
140
|
+
stage(content: AcquiredContent): Promise<PrivateStagingRef>;
|
|
141
|
+
}
|
|
142
|
+
interface Checkpoint {
|
|
143
|
+
readonly idempotencyKey: string;
|
|
144
|
+
readonly receipt: AcquisitionReceipt;
|
|
145
|
+
}
|
|
146
|
+
interface CheckpointPort {
|
|
147
|
+
get(idempotencyKey: string): Promise<Checkpoint | null>;
|
|
148
|
+
put(checkpoint: Checkpoint): Promise<void>;
|
|
149
|
+
}
|
|
150
|
+
interface ProviderConnector {
|
|
151
|
+
readonly descriptor: ProviderSourceDescriptor;
|
|
152
|
+
search(request: SearchRequest): Promise<readonly ProviderAssetCandidate[]>;
|
|
153
|
+
resolveMetadata(request: ResolveMetadataRequest): Promise<ProviderAssetMetadata>;
|
|
154
|
+
requestDownload(request: RequestDownloadRequest): Promise<AcquisitionReceipt>;
|
|
155
|
+
download(request: DownloadRequest): Promise<PrivateStagingRef>;
|
|
156
|
+
}
|
|
157
|
+
interface ProviderRegistry {
|
|
158
|
+
get(providerId: ProviderId): ProviderSourceDescriptor;
|
|
159
|
+
list(): readonly ProviderSourceDescriptor[];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
declare class SourceValidationError extends Error {
|
|
163
|
+
readonly code: string;
|
|
164
|
+
constructor(code: string);
|
|
165
|
+
}
|
|
166
|
+
declare class SourceUnavailableError extends Error {
|
|
167
|
+
constructor();
|
|
168
|
+
}
|
|
169
|
+
declare class ProviderDisabledError extends Error {
|
|
170
|
+
constructor();
|
|
171
|
+
}
|
|
172
|
+
declare function deepFreeze<T>(value: T, seen?: WeakSet<object>): T;
|
|
173
|
+
declare function validateProviderId(value: unknown): ProviderId;
|
|
174
|
+
declare function validateAssetIdentifier(value: unknown): AssetIdentifier;
|
|
175
|
+
declare function validateRevision(value: unknown): Revision;
|
|
176
|
+
declare function validateIdempotencyKey(value: unknown): string;
|
|
177
|
+
declare function validateQuery(value: unknown): string;
|
|
178
|
+
declare function validateCursor(value: unknown): string | undefined;
|
|
179
|
+
declare function validateLimit(value: unknown): number;
|
|
180
|
+
declare function sanitizeUntrustedText(value: unknown, maxLength: number): string;
|
|
181
|
+
declare function validateSourcePage(value: unknown): string;
|
|
182
|
+
declare function validateChecksum(value: unknown): string;
|
|
183
|
+
declare function validateDescriptor(descriptor: ProviderSourceDescriptor): ProviderSourceDescriptor;
|
|
184
|
+
declare function assertRightsApproved(rights: RightsEvidence): void;
|
|
185
|
+
declare function normalizeCandidate(candidate: ProviderAssetCandidate, expectedProviderId: ProviderId): ProviderAssetCandidate;
|
|
186
|
+
declare function normalizeMetadata(metadata: ProviderAssetMetadata, expectedProviderId: ProviderId): ProviderAssetMetadata;
|
|
187
|
+
|
|
188
|
+
declare const DEFAULT_PROVIDER_DESCRIPTORS: readonly ProviderSourceDescriptor[];
|
|
189
|
+
declare function createProviderRegistry(descriptors?: readonly ProviderSourceDescriptor[]): ProviderRegistry;
|
|
190
|
+
|
|
191
|
+
interface ProviderConnectorDependencies {
|
|
192
|
+
readonly credentials: CredentialProvider;
|
|
193
|
+
readonly transport: ProviderTransport;
|
|
194
|
+
readonly normalizer: ProviderPayloadNormalizer;
|
|
195
|
+
readonly acquisition: AcquisitionPort;
|
|
196
|
+
readonly staging: PrivateStagingPort;
|
|
197
|
+
readonly checkpoints: CheckpointPort;
|
|
198
|
+
}
|
|
199
|
+
declare function createProviderConnector(descriptor: ProviderSourceDescriptor, dependencies: ProviderConnectorDependencies): ProviderConnector;
|
|
200
|
+
|
|
201
|
+
interface FakeConnectorFixture {
|
|
202
|
+
readonly candidate: ProviderAssetCandidate;
|
|
203
|
+
readonly metadata?: Partial<ProviderAssetMetadata>;
|
|
204
|
+
}
|
|
205
|
+
declare function createMemoryCheckpoints(): CheckpointPort;
|
|
206
|
+
declare function createFakeDependencies(providerId: ProviderId, fixture: FakeConnectorFixture): {
|
|
207
|
+
credentials: CredentialProvider;
|
|
208
|
+
transport: ProviderTransport;
|
|
209
|
+
normalizer: ProviderPayloadNormalizer;
|
|
210
|
+
acquisition: AcquisitionPort;
|
|
211
|
+
staging: PrivateStagingPort;
|
|
212
|
+
checkpoints: CheckpointPort;
|
|
213
|
+
};
|
|
214
|
+
declare function fixtureCandidate(providerId: string, assetId: string): ProviderAssetCandidate;
|
|
215
|
+
|
|
216
|
+
export { type AcquiredContent, type AcquisitionPort, type AcquisitionReceipt, type AcquisitionRequest, type AssetIdentifier, CAPABILITIES, type Checkpoint, type CheckpointPort, type CredentialProvider, type CredentialRequest, DEFAULT_PROVIDER_DESCRIPTORS, type DownloadRequest, FEATURE_FLAGS, type FakeConnectorFixture, type PrivateStagingPort, type PrivateStagingRef, type ProviderAssetCandidate, type ProviderAssetMetadata, type ProviderConnector, type ProviderConnectorDependencies, type ProviderCredential, ProviderDisabledError, type ProviderId, type ProviderOperation, type ProviderPayloadNormalizer, type ProviderRegistry, type ProviderSourceDescriptor, type ProviderTransport, type ProviderTransportRequest, type RequestDownloadRequest, type ResolveMetadataRequest, type Revision, type RightsEvidence, type RightsEvidenceState, type RightsPolicyState, type SearchRequest, type SourceReviewState, SourceUnavailableError, SourceValidationError, type SupportedFormat, assertRightsApproved, createFakeDependencies, createMemoryCheckpoints, createProviderConnector, createProviderRegistry, deepFreeze, fixtureCandidate, normalizeCandidate, normalizeMetadata, sanitizeUntrustedText, validateAssetIdentifier, validateChecksum, validateCursor, validateDescriptor, validateIdempotencyKey, validateLimit, validateProviderId, validateQuery, validateRevision, validateSourcePage };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
declare const FEATURE_FLAGS: Readonly<{
|
|
2
|
+
readonly parent: "asset.pipeline.unified-ai-assets.enabled";
|
|
3
|
+
readonly externalHarvest: "asset.pipeline.external-model-harvest.enabled";
|
|
4
|
+
readonly polyHaven: "asset.pipeline.provider.polyhaven.enabled";
|
|
5
|
+
readonly kenney: "asset.pipeline.provider.kenney.enabled";
|
|
6
|
+
readonly smithsonian: "asset.pipeline.provider.smithsonian.enabled";
|
|
7
|
+
readonly nasa: "asset.pipeline.provider.nasa.enabled";
|
|
8
|
+
readonly sketchfab: "asset.pipeline.provider.sketchfab.enabled";
|
|
9
|
+
}>;
|
|
10
|
+
declare const CAPABILITIES: Readonly<{
|
|
11
|
+
readonly sourceManage: "asset.source.manage";
|
|
12
|
+
readonly catalogReview: "asset.catalog.review";
|
|
13
|
+
readonly catalogRequest: "asset.catalog.request";
|
|
14
|
+
}>;
|
|
15
|
+
type ProviderId = string & {
|
|
16
|
+
readonly __providerId: unique symbol;
|
|
17
|
+
};
|
|
18
|
+
type AssetIdentifier = string & {
|
|
19
|
+
readonly __assetIdentifier: unique symbol;
|
|
20
|
+
};
|
|
21
|
+
type Revision = number & {
|
|
22
|
+
readonly __revision: unique symbol;
|
|
23
|
+
};
|
|
24
|
+
type ProviderOperation = "search" | "resolveMetadata" | "requestDownload" | "download";
|
|
25
|
+
type SupportedFormat = "glb" | "gltf" | "fbx" | "obj" | "blend" | "zip" | "unknown";
|
|
26
|
+
type SourceReviewState = "pending" | "approved" | "rejected";
|
|
27
|
+
type RightsEvidenceState = "approved" | "unknown" | "changed";
|
|
28
|
+
type RightsPolicyState = "commercial-redistribution" | "commercial-with-attribution" | "not-approved";
|
|
29
|
+
interface ProviderSourceDescriptor {
|
|
30
|
+
readonly providerId: ProviderId;
|
|
31
|
+
readonly displayName: string;
|
|
32
|
+
readonly enabled: boolean;
|
|
33
|
+
readonly featureFlag: string;
|
|
34
|
+
readonly parentFeatureFlag: typeof FEATURE_FLAGS.parent;
|
|
35
|
+
readonly requiredCapabilities: readonly string[];
|
|
36
|
+
readonly operationalGates: readonly string[];
|
|
37
|
+
readonly sourceReview: SourceReviewState;
|
|
38
|
+
readonly rightsPolicy: RightsPolicyState;
|
|
39
|
+
readonly supportedFormats: readonly SupportedFormat[];
|
|
40
|
+
}
|
|
41
|
+
interface SearchRequest {
|
|
42
|
+
readonly providerId: ProviderId;
|
|
43
|
+
readonly query: string;
|
|
44
|
+
readonly limit?: number;
|
|
45
|
+
readonly cursor?: string;
|
|
46
|
+
}
|
|
47
|
+
interface ResolveMetadataRequest {
|
|
48
|
+
readonly providerId: ProviderId;
|
|
49
|
+
readonly assetId: AssetIdentifier;
|
|
50
|
+
}
|
|
51
|
+
interface RequestDownloadRequest {
|
|
52
|
+
readonly providerId: ProviderId;
|
|
53
|
+
readonly assetId: AssetIdentifier;
|
|
54
|
+
readonly idempotencyKey: string;
|
|
55
|
+
readonly expectedRevision?: Revision;
|
|
56
|
+
}
|
|
57
|
+
interface DownloadRequest {
|
|
58
|
+
readonly providerId: ProviderId;
|
|
59
|
+
readonly assetId: AssetIdentifier;
|
|
60
|
+
readonly acquisitionId: string;
|
|
61
|
+
}
|
|
62
|
+
interface RightsEvidence {
|
|
63
|
+
readonly state: RightsEvidenceState;
|
|
64
|
+
readonly policy: RightsPolicyState;
|
|
65
|
+
readonly evidenceRevision: Revision;
|
|
66
|
+
readonly attributionRequired: boolean;
|
|
67
|
+
}
|
|
68
|
+
interface ProviderAssetCandidate {
|
|
69
|
+
readonly providerId: ProviderId;
|
|
70
|
+
readonly assetId: AssetIdentifier;
|
|
71
|
+
readonly title: string;
|
|
72
|
+
readonly description: string;
|
|
73
|
+
readonly sourcePage: string;
|
|
74
|
+
readonly rights: RightsEvidence;
|
|
75
|
+
readonly supportedFormats: readonly SupportedFormat[];
|
|
76
|
+
readonly revision: Revision;
|
|
77
|
+
readonly disposition: "eligible" | "quarantined";
|
|
78
|
+
}
|
|
79
|
+
interface ProviderAssetMetadata extends ProviderAssetCandidate {
|
|
80
|
+
readonly creator?: string;
|
|
81
|
+
readonly attributionText?: string;
|
|
82
|
+
}
|
|
83
|
+
interface CredentialRequest {
|
|
84
|
+
readonly providerId: ProviderId;
|
|
85
|
+
readonly operation: ProviderOperation;
|
|
86
|
+
}
|
|
87
|
+
interface ProviderCredential {
|
|
88
|
+
readonly kind: "oauth" | "api-key" | "none";
|
|
89
|
+
readonly value: string;
|
|
90
|
+
}
|
|
91
|
+
interface CredentialProvider {
|
|
92
|
+
getCredential(request: CredentialRequest): Promise<ProviderCredential | null>;
|
|
93
|
+
}
|
|
94
|
+
interface ProviderTransportRequest {
|
|
95
|
+
readonly providerId: ProviderId;
|
|
96
|
+
readonly operation: "search" | "resolveMetadata";
|
|
97
|
+
readonly assetId?: AssetIdentifier;
|
|
98
|
+
readonly query?: string;
|
|
99
|
+
readonly limit?: number;
|
|
100
|
+
readonly cursor?: string;
|
|
101
|
+
}
|
|
102
|
+
interface ProviderTransport {
|
|
103
|
+
execute(request: ProviderTransportRequest, credential: ProviderCredential | null): Promise<unknown>;
|
|
104
|
+
}
|
|
105
|
+
interface ProviderPayloadNormalizer {
|
|
106
|
+
normalizeSearch(payload: unknown): readonly ProviderAssetCandidate[];
|
|
107
|
+
normalizeMetadata(payload: unknown): ProviderAssetMetadata;
|
|
108
|
+
}
|
|
109
|
+
interface AcquisitionRequest {
|
|
110
|
+
readonly providerId: ProviderId;
|
|
111
|
+
readonly assetId: AssetIdentifier;
|
|
112
|
+
readonly idempotencyKey: string;
|
|
113
|
+
readonly expectedRevision?: Revision;
|
|
114
|
+
}
|
|
115
|
+
interface AcquisitionReceipt {
|
|
116
|
+
readonly acquisitionId: string;
|
|
117
|
+
readonly providerId: ProviderId;
|
|
118
|
+
readonly assetId: AssetIdentifier;
|
|
119
|
+
readonly revision: Revision;
|
|
120
|
+
readonly status: "accepted" | "unavailable" | "quarantined";
|
|
121
|
+
}
|
|
122
|
+
interface AcquiredContent {
|
|
123
|
+
readonly acquisitionId: string;
|
|
124
|
+
readonly mediaType: string;
|
|
125
|
+
readonly byteLength: number;
|
|
126
|
+
readonly checksumSha256: string;
|
|
127
|
+
}
|
|
128
|
+
interface AcquisitionPort {
|
|
129
|
+
requestDownload(request: AcquisitionRequest): Promise<AcquisitionReceipt>;
|
|
130
|
+
download(request: DownloadRequest): Promise<AcquiredContent>;
|
|
131
|
+
}
|
|
132
|
+
interface PrivateStagingRef {
|
|
133
|
+
readonly stagingId: string;
|
|
134
|
+
readonly mediaType: string;
|
|
135
|
+
readonly byteLength: number;
|
|
136
|
+
readonly checksumSha256: string;
|
|
137
|
+
readonly expiresAt: string;
|
|
138
|
+
}
|
|
139
|
+
interface PrivateStagingPort {
|
|
140
|
+
stage(content: AcquiredContent): Promise<PrivateStagingRef>;
|
|
141
|
+
}
|
|
142
|
+
interface Checkpoint {
|
|
143
|
+
readonly idempotencyKey: string;
|
|
144
|
+
readonly receipt: AcquisitionReceipt;
|
|
145
|
+
}
|
|
146
|
+
interface CheckpointPort {
|
|
147
|
+
get(idempotencyKey: string): Promise<Checkpoint | null>;
|
|
148
|
+
put(checkpoint: Checkpoint): Promise<void>;
|
|
149
|
+
}
|
|
150
|
+
interface ProviderConnector {
|
|
151
|
+
readonly descriptor: ProviderSourceDescriptor;
|
|
152
|
+
search(request: SearchRequest): Promise<readonly ProviderAssetCandidate[]>;
|
|
153
|
+
resolveMetadata(request: ResolveMetadataRequest): Promise<ProviderAssetMetadata>;
|
|
154
|
+
requestDownload(request: RequestDownloadRequest): Promise<AcquisitionReceipt>;
|
|
155
|
+
download(request: DownloadRequest): Promise<PrivateStagingRef>;
|
|
156
|
+
}
|
|
157
|
+
interface ProviderRegistry {
|
|
158
|
+
get(providerId: ProviderId): ProviderSourceDescriptor;
|
|
159
|
+
list(): readonly ProviderSourceDescriptor[];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
declare class SourceValidationError extends Error {
|
|
163
|
+
readonly code: string;
|
|
164
|
+
constructor(code: string);
|
|
165
|
+
}
|
|
166
|
+
declare class SourceUnavailableError extends Error {
|
|
167
|
+
constructor();
|
|
168
|
+
}
|
|
169
|
+
declare class ProviderDisabledError extends Error {
|
|
170
|
+
constructor();
|
|
171
|
+
}
|
|
172
|
+
declare function deepFreeze<T>(value: T, seen?: WeakSet<object>): T;
|
|
173
|
+
declare function validateProviderId(value: unknown): ProviderId;
|
|
174
|
+
declare function validateAssetIdentifier(value: unknown): AssetIdentifier;
|
|
175
|
+
declare function validateRevision(value: unknown): Revision;
|
|
176
|
+
declare function validateIdempotencyKey(value: unknown): string;
|
|
177
|
+
declare function validateQuery(value: unknown): string;
|
|
178
|
+
declare function validateCursor(value: unknown): string | undefined;
|
|
179
|
+
declare function validateLimit(value: unknown): number;
|
|
180
|
+
declare function sanitizeUntrustedText(value: unknown, maxLength: number): string;
|
|
181
|
+
declare function validateSourcePage(value: unknown): string;
|
|
182
|
+
declare function validateChecksum(value: unknown): string;
|
|
183
|
+
declare function validateDescriptor(descriptor: ProviderSourceDescriptor): ProviderSourceDescriptor;
|
|
184
|
+
declare function assertRightsApproved(rights: RightsEvidence): void;
|
|
185
|
+
declare function normalizeCandidate(candidate: ProviderAssetCandidate, expectedProviderId: ProviderId): ProviderAssetCandidate;
|
|
186
|
+
declare function normalizeMetadata(metadata: ProviderAssetMetadata, expectedProviderId: ProviderId): ProviderAssetMetadata;
|
|
187
|
+
|
|
188
|
+
declare const DEFAULT_PROVIDER_DESCRIPTORS: readonly ProviderSourceDescriptor[];
|
|
189
|
+
declare function createProviderRegistry(descriptors?: readonly ProviderSourceDescriptor[]): ProviderRegistry;
|
|
190
|
+
|
|
191
|
+
interface ProviderConnectorDependencies {
|
|
192
|
+
readonly credentials: CredentialProvider;
|
|
193
|
+
readonly transport: ProviderTransport;
|
|
194
|
+
readonly normalizer: ProviderPayloadNormalizer;
|
|
195
|
+
readonly acquisition: AcquisitionPort;
|
|
196
|
+
readonly staging: PrivateStagingPort;
|
|
197
|
+
readonly checkpoints: CheckpointPort;
|
|
198
|
+
}
|
|
199
|
+
declare function createProviderConnector(descriptor: ProviderSourceDescriptor, dependencies: ProviderConnectorDependencies): ProviderConnector;
|
|
200
|
+
|
|
201
|
+
interface FakeConnectorFixture {
|
|
202
|
+
readonly candidate: ProviderAssetCandidate;
|
|
203
|
+
readonly metadata?: Partial<ProviderAssetMetadata>;
|
|
204
|
+
}
|
|
205
|
+
declare function createMemoryCheckpoints(): CheckpointPort;
|
|
206
|
+
declare function createFakeDependencies(providerId: ProviderId, fixture: FakeConnectorFixture): {
|
|
207
|
+
credentials: CredentialProvider;
|
|
208
|
+
transport: ProviderTransport;
|
|
209
|
+
normalizer: ProviderPayloadNormalizer;
|
|
210
|
+
acquisition: AcquisitionPort;
|
|
211
|
+
staging: PrivateStagingPort;
|
|
212
|
+
checkpoints: CheckpointPort;
|
|
213
|
+
};
|
|
214
|
+
declare function fixtureCandidate(providerId: string, assetId: string): ProviderAssetCandidate;
|
|
215
|
+
|
|
216
|
+
export { type AcquiredContent, type AcquisitionPort, type AcquisitionReceipt, type AcquisitionRequest, type AssetIdentifier, CAPABILITIES, type Checkpoint, type CheckpointPort, type CredentialProvider, type CredentialRequest, DEFAULT_PROVIDER_DESCRIPTORS, type DownloadRequest, FEATURE_FLAGS, type FakeConnectorFixture, type PrivateStagingPort, type PrivateStagingRef, type ProviderAssetCandidate, type ProviderAssetMetadata, type ProviderConnector, type ProviderConnectorDependencies, type ProviderCredential, ProviderDisabledError, type ProviderId, type ProviderOperation, type ProviderPayloadNormalizer, type ProviderRegistry, type ProviderSourceDescriptor, type ProviderTransport, type ProviderTransportRequest, type RequestDownloadRequest, type ResolveMetadataRequest, type Revision, type RightsEvidence, type RightsEvidenceState, type RightsPolicyState, type SearchRequest, type SourceReviewState, SourceUnavailableError, SourceValidationError, type SupportedFormat, assertRightsApproved, createFakeDependencies, createMemoryCheckpoints, createProviderConnector, createProviderRegistry, deepFreeze, fixtureCandidate, normalizeCandidate, normalizeMetadata, sanitizeUntrustedText, validateAssetIdentifier, validateChecksum, validateCursor, validateDescriptor, validateIdempotencyKey, validateLimit, validateProviderId, validateQuery, validateRevision, validateSourcePage };
|