@spottoai/types-package 1.0.2-beta.350 → 1.0.2-beta.351
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/dist/common/capabilityPassport.d.ts +119 -0
- package/dist/common/capabilityPassport.d.ts.map +1 -0
- package/dist/common/capabilityPassport.js +219 -0
- package/dist/common/capabilityPassport.js.map +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { ArtifactProvider } from './artifactGeneration.js';
|
|
2
|
+
export declare const CAPABILITY_PASSPORT_SCHEMA_VERSION: 1;
|
|
3
|
+
export type CapabilityPassportSchemaVersion = typeof CAPABILITY_PASSPORT_SCHEMA_VERSION;
|
|
4
|
+
export declare const CAPABILITY_REASON_CODES: readonly ["not-requested", "permission-denied", "not-found", "throttled", "timeout", "pagination-incomplete", "source-partial", "source-empty", "source-unsupported", "retained-last-known-good", "currency-unresolved", "unknown"];
|
|
5
|
+
export type CapabilityReasonCode = (typeof CAPABILITY_REASON_CODES)[number];
|
|
6
|
+
type CapabilityScopeBase<Provider extends ArtifactProvider = ArtifactProvider> = {
|
|
7
|
+
provider: Provider;
|
|
8
|
+
tenantId: string;
|
|
9
|
+
};
|
|
10
|
+
export type CapabilityScopeBinding<Provider extends ArtifactProvider = ArtifactProvider> = (CapabilityScopeBase<Provider> & {
|
|
11
|
+
kind: 'tenant';
|
|
12
|
+
}) | (CapabilityScopeBase<Provider> & {
|
|
13
|
+
kind: 'billing-account';
|
|
14
|
+
billingAccountId: string;
|
|
15
|
+
}) | (CapabilityScopeBase<Provider> & {
|
|
16
|
+
kind: 'customer';
|
|
17
|
+
customerId: string;
|
|
18
|
+
}) | (CapabilityScopeBase<Provider> & {
|
|
19
|
+
kind: 'subscription';
|
|
20
|
+
subscriptionId: string;
|
|
21
|
+
}) | (CapabilityScopeBase<Provider> & {
|
|
22
|
+
kind: 'resource';
|
|
23
|
+
subscriptionId: string;
|
|
24
|
+
normalizedResourceId: string;
|
|
25
|
+
});
|
|
26
|
+
export interface ImmutableSourceGeneration {
|
|
27
|
+
artifactRef: string;
|
|
28
|
+
generationId: string;
|
|
29
|
+
sha256: string;
|
|
30
|
+
schemaVersion: number;
|
|
31
|
+
producedAt: string;
|
|
32
|
+
completeThrough?: string;
|
|
33
|
+
}
|
|
34
|
+
export type CapabilityAttempt = {
|
|
35
|
+
status: 'not-attempted';
|
|
36
|
+
reasonCode: CapabilityReasonCode;
|
|
37
|
+
} | {
|
|
38
|
+
status: 'attempted';
|
|
39
|
+
startedAt: string;
|
|
40
|
+
completedAt: string;
|
|
41
|
+
outcome: 'succeeded' | 'failed' | 'partial';
|
|
42
|
+
reasonCodes: CapabilityReasonCode[];
|
|
43
|
+
};
|
|
44
|
+
export type CapabilityFreshness = {
|
|
45
|
+
status: 'current';
|
|
46
|
+
observedAt: string;
|
|
47
|
+
completeThrough?: string;
|
|
48
|
+
} | {
|
|
49
|
+
status: 'stale';
|
|
50
|
+
observedAt: string;
|
|
51
|
+
completeThrough?: string;
|
|
52
|
+
maximumAge: string;
|
|
53
|
+
} | {
|
|
54
|
+
status: 'unknown';
|
|
55
|
+
};
|
|
56
|
+
export interface CapabilityObservation<Provider extends ArtifactProvider = ArtifactProvider> {
|
|
57
|
+
observationId: string;
|
|
58
|
+
capability: string;
|
|
59
|
+
scope: CapabilityScopeBinding<Provider>;
|
|
60
|
+
attempt: CapabilityAttempt;
|
|
61
|
+
providerSurfaceOutcome: 'accepted' | 'authoritatively-unsupported' | 'unknown';
|
|
62
|
+
availability: 'available' | 'partial' | 'missing' | 'unavailable' | 'unknown';
|
|
63
|
+
emptyEvidence: 'populated' | 'complete-empty' | 'not-observed' | 'unknown';
|
|
64
|
+
freshness: CapabilityFreshness;
|
|
65
|
+
sourceGeneration?: ImmutableSourceGeneration;
|
|
66
|
+
coverageRef?: string;
|
|
67
|
+
limits?: {
|
|
68
|
+
expectedPages?: number;
|
|
69
|
+
receivedPages?: number;
|
|
70
|
+
throttled?: boolean;
|
|
71
|
+
retainedLastKnownGood?: boolean;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export type CapabilityObservationSet<Provider extends ArtifactProvider = ArtifactProvider> = {
|
|
75
|
+
mode: 'inline';
|
|
76
|
+
totalCount: number;
|
|
77
|
+
items: CapabilityObservation<Provider>[];
|
|
78
|
+
} | {
|
|
79
|
+
mode: 'sharded';
|
|
80
|
+
totalCount: number;
|
|
81
|
+
shardCount: number;
|
|
82
|
+
indexRef: string;
|
|
83
|
+
shards: Array<{
|
|
84
|
+
artifactRef: string;
|
|
85
|
+
sha256: string;
|
|
86
|
+
itemCount: number;
|
|
87
|
+
}>;
|
|
88
|
+
};
|
|
89
|
+
export type CapabilityAgreementType = 'EA' | 'MCA' | 'CSP' | 'PAYG-MOSP' | 'sponsored-trial' | 'unknown';
|
|
90
|
+
export interface CapabilityPassport<Provider extends ArtifactProvider = ArtifactProvider> {
|
|
91
|
+
schemaVersion: CapabilityPassportSchemaVersion;
|
|
92
|
+
passportId: string;
|
|
93
|
+
generatedAt: string;
|
|
94
|
+
runId: string;
|
|
95
|
+
ownership: {
|
|
96
|
+
provider: Provider;
|
|
97
|
+
tenantId: string;
|
|
98
|
+
companyId: string;
|
|
99
|
+
cloudAccountId: string;
|
|
100
|
+
accountId: string;
|
|
101
|
+
subscriptionId: string;
|
|
102
|
+
ownershipEpochRevision?: number;
|
|
103
|
+
};
|
|
104
|
+
agreementObservation: {
|
|
105
|
+
type: CapabilityAgreementType;
|
|
106
|
+
source: 'observed' | 'configured' | 'unknown';
|
|
107
|
+
sourceGeneration?: ImmutableSourceGeneration;
|
|
108
|
+
};
|
|
109
|
+
observations: CapabilityObservationSet<Provider>;
|
|
110
|
+
producerVersions: Record<string, string>;
|
|
111
|
+
issues: Array<{
|
|
112
|
+
reasonCode: CapabilityReasonCode;
|
|
113
|
+
observationId?: string;
|
|
114
|
+
}>;
|
|
115
|
+
}
|
|
116
|
+
/** Dependency-free runtime rejection boundary for Capability Passport schema v1. */
|
|
117
|
+
export declare const isCapabilityPassport: (value: unknown) => value is CapabilityPassport;
|
|
118
|
+
export {};
|
|
119
|
+
//# sourceMappingURL=capabilityPassport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilityPassport.d.ts","sourceRoot":"","sources":["../../src/common/capabilityPassport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCapabilityPassport = exports.CAPABILITY_REASON_CODES = exports.CAPABILITY_PASSPORT_SCHEMA_VERSION = void 0;
|
|
4
|
+
exports.CAPABILITY_PASSPORT_SCHEMA_VERSION = 1;
|
|
5
|
+
exports.CAPABILITY_REASON_CODES = [
|
|
6
|
+
'not-requested',
|
|
7
|
+
'permission-denied',
|
|
8
|
+
'not-found',
|
|
9
|
+
'throttled',
|
|
10
|
+
'timeout',
|
|
11
|
+
'pagination-incomplete',
|
|
12
|
+
'source-partial',
|
|
13
|
+
'source-empty',
|
|
14
|
+
'source-unsupported',
|
|
15
|
+
'retained-last-known-good',
|
|
16
|
+
'currency-unresolved',
|
|
17
|
+
'unknown',
|
|
18
|
+
];
|
|
19
|
+
const REASON_CODES = new Set(exports.CAPABILITY_REASON_CODES);
|
|
20
|
+
const PROVIDERS = new Set(['azure', 'aws']);
|
|
21
|
+
const AGREEMENT_TYPES = new Set(['EA', 'MCA', 'CSP', 'PAYG-MOSP', 'sponsored-trial', 'unknown']);
|
|
22
|
+
const AGREEMENT_SOURCES = new Set(['observed', 'configured', 'unknown']);
|
|
23
|
+
const AVAILABILITY_VALUES = new Set(['available', 'partial', 'missing', 'unavailable', 'unknown']);
|
|
24
|
+
const EMPTY_EVIDENCE_VALUES = new Set(['populated', 'complete-empty', 'not-observed', 'unknown']);
|
|
25
|
+
const PROVIDER_OUTCOMES = new Set(['accepted', 'authoritatively-unsupported', 'unknown']);
|
|
26
|
+
const ATTEMPT_OUTCOMES = new Set(['succeeded', 'failed', 'partial']);
|
|
27
|
+
const SHA256_PATTERN = /^[a-f0-9]{64}$/;
|
|
28
|
+
const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
29
|
+
const isNonEmptyString = (value) => typeof value === 'string' && value.trim().length > 0;
|
|
30
|
+
const isNonNegativeInteger = (value) => Number.isInteger(value) && value >= 0;
|
|
31
|
+
const isPositiveInteger = (value) => Number.isInteger(value) && value > 0;
|
|
32
|
+
const isCanonicalIsoTimestamp = (value) => {
|
|
33
|
+
if (!isNonEmptyString(value))
|
|
34
|
+
return false;
|
|
35
|
+
const timestamp = Date.parse(value);
|
|
36
|
+
return Number.isFinite(timestamp) && new Date(timestamp).toISOString() === value;
|
|
37
|
+
};
|
|
38
|
+
const isLogicalArtifactRef = (value) => {
|
|
39
|
+
if (!isNonEmptyString(value) || value.startsWith('/') || value.includes('://') || value.includes('?') || value.includes('#'))
|
|
40
|
+
return false;
|
|
41
|
+
if (value.includes('\\'))
|
|
42
|
+
return false;
|
|
43
|
+
const segments = value.split('/');
|
|
44
|
+
return segments.length >= 2 && segments.every(segment => segment.length > 0 && segment !== '.' && segment !== '..');
|
|
45
|
+
};
|
|
46
|
+
const isSubscriptionBoundResourceId = (value, subscriptionId) => {
|
|
47
|
+
if (!isNonEmptyString(value))
|
|
48
|
+
return false;
|
|
49
|
+
const segments = value.split('/');
|
|
50
|
+
return (segments.length >= 4 &&
|
|
51
|
+
segments[0] === '' &&
|
|
52
|
+
segments[1]?.toLowerCase() === 'subscriptions' &&
|
|
53
|
+
segments[2]?.toLowerCase() === subscriptionId.toLowerCase());
|
|
54
|
+
};
|
|
55
|
+
const isReasonCode = (value) => typeof value === 'string' && REASON_CODES.has(value);
|
|
56
|
+
const isImmutableSourceGeneration = (value) => {
|
|
57
|
+
if (!isRecord(value))
|
|
58
|
+
return false;
|
|
59
|
+
if (!isLogicalArtifactRef(value.artifactRef) ||
|
|
60
|
+
!isNonEmptyString(value.generationId) ||
|
|
61
|
+
typeof value.sha256 !== 'string' ||
|
|
62
|
+
!SHA256_PATTERN.test(value.sha256) ||
|
|
63
|
+
!isPositiveInteger(value.schemaVersion) ||
|
|
64
|
+
!isCanonicalIsoTimestamp(value.producedAt)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return value.completeThrough === undefined || isCanonicalIsoTimestamp(value.completeThrough);
|
|
68
|
+
};
|
|
69
|
+
const isScopeBinding = (value, ownership) => {
|
|
70
|
+
if (!isRecord(value) || value.provider !== ownership.provider || value.tenantId !== ownership.tenantId)
|
|
71
|
+
return false;
|
|
72
|
+
if (value.kind === 'tenant')
|
|
73
|
+
return true;
|
|
74
|
+
if (value.kind === 'billing-account')
|
|
75
|
+
return isNonEmptyString(value.billingAccountId);
|
|
76
|
+
if (value.kind === 'customer')
|
|
77
|
+
return isNonEmptyString(value.customerId);
|
|
78
|
+
if (value.kind === 'subscription')
|
|
79
|
+
return value.subscriptionId === ownership.subscriptionId;
|
|
80
|
+
return (value.kind === 'resource' &&
|
|
81
|
+
value.subscriptionId === ownership.subscriptionId &&
|
|
82
|
+
isSubscriptionBoundResourceId(value.normalizedResourceId, ownership.subscriptionId));
|
|
83
|
+
};
|
|
84
|
+
const isAttempt = (value) => {
|
|
85
|
+
if (!isRecord(value))
|
|
86
|
+
return false;
|
|
87
|
+
if (value.status === 'not-attempted')
|
|
88
|
+
return isReasonCode(value.reasonCode);
|
|
89
|
+
if (value.status !== 'attempted' || !isCanonicalIsoTimestamp(value.startedAt) || !isCanonicalIsoTimestamp(value.completedAt))
|
|
90
|
+
return false;
|
|
91
|
+
if (Date.parse(value.completedAt) < Date.parse(value.startedAt) || typeof value.outcome !== 'string' || !ATTEMPT_OUTCOMES.has(value.outcome)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return Array.isArray(value.reasonCodes) && value.reasonCodes.every(isReasonCode);
|
|
95
|
+
};
|
|
96
|
+
const isFreshness = (value) => {
|
|
97
|
+
if (!isRecord(value))
|
|
98
|
+
return false;
|
|
99
|
+
if (value.status === 'unknown')
|
|
100
|
+
return true;
|
|
101
|
+
if ((value.status !== 'current' && value.status !== 'stale') || !isCanonicalIsoTimestamp(value.observedAt))
|
|
102
|
+
return false;
|
|
103
|
+
if (value.completeThrough !== undefined && !isCanonicalIsoTimestamp(value.completeThrough))
|
|
104
|
+
return false;
|
|
105
|
+
return value.status !== 'stale' || isNonEmptyString(value.maximumAge);
|
|
106
|
+
};
|
|
107
|
+
const isObservation = (value, ownership) => {
|
|
108
|
+
if (!isRecord(value))
|
|
109
|
+
return false;
|
|
110
|
+
if (!isNonEmptyString(value.observationId) || !isNonEmptyString(value.capability) || !isScopeBinding(value.scope, ownership))
|
|
111
|
+
return false;
|
|
112
|
+
if (!isAttempt(value.attempt) || typeof value.providerSurfaceOutcome !== 'string' || !PROVIDER_OUTCOMES.has(value.providerSurfaceOutcome)) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
if (typeof value.availability !== 'string' || !AVAILABILITY_VALUES.has(value.availability))
|
|
116
|
+
return false;
|
|
117
|
+
if (typeof value.emptyEvidence !== 'string' || !EMPTY_EVIDENCE_VALUES.has(value.emptyEvidence) || !isFreshness(value.freshness))
|
|
118
|
+
return false;
|
|
119
|
+
if (value.sourceGeneration !== undefined && !isImmutableSourceGeneration(value.sourceGeneration))
|
|
120
|
+
return false;
|
|
121
|
+
if (value.coverageRef !== undefined && !isLogicalArtifactRef(value.coverageRef))
|
|
122
|
+
return false;
|
|
123
|
+
if (value.emptyEvidence === 'complete-empty') {
|
|
124
|
+
if (value.availability !== 'available' || value.attempt.status !== 'attempted' || value.attempt.outcome !== 'succeeded')
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
if (value.limits !== undefined) {
|
|
128
|
+
if (!isRecord(value.limits))
|
|
129
|
+
return false;
|
|
130
|
+
if (value.limits.expectedPages !== undefined && !isNonNegativeInteger(value.limits.expectedPages))
|
|
131
|
+
return false;
|
|
132
|
+
if (value.limits.receivedPages !== undefined && !isNonNegativeInteger(value.limits.receivedPages))
|
|
133
|
+
return false;
|
|
134
|
+
if (value.limits.throttled !== undefined && typeof value.limits.throttled !== 'boolean')
|
|
135
|
+
return false;
|
|
136
|
+
if (value.limits.retainedLastKnownGood !== undefined && typeof value.limits.retainedLastKnownGood !== 'boolean')
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
};
|
|
141
|
+
const isOwnership = (value) => isRecord(value) &&
|
|
142
|
+
typeof value.provider === 'string' &&
|
|
143
|
+
PROVIDERS.has(value.provider) &&
|
|
144
|
+
isNonEmptyString(value.tenantId) &&
|
|
145
|
+
isNonEmptyString(value.companyId) &&
|
|
146
|
+
isNonEmptyString(value.cloudAccountId) &&
|
|
147
|
+
isNonEmptyString(value.accountId) &&
|
|
148
|
+
isNonEmptyString(value.subscriptionId) &&
|
|
149
|
+
(value.ownershipEpochRevision === undefined || isPositiveInteger(value.ownershipEpochRevision));
|
|
150
|
+
const isObservationSet = (value, ownership) => {
|
|
151
|
+
if (!isRecord(value) || !isNonNegativeInteger(value.totalCount))
|
|
152
|
+
return false;
|
|
153
|
+
if (value.mode === 'inline') {
|
|
154
|
+
if (!Array.isArray(value.items) || value.items.length !== value.totalCount || !value.items.every(item => isObservation(item, ownership))) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
const observationIds = value.items.map(item => item.observationId);
|
|
158
|
+
return new Set(observationIds).size === observationIds.length;
|
|
159
|
+
}
|
|
160
|
+
if (value.mode !== 'sharded' ||
|
|
161
|
+
!isNonNegativeInteger(value.shardCount) ||
|
|
162
|
+
!isLogicalArtifactRef(value.indexRef) ||
|
|
163
|
+
!Array.isArray(value.shards) ||
|
|
164
|
+
value.shards.length !== value.shardCount) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
let total = 0;
|
|
168
|
+
const refs = new Set();
|
|
169
|
+
for (const shard of value.shards) {
|
|
170
|
+
if (!isRecord(shard) ||
|
|
171
|
+
!isLogicalArtifactRef(shard.artifactRef) ||
|
|
172
|
+
typeof shard.sha256 !== 'string' ||
|
|
173
|
+
!SHA256_PATTERN.test(shard.sha256) ||
|
|
174
|
+
!isPositiveInteger(shard.itemCount) ||
|
|
175
|
+
refs.has(shard.artifactRef)) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
refs.add(shard.artifactRef);
|
|
179
|
+
total += shard.itemCount;
|
|
180
|
+
}
|
|
181
|
+
return total === value.totalCount;
|
|
182
|
+
};
|
|
183
|
+
/** Dependency-free runtime rejection boundary for Capability Passport schema v1. */
|
|
184
|
+
const isCapabilityPassport = (value) => {
|
|
185
|
+
if (!isRecord(value) || value.schemaVersion !== exports.CAPABILITY_PASSPORT_SCHEMA_VERSION)
|
|
186
|
+
return false;
|
|
187
|
+
if (!isNonEmptyString(value.passportId) || !isNonEmptyString(value.runId) || !isCanonicalIsoTimestamp(value.generatedAt))
|
|
188
|
+
return false;
|
|
189
|
+
if (!isOwnership(value.ownership))
|
|
190
|
+
return false;
|
|
191
|
+
if (!isRecord(value.agreementObservation))
|
|
192
|
+
return false;
|
|
193
|
+
if (typeof value.agreementObservation.type !== 'string' ||
|
|
194
|
+
!AGREEMENT_TYPES.has(value.agreementObservation.type) ||
|
|
195
|
+
typeof value.agreementObservation.source !== 'string' ||
|
|
196
|
+
!AGREEMENT_SOURCES.has(value.agreementObservation.source) ||
|
|
197
|
+
(value.agreementObservation.sourceGeneration !== undefined && !isImmutableSourceGeneration(value.agreementObservation.sourceGeneration))) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
if (!isObservationSet(value.observations, value.ownership))
|
|
201
|
+
return false;
|
|
202
|
+
if (!isRecord(value.producerVersions) || Object.keys(value.producerVersions).length === 0)
|
|
203
|
+
return false;
|
|
204
|
+
if (!Object.entries(value.producerVersions).every(([name, version]) => isNonEmptyString(name) && isNonEmptyString(version)))
|
|
205
|
+
return false;
|
|
206
|
+
if (!Array.isArray(value.issues) ||
|
|
207
|
+
!value.issues.every(issue => isRecord(issue) && isReasonCode(issue.reasonCode) && (issue.observationId === undefined || isNonEmptyString(issue.observationId)))) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
if (value.observations.mode === 'inline') {
|
|
211
|
+
const observationIds = new Set(value.observations.items.map(item => item.observationId));
|
|
212
|
+
if (!value.issues.every(issue => issue.observationId === undefined || (isNonEmptyString(issue.observationId) && observationIds.has(issue.observationId)))) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return true;
|
|
217
|
+
};
|
|
218
|
+
exports.isCapabilityPassport = isCapabilityPassport;
|
|
219
|
+
//# sourceMappingURL=capabilityPassport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilityPassport.js","sourceRoot":"","sources":["../../src/common/capabilityPassport.ts"],"names":[],"mappings":"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"}
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
package/dist/common/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./artifactGeneration"), exports);
|
|
18
|
+
__exportStar(require("./capabilityPassport"), exports);
|
|
18
19
|
__exportStar(require("./pagination"), exports);
|
|
19
20
|
__exportStar(require("./provider"), exports);
|
|
20
21
|
__exportStar(require("./providerSyncProgress"), exports);
|
package/dist/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,+CAA6B;AAC7B,6CAA2B;AAC3B,yDAAuC;AACvC,kDAAgC;AAChC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,+CAA6B;AAC7B,6CAA2B;AAC3B,yDAAuC;AACvC,kDAAgC;AAChC,iDAA+B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spottoai/types-package",
|
|
3
|
-
"version": "1.0.2-beta.
|
|
3
|
+
"version": "1.0.2-beta.351",
|
|
4
4
|
"description": "Shared TypeScript interfaces for SpottoAI",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,9 +37,10 @@
|
|
|
37
37
|
"check:portal-public-artifacts": "node scripts/check-portal-public-artifacts.mjs",
|
|
38
38
|
"check:relationship-public-artifacts": "node scripts/check-relationship-public-artifacts.mjs",
|
|
39
39
|
"check:azure-view-set-contracts": "node scripts/check-azure-view-set-contracts.mjs",
|
|
40
|
+
"check:capability-passport-contracts": "node scripts/check-capability-passport-contracts.mjs",
|
|
40
41
|
"check:commitments-planning": "node scripts/check-commitments-planning.mjs",
|
|
41
42
|
"prepublishOnly": "npm run clean && npm run build && npm test",
|
|
42
|
-
"test": "npm run build && npm run check:aws-examples && npm run check:plugin-public-artifacts && npm run check:portal-public-artifacts && npm run check:relationship-public-artifacts && npm run check:azure-view-set-contracts && npm run check:commitments-planning && npm run check:packed-exports",
|
|
43
|
+
"test": "npm run build && npm run check:aws-examples && npm run check:plugin-public-artifacts && npm run check:portal-public-artifacts && npm run check:relationship-public-artifacts && npm run check:azure-view-set-contracts && npm run check:capability-passport-contracts && npm run check:commitments-planning && npm run check:packed-exports",
|
|
43
44
|
"lint": "eslint src --ext .ts",
|
|
44
45
|
"lint:fix": "eslint src --ext .ts --fix",
|
|
45
46
|
"format": "prettier --write \"src/**/*.{ts,js,json}\"",
|