@apexops/contracts 0.10.0-next.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/dist/.tsbuildinfo +1 -0
- package/dist/artifacts.d.ts +60 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +46 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/common.d.ts +22 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +23 -0
- package/dist/common.js.map +1 -0
- package/dist/deployment.d.ts +100 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +108 -0
- package/dist/deployment.js.map +1 -0
- package/dist/evidence.d.ts +256 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +382 -0
- package/dist/evidence.js.map +1 -0
- package/dist/export-schemas.d.ts +2 -0
- package/dist/export-schemas.d.ts.map +1 -0
- package/dist/export-schemas.js +53 -0
- package/dist/export-schemas.js.map +1 -0
- package/dist/improvement.d.ts +92 -0
- package/dist/improvement.d.ts.map +1 -0
- package/dist/improvement.js +119 -0
- package/dist/improvement.js.map +1 -0
- package/dist/index.d.ts +983 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/dist/onboarding.d.ts +15 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +17 -0
- package/dist/onboarding.js.map +1 -0
- package/dist/pricing.d.ts +130 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +355 -0
- package/dist/pricing.js.map +1 -0
- package/dist/runtime.d.ts +284 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +196 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema-export.d.ts +15 -0
- package/dist/schema-export.d.ts.map +1 -0
- package/dist/schema-export.js +49 -0
- package/dist/schema-export.js.map +1 -0
- package/dist/targets.d.ts +359 -0
- package/dist/targets.d.ts.map +1 -0
- package/dist/targets.js +394 -0
- package/dist/targets.js.map +1 -0
- package/dist/test/contracts.test.d.ts +2 -0
- package/dist/test/contracts.test.d.ts.map +1 -0
- package/dist/test/contracts.test.js +867 -0
- package/dist/test/contracts.test.js.map +1 -0
- package/package.json +45 -0
- package/schemas/approval-evidence-v1.schema.json +172 -0
- package/schemas/architecture-availability-v1.schema.json +155 -0
- package/schemas/architecture-v1.schema.json +107 -0
- package/schemas/capability-pack-manifest-v1.schema.json +59 -0
- package/schemas/client-outcome-comparison-v1.schema.json +195 -0
- package/schemas/client-outcome-qualification-v1.schema.json +190 -0
- package/schemas/client-outcome-v1.schema.json +513 -0
- package/schemas/contract-metadata.json +232 -0
- package/schemas/cost-estimate-v1.schema.json +165 -0
- package/schemas/customization-lock-v1.schema.json +63 -0
- package/schemas/deployment-preview-v1.schema.json +180 -0
- package/schemas/diagnosis-v1.schema.json +111 -0
- package/schemas/environment-inputs-v1.schema.json +106 -0
- package/schemas/event-v1.schema.json +74 -0
- package/schemas/evidence-manifest-v1.schema.json +111 -0
- package/schemas/execution-plan-attestation-v1.schema.json +145 -0
- package/schemas/governance-constraints-v1.schema.json +103 -0
- package/schemas/iac-binding-v1.schema.json +74 -0
- package/schemas/iac-handoff-v1.schema.json +83 -0
- package/schemas/implementation-intent-v1.schema.json +89 -0
- package/schemas/improvement-decision-v1.schema.json +62 -0
- package/schemas/improvement-observation-v1.schema.json +166 -0
- package/schemas/improvement-policy-v1.schema.json +204 -0
- package/schemas/improvement-proposal-v1.schema.json +144 -0
- package/schemas/improvement-recurrence-v1.schema.json +130 -0
- package/schemas/input-request-v1.schema.json +242 -0
- package/schemas/input-submission-v1.schema.json +205 -0
- package/schemas/live-qualification-v1.schema.json +295 -0
- package/schemas/logical-resource-manifest-v1.schema.json +123 -0
- package/schemas/onboarding-config-v1.schema.json +59 -0
- package/schemas/operation-record-v1.schema.json +112 -0
- package/schemas/policy-property-map-v1.schema.json +108 -0
- package/schemas/pricing-evidence-v1.schema.json +628 -0
- package/schemas/pricing-request-v1.schema.json +424 -0
- package/schemas/project-config-v1.schema.json +43 -0
- package/schemas/quality-measurements-v1.schema.json +54 -0
- package/schemas/quality-report-v1.schema.json +114 -0
- package/schemas/quality-scorecard-v1.schema.json +109 -0
- package/schemas/requirements-v1.schema.json +108 -0
- package/schemas/resource-inventory-v1.schema.json +74 -0
- package/schemas/review-findings-v1.schema.json +126 -0
- package/schemas/run-config-v1.schema.json +133 -0
- package/schemas/runtime-bundle-lock-v1.schema.json +59 -0
- package/schemas/scenario-v1.schema.json +55 -0
- package/schemas/task-envelope-v1.schema.json +122 -0
- package/schemas/telemetry-v1.schema.json +117 -0
- package/schemas/workload-decision-manifest-v1.schema.json +320 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { type Static } from "@sinclair/typebox";
|
|
2
|
+
export declare const RuntimeBundleLockV1Schema: import("@sinclair/typebox").TObject<{
|
|
3
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
4
|
+
cliVersion: import("@sinclair/typebox").TString;
|
|
5
|
+
customizationVersion: import("@sinclair/typebox").TString;
|
|
6
|
+
workflowHash: import("@sinclair/typebox").TString;
|
|
7
|
+
defaultsHash: import("@sinclair/typebox").TString;
|
|
8
|
+
validatorHash: import("@sinclair/typebox").TString;
|
|
9
|
+
qualityScorecardHash: import("@sinclair/typebox").TString;
|
|
10
|
+
improvementPolicyHash: import("@sinclair/typebox").TString;
|
|
11
|
+
requiredCapabilityPacks: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const ProjectConfigV1Schema: import("@sinclair/typebox").TObject<{
|
|
14
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
15
|
+
projectId: import("@sinclair/typebox").TString;
|
|
16
|
+
displayName: import("@sinclair/typebox").TString;
|
|
17
|
+
createdAt: import("@sinclair/typebox").TString;
|
|
18
|
+
defaultIacTool: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep">, import("@sinclair/typebox").TLiteral<"terraform">]>;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const GateStateSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"closed">, import("@sinclair/typebox").TLiteral<"open">, import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"rejected">, import("@sinclair/typebox").TLiteral<"invalidated">]>;
|
|
21
|
+
export declare const GateRecordV1Schema: import("@sinclair/typebox").TObject<{
|
|
22
|
+
gate: import("@sinclair/typebox").TInteger;
|
|
23
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"closed">, import("@sinclair/typebox").TLiteral<"open">, import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"rejected">, import("@sinclair/typebox").TLiteral<"invalidated">]>;
|
|
24
|
+
dependencyHash: import("@sinclair/typebox").TString;
|
|
25
|
+
decidedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
26
|
+
inheritedFromRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
27
|
+
reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
28
|
+
}>;
|
|
29
|
+
export declare const RunConfigV1Schema: import("@sinclair/typebox").TObject<{
|
|
30
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
31
|
+
projectId: import("@sinclair/typebox").TString;
|
|
32
|
+
runId: import("@sinclair/typebox").TString;
|
|
33
|
+
environment: import("@sinclair/typebox").TString;
|
|
34
|
+
targetScope: import("@sinclair/typebox").TString;
|
|
35
|
+
iacTool: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep">, import("@sinclair/typebox").TLiteral<"terraform">]>;
|
|
36
|
+
createdAt: import("@sinclair/typebox").TString;
|
|
37
|
+
runtimeLockHash: import("@sinclair/typebox").TString;
|
|
38
|
+
parentRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
39
|
+
ownerEpoch: import("@sinclair/typebox").TInteger;
|
|
40
|
+
gates: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
41
|
+
gate: import("@sinclair/typebox").TInteger;
|
|
42
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"closed">, import("@sinclair/typebox").TLiteral<"open">, import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"rejected">, import("@sinclair/typebox").TLiteral<"invalidated">]>;
|
|
43
|
+
dependencyHash: import("@sinclair/typebox").TString;
|
|
44
|
+
decidedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
45
|
+
inheritedFromRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
46
|
+
reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
47
|
+
}>>;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const CapabilityGrantV1Schema: import("@sinclair/typebox").TObject<{
|
|
50
|
+
capability: import("@sinclair/typebox").TString;
|
|
51
|
+
sideEffect: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"local">, import("@sinclair/typebox").TLiteral<"remote">]>;
|
|
52
|
+
expiresAt: import("@sinclair/typebox").TString;
|
|
53
|
+
}>;
|
|
54
|
+
export declare const TaskEnvelopeV1Schema: import("@sinclair/typebox").TObject<{
|
|
55
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
56
|
+
projectId: import("@sinclair/typebox").TString;
|
|
57
|
+
runId: import("@sinclair/typebox").TString;
|
|
58
|
+
taskId: import("@sinclair/typebox").TString;
|
|
59
|
+
role: import("@sinclair/typebox").TString;
|
|
60
|
+
taskType: import("@sinclair/typebox").TString;
|
|
61
|
+
expectedHead: import("@sinclair/typebox").TString;
|
|
62
|
+
ownerEpoch: import("@sinclair/typebox").TInteger;
|
|
63
|
+
createdAt: import("@sinclair/typebox").TString;
|
|
64
|
+
expiresAt: import("@sinclair/typebox").TString;
|
|
65
|
+
inputRefs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
66
|
+
allowedOutputKinds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
67
|
+
capabilityGrants: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
68
|
+
capability: import("@sinclair/typebox").TString;
|
|
69
|
+
sideEffect: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"local">, import("@sinclair/typebox").TLiteral<"remote">]>;
|
|
70
|
+
expiresAt: import("@sinclair/typebox").TString;
|
|
71
|
+
}>>;
|
|
72
|
+
maxOutputBytes: import("@sinclair/typebox").TInteger;
|
|
73
|
+
}>;
|
|
74
|
+
export declare const QuestionV1Schema: import("@sinclair/typebox").TObject<{
|
|
75
|
+
id: import("@sinclair/typebox").TString;
|
|
76
|
+
prompt: import("@sinclair/typebox").TString;
|
|
77
|
+
options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
78
|
+
multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
79
|
+
valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
|
|
80
|
+
}>;
|
|
81
|
+
export declare const DeferredInputValueV1Schema: import("@sinclair/typebox").TObject<{
|
|
82
|
+
kind: import("@sinclair/typebox").TLiteral<"deferred">;
|
|
83
|
+
owner: import("@sinclair/typebox").TString;
|
|
84
|
+
}>;
|
|
85
|
+
export declare const UnknownInputValueV1Schema: import("@sinclair/typebox").TObject<{
|
|
86
|
+
kind: import("@sinclair/typebox").TLiteral<"unknown">;
|
|
87
|
+
}>;
|
|
88
|
+
export declare const BudgetInputValueV1Schema: import("@sinclair/typebox").TObject<{
|
|
89
|
+
kind: import("@sinclair/typebox").TLiteral<"budget">;
|
|
90
|
+
amount: import("@sinclair/typebox").TNumber;
|
|
91
|
+
currency: import("@sinclair/typebox").TString;
|
|
92
|
+
cadence: import("@sinclair/typebox").TLiteral<"monthly">;
|
|
93
|
+
}>;
|
|
94
|
+
export declare const RecoveryInputValueV1Schema: import("@sinclair/typebox").TObject<{
|
|
95
|
+
kind: import("@sinclair/typebox").TLiteral<"recovery">;
|
|
96
|
+
rtoMinutes: import("@sinclair/typebox").TInteger;
|
|
97
|
+
rpoMinutes: import("@sinclair/typebox").TInteger;
|
|
98
|
+
}>;
|
|
99
|
+
export declare const ClassificationInputValueV1Schema: import("@sinclair/typebox").TObject<{
|
|
100
|
+
kind: import("@sinclair/typebox").TLiteral<"data-classification">;
|
|
101
|
+
classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
|
|
102
|
+
}>;
|
|
103
|
+
export declare const ComplianceInputValueV1Schema: import("@sinclair/typebox").TObject<{
|
|
104
|
+
kind: import("@sinclair/typebox").TLiteral<"compliance">;
|
|
105
|
+
scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
106
|
+
}>;
|
|
107
|
+
export declare const InputValueV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TObject<{
|
|
108
|
+
kind: import("@sinclair/typebox").TLiteral<"deferred">;
|
|
109
|
+
owner: import("@sinclair/typebox").TString;
|
|
110
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
111
|
+
kind: import("@sinclair/typebox").TLiteral<"unknown">;
|
|
112
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
113
|
+
kind: import("@sinclair/typebox").TLiteral<"budget">;
|
|
114
|
+
amount: import("@sinclair/typebox").TNumber;
|
|
115
|
+
currency: import("@sinclair/typebox").TString;
|
|
116
|
+
cadence: import("@sinclair/typebox").TLiteral<"monthly">;
|
|
117
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
118
|
+
kind: import("@sinclair/typebox").TLiteral<"recovery">;
|
|
119
|
+
rtoMinutes: import("@sinclair/typebox").TInteger;
|
|
120
|
+
rpoMinutes: import("@sinclair/typebox").TInteger;
|
|
121
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
122
|
+
kind: import("@sinclair/typebox").TLiteral<"data-classification">;
|
|
123
|
+
classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
|
|
124
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
125
|
+
kind: import("@sinclair/typebox").TLiteral<"compliance">;
|
|
126
|
+
scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
127
|
+
}>]>;
|
|
128
|
+
export declare const RequirementsIntakeRoundV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"business-discovery">, import("@sinclair/typebox").TLiteral<"workload-pattern">, import("@sinclair/typebox").TLiteral<"service-preferences">, import("@sinclair/typebox").TLiteral<"security-compliance">]>;
|
|
129
|
+
export declare const RequirementsIntakeV1Schema: import("@sinclair/typebox").TObject<{
|
|
130
|
+
round: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"business-discovery">, import("@sinclair/typebox").TLiteral<"workload-pattern">, import("@sinclair/typebox").TLiteral<"service-preferences">, import("@sinclair/typebox").TLiteral<"security-compliance">]>;
|
|
131
|
+
ordinal: import("@sinclair/typebox").TInteger;
|
|
132
|
+
total: import("@sinclair/typebox").TLiteral<4>;
|
|
133
|
+
}>;
|
|
134
|
+
export declare const ArchitectureDecisionV1Schema: import("@sinclair/typebox").TObject<{
|
|
135
|
+
taskId: import("@sinclair/typebox").TString;
|
|
136
|
+
id: import("@sinclair/typebox").TString;
|
|
137
|
+
}>;
|
|
138
|
+
export declare const InputRequestV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
139
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
140
|
+
requestId: import("@sinclair/typebox").TString;
|
|
141
|
+
expectedHead: import("@sinclair/typebox").TString;
|
|
142
|
+
ownerEpoch: import("@sinclair/typebox").TInteger;
|
|
143
|
+
questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
144
|
+
id: import("@sinclair/typebox").TString;
|
|
145
|
+
prompt: import("@sinclair/typebox").TString;
|
|
146
|
+
options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
147
|
+
multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
148
|
+
valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
|
|
149
|
+
}>>;
|
|
150
|
+
intake: import("@sinclair/typebox").TObject<{
|
|
151
|
+
round: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"business-discovery">, import("@sinclair/typebox").TLiteral<"workload-pattern">, import("@sinclair/typebox").TLiteral<"service-preferences">, import("@sinclair/typebox").TLiteral<"security-compliance">]>;
|
|
152
|
+
ordinal: import("@sinclair/typebox").TInteger;
|
|
153
|
+
total: import("@sinclair/typebox").TLiteral<4>;
|
|
154
|
+
}>;
|
|
155
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
156
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
157
|
+
requestId: import("@sinclair/typebox").TString;
|
|
158
|
+
expectedHead: import("@sinclair/typebox").TString;
|
|
159
|
+
ownerEpoch: import("@sinclair/typebox").TInteger;
|
|
160
|
+
questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
161
|
+
id: import("@sinclair/typebox").TString;
|
|
162
|
+
prompt: import("@sinclair/typebox").TString;
|
|
163
|
+
options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
164
|
+
multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
165
|
+
valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
|
|
166
|
+
}>>;
|
|
167
|
+
decision: import("@sinclair/typebox").TObject<{
|
|
168
|
+
taskId: import("@sinclair/typebox").TString;
|
|
169
|
+
id: import("@sinclair/typebox").TString;
|
|
170
|
+
}>;
|
|
171
|
+
}>]>;
|
|
172
|
+
export declare const InputAnswerV1Schema: import("@sinclair/typebox").TObject<{
|
|
173
|
+
questionId: import("@sinclair/typebox").TString;
|
|
174
|
+
value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TObject<{
|
|
175
|
+
kind: import("@sinclair/typebox").TLiteral<"deferred">;
|
|
176
|
+
owner: import("@sinclair/typebox").TString;
|
|
177
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
178
|
+
kind: import("@sinclair/typebox").TLiteral<"unknown">;
|
|
179
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
180
|
+
kind: import("@sinclair/typebox").TLiteral<"budget">;
|
|
181
|
+
amount: import("@sinclair/typebox").TNumber;
|
|
182
|
+
currency: import("@sinclair/typebox").TString;
|
|
183
|
+
cadence: import("@sinclair/typebox").TLiteral<"monthly">;
|
|
184
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
185
|
+
kind: import("@sinclair/typebox").TLiteral<"recovery">;
|
|
186
|
+
rtoMinutes: import("@sinclair/typebox").TInteger;
|
|
187
|
+
rpoMinutes: import("@sinclair/typebox").TInteger;
|
|
188
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
189
|
+
kind: import("@sinclair/typebox").TLiteral<"data-classification">;
|
|
190
|
+
classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
|
|
191
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
192
|
+
kind: import("@sinclair/typebox").TLiteral<"compliance">;
|
|
193
|
+
scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
194
|
+
}>]>;
|
|
195
|
+
}>;
|
|
196
|
+
export declare const InputSubmissionV1Schema: import("@sinclair/typebox").TObject<{
|
|
197
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
198
|
+
requestId: import("@sinclair/typebox").TString;
|
|
199
|
+
expectedHead: import("@sinclair/typebox").TString;
|
|
200
|
+
ownerEpoch: import("@sinclair/typebox").TInteger;
|
|
201
|
+
answers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
202
|
+
questionId: import("@sinclair/typebox").TString;
|
|
203
|
+
value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TObject<{
|
|
204
|
+
kind: import("@sinclair/typebox").TLiteral<"deferred">;
|
|
205
|
+
owner: import("@sinclair/typebox").TString;
|
|
206
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
207
|
+
kind: import("@sinclair/typebox").TLiteral<"unknown">;
|
|
208
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
209
|
+
kind: import("@sinclair/typebox").TLiteral<"budget">;
|
|
210
|
+
amount: import("@sinclair/typebox").TNumber;
|
|
211
|
+
currency: import("@sinclair/typebox").TString;
|
|
212
|
+
cadence: import("@sinclair/typebox").TLiteral<"monthly">;
|
|
213
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
214
|
+
kind: import("@sinclair/typebox").TLiteral<"recovery">;
|
|
215
|
+
rtoMinutes: import("@sinclair/typebox").TInteger;
|
|
216
|
+
rpoMinutes: import("@sinclair/typebox").TInteger;
|
|
217
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
218
|
+
kind: import("@sinclair/typebox").TLiteral<"data-classification">;
|
|
219
|
+
classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
|
|
220
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
221
|
+
kind: import("@sinclair/typebox").TLiteral<"compliance">;
|
|
222
|
+
scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
223
|
+
}>]>;
|
|
224
|
+
}>>;
|
|
225
|
+
}>;
|
|
226
|
+
export declare const TaskResultV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
227
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
228
|
+
taskId: import("@sinclair/typebox").TString;
|
|
229
|
+
status: import("@sinclair/typebox").TLiteral<"completed">;
|
|
230
|
+
outputRefs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
231
|
+
summary: import("@sinclair/typebox").TString;
|
|
232
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
233
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
234
|
+
taskId: import("@sinclair/typebox").TString;
|
|
235
|
+
status: import("@sinclair/typebox").TLiteral<"needs_input">;
|
|
236
|
+
questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
237
|
+
id: import("@sinclair/typebox").TString;
|
|
238
|
+
prompt: import("@sinclair/typebox").TString;
|
|
239
|
+
options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
|
|
240
|
+
multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
241
|
+
valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
|
|
242
|
+
}>>;
|
|
243
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
244
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
245
|
+
taskId: import("@sinclair/typebox").TString;
|
|
246
|
+
status: import("@sinclair/typebox").TLiteral<"failed">;
|
|
247
|
+
errorCode: import("@sinclair/typebox").TString;
|
|
248
|
+
message: import("@sinclair/typebox").TString;
|
|
249
|
+
retryable: import("@sinclair/typebox").TBoolean;
|
|
250
|
+
}>]>;
|
|
251
|
+
export declare const EventV1Schema: import("@sinclair/typebox").TObject<{
|
|
252
|
+
schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
|
|
253
|
+
eventId: import("@sinclair/typebox").TString;
|
|
254
|
+
projectId: import("@sinclair/typebox").TString;
|
|
255
|
+
runId: import("@sinclair/typebox").TString;
|
|
256
|
+
sequence: import("@sinclair/typebox").TInteger;
|
|
257
|
+
type: import("@sinclair/typebox").TString;
|
|
258
|
+
timestamp: import("@sinclair/typebox").TString;
|
|
259
|
+
ownerEpoch: import("@sinclair/typebox").TInteger;
|
|
260
|
+
previousHash: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
|
|
261
|
+
payloadHash: import("@sinclair/typebox").TString;
|
|
262
|
+
payload: import("@sinclair/typebox").TUnknown;
|
|
263
|
+
hash: import("@sinclair/typebox").TString;
|
|
264
|
+
}>;
|
|
265
|
+
export type RuntimeBundleLockV1 = Static<typeof RuntimeBundleLockV1Schema>;
|
|
266
|
+
export type ProjectConfigV1 = Static<typeof ProjectConfigV1Schema>;
|
|
267
|
+
export type GateRecordV1 = Static<typeof GateRecordV1Schema>;
|
|
268
|
+
export type RunConfigV1 = Static<typeof RunConfigV1Schema>;
|
|
269
|
+
export type TaskEnvelopeV1 = Static<typeof TaskEnvelopeV1Schema>;
|
|
270
|
+
export type TaskResultV1 = Static<typeof TaskResultV1Schema>;
|
|
271
|
+
export type EventV1 = Static<typeof EventV1Schema>;
|
|
272
|
+
export type QuestionV1 = Static<typeof QuestionV1Schema>;
|
|
273
|
+
export type InputValueV1 = Static<typeof InputValueV1Schema>;
|
|
274
|
+
export type RequirementsIntakeRoundV1 = Static<typeof RequirementsIntakeRoundV1Schema>;
|
|
275
|
+
export type RequirementsIntakeV1 = Static<typeof RequirementsIntakeV1Schema>;
|
|
276
|
+
export type ArchitectureDecisionV1 = Static<typeof ArchitectureDecisionV1Schema>;
|
|
277
|
+
export type InputRequestV1 = Static<typeof InputRequestV1Schema> & {
|
|
278
|
+
intake?: RequirementsIntakeV1;
|
|
279
|
+
decision?: ArchitectureDecisionV1;
|
|
280
|
+
};
|
|
281
|
+
export type InputAnswerV1 = Static<typeof InputAnswerV1Schema>;
|
|
282
|
+
export type InputSubmissionV1 = Static<typeof InputSubmissionV1Schema>;
|
|
283
|
+
export declare function hasValidInputRequestQuestions(questions: QuestionV1[]): boolean;
|
|
284
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { ContractVersionSchema, EnvironmentSchema, IacToolSchema, IsoDateTimeSchema, NonEmptyStringSchema, ProjectIdSchema, RunIdSchema, Sha256Schema, TaskIdSchema, } from "./common.js";
|
|
3
|
+
export const RuntimeBundleLockV1Schema = Type.Object({
|
|
4
|
+
schemaVersion: ContractVersionSchema,
|
|
5
|
+
cliVersion: NonEmptyStringSchema,
|
|
6
|
+
customizationVersion: NonEmptyStringSchema,
|
|
7
|
+
workflowHash: Sha256Schema,
|
|
8
|
+
defaultsHash: Sha256Schema,
|
|
9
|
+
validatorHash: Sha256Schema,
|
|
10
|
+
qualityScorecardHash: Sha256Schema,
|
|
11
|
+
improvementPolicyHash: Sha256Schema,
|
|
12
|
+
requiredCapabilityPacks: Type.Array(NonEmptyStringSchema, { uniqueItems: true }),
|
|
13
|
+
}, { $id: "https://schemas.apexops.dev/runtime-bundle-lock-v1.json", additionalProperties: false });
|
|
14
|
+
export const ProjectConfigV1Schema = Type.Object({
|
|
15
|
+
schemaVersion: ContractVersionSchema,
|
|
16
|
+
projectId: ProjectIdSchema,
|
|
17
|
+
displayName: NonEmptyStringSchema,
|
|
18
|
+
createdAt: IsoDateTimeSchema,
|
|
19
|
+
defaultIacTool: IacToolSchema,
|
|
20
|
+
}, { $id: "https://schemas.apexops.dev/project-config-v1.json", additionalProperties: false });
|
|
21
|
+
export const GateStateSchema = Type.Union([
|
|
22
|
+
Type.Literal("closed"),
|
|
23
|
+
Type.Literal("open"),
|
|
24
|
+
Type.Literal("approved"),
|
|
25
|
+
Type.Literal("inherited"),
|
|
26
|
+
Type.Literal("rejected"),
|
|
27
|
+
Type.Literal("invalidated"),
|
|
28
|
+
]);
|
|
29
|
+
export const GateRecordV1Schema = Type.Object({
|
|
30
|
+
gate: Type.Integer({ minimum: 1, maximum: 4 }),
|
|
31
|
+
state: GateStateSchema,
|
|
32
|
+
dependencyHash: Sha256Schema,
|
|
33
|
+
decidedAt: Type.Optional(IsoDateTimeSchema),
|
|
34
|
+
inheritedFromRunId: Type.Optional(RunIdSchema),
|
|
35
|
+
reason: Type.Optional(NonEmptyStringSchema),
|
|
36
|
+
}, { additionalProperties: false });
|
|
37
|
+
export const RunConfigV1Schema = Type.Object({
|
|
38
|
+
schemaVersion: ContractVersionSchema,
|
|
39
|
+
projectId: ProjectIdSchema,
|
|
40
|
+
runId: RunIdSchema,
|
|
41
|
+
environment: EnvironmentSchema,
|
|
42
|
+
targetScope: NonEmptyStringSchema,
|
|
43
|
+
iacTool: IacToolSchema,
|
|
44
|
+
createdAt: IsoDateTimeSchema,
|
|
45
|
+
runtimeLockHash: Sha256Schema,
|
|
46
|
+
parentRunId: Type.Optional(RunIdSchema),
|
|
47
|
+
ownerEpoch: Type.Integer({ minimum: 1 }),
|
|
48
|
+
gates: Type.Array(GateRecordV1Schema, { minItems: 4, maxItems: 4 }),
|
|
49
|
+
}, { $id: "https://schemas.apexops.dev/run-config-v1.json", additionalProperties: false });
|
|
50
|
+
export const CapabilityGrantV1Schema = Type.Object({
|
|
51
|
+
capability: NonEmptyStringSchema,
|
|
52
|
+
sideEffect: Type.Union([Type.Literal("none"), Type.Literal("local"), Type.Literal("remote")]),
|
|
53
|
+
expiresAt: IsoDateTimeSchema,
|
|
54
|
+
}, { additionalProperties: false });
|
|
55
|
+
export const TaskEnvelopeV1Schema = Type.Object({
|
|
56
|
+
schemaVersion: ContractVersionSchema,
|
|
57
|
+
projectId: ProjectIdSchema,
|
|
58
|
+
runId: RunIdSchema,
|
|
59
|
+
taskId: TaskIdSchema,
|
|
60
|
+
role: NonEmptyStringSchema,
|
|
61
|
+
taskType: NonEmptyStringSchema,
|
|
62
|
+
expectedHead: Sha256Schema,
|
|
63
|
+
ownerEpoch: Type.Integer({ minimum: 1 }),
|
|
64
|
+
createdAt: IsoDateTimeSchema,
|
|
65
|
+
expiresAt: IsoDateTimeSchema,
|
|
66
|
+
inputRefs: Type.Array(Sha256Schema, { uniqueItems: true }),
|
|
67
|
+
allowedOutputKinds: Type.Array(NonEmptyStringSchema, { uniqueItems: true }),
|
|
68
|
+
capabilityGrants: Type.Array(CapabilityGrantV1Schema),
|
|
69
|
+
maxOutputBytes: Type.Integer({ minimum: 1 }),
|
|
70
|
+
}, { $id: "https://schemas.apexops.dev/task-envelope-v1.json", additionalProperties: false });
|
|
71
|
+
export const QuestionV1Schema = Type.Object({
|
|
72
|
+
id: NonEmptyStringSchema,
|
|
73
|
+
prompt: NonEmptyStringSchema,
|
|
74
|
+
options: Type.Optional(Type.Array(NonEmptyStringSchema, { minItems: 1, uniqueItems: true })),
|
|
75
|
+
multiSelect: Type.Optional(Type.Boolean()),
|
|
76
|
+
valueType: Type.Optional(Type.Union([
|
|
77
|
+
Type.Literal("budget"),
|
|
78
|
+
Type.Literal("recovery"),
|
|
79
|
+
Type.Literal("environment-set"),
|
|
80
|
+
Type.Literal("data-classification"),
|
|
81
|
+
Type.Literal("compliance"),
|
|
82
|
+
])),
|
|
83
|
+
}, { additionalProperties: false });
|
|
84
|
+
export const DeferredInputValueV1Schema = Type.Object({ kind: Type.Literal("deferred"), owner: NonEmptyStringSchema }, { additionalProperties: false });
|
|
85
|
+
export const UnknownInputValueV1Schema = Type.Object({ kind: Type.Literal("unknown") }, { additionalProperties: false });
|
|
86
|
+
export const BudgetInputValueV1Schema = Type.Object({
|
|
87
|
+
kind: Type.Literal("budget"),
|
|
88
|
+
amount: Type.Number({ minimum: 0 }),
|
|
89
|
+
currency: Type.String({ pattern: "^[A-Z]{3}$" }),
|
|
90
|
+
cadence: Type.Literal("monthly"),
|
|
91
|
+
}, { additionalProperties: false });
|
|
92
|
+
export const RecoveryInputValueV1Schema = Type.Object({
|
|
93
|
+
kind: Type.Literal("recovery"),
|
|
94
|
+
rtoMinutes: Type.Integer({ minimum: 0 }),
|
|
95
|
+
rpoMinutes: Type.Integer({ minimum: 0 }),
|
|
96
|
+
}, { additionalProperties: false });
|
|
97
|
+
export const ClassificationInputValueV1Schema = Type.Object({
|
|
98
|
+
kind: Type.Literal("data-classification"),
|
|
99
|
+
classification: Type.Union([
|
|
100
|
+
Type.Literal("public"),
|
|
101
|
+
Type.Literal("internal"),
|
|
102
|
+
Type.Literal("confidential"),
|
|
103
|
+
Type.Literal("restricted"),
|
|
104
|
+
]),
|
|
105
|
+
}, { additionalProperties: false });
|
|
106
|
+
export const ComplianceInputValueV1Schema = Type.Object({ kind: Type.Literal("compliance"), scopes: Type.Array(NonEmptyStringSchema, { minItems: 1, uniqueItems: true }) }, { additionalProperties: false });
|
|
107
|
+
export const InputValueV1Schema = Type.Union([
|
|
108
|
+
NonEmptyStringSchema,
|
|
109
|
+
Type.Array(NonEmptyStringSchema, { minItems: 1, uniqueItems: true }),
|
|
110
|
+
DeferredInputValueV1Schema,
|
|
111
|
+
UnknownInputValueV1Schema,
|
|
112
|
+
BudgetInputValueV1Schema,
|
|
113
|
+
RecoveryInputValueV1Schema,
|
|
114
|
+
ClassificationInputValueV1Schema,
|
|
115
|
+
ComplianceInputValueV1Schema,
|
|
116
|
+
]);
|
|
117
|
+
export const RequirementsIntakeRoundV1Schema = Type.Union([
|
|
118
|
+
Type.Literal("business-discovery"),
|
|
119
|
+
Type.Literal("workload-pattern"),
|
|
120
|
+
Type.Literal("service-preferences"),
|
|
121
|
+
Type.Literal("security-compliance"),
|
|
122
|
+
]);
|
|
123
|
+
export const RequirementsIntakeV1Schema = Type.Object({
|
|
124
|
+
round: RequirementsIntakeRoundV1Schema,
|
|
125
|
+
ordinal: Type.Integer({ minimum: 1, maximum: 4 }),
|
|
126
|
+
total: Type.Literal(4),
|
|
127
|
+
}, { additionalProperties: false });
|
|
128
|
+
export const ArchitectureDecisionV1Schema = Type.Object({
|
|
129
|
+
taskId: TaskIdSchema,
|
|
130
|
+
id: NonEmptyStringSchema,
|
|
131
|
+
}, { additionalProperties: false });
|
|
132
|
+
const InputRequestBaseV1Schema = {
|
|
133
|
+
schemaVersion: ContractVersionSchema,
|
|
134
|
+
requestId: TaskIdSchema,
|
|
135
|
+
expectedHead: Sha256Schema,
|
|
136
|
+
ownerEpoch: Type.Integer({ minimum: 1 }),
|
|
137
|
+
questions: Type.Array(QuestionV1Schema, { minItems: 1, uniqueItems: true }),
|
|
138
|
+
};
|
|
139
|
+
export const InputRequestV1Schema = Type.Union([
|
|
140
|
+
Type.Object({ ...InputRequestBaseV1Schema, intake: RequirementsIntakeV1Schema }, { additionalProperties: false }),
|
|
141
|
+
Type.Object({ ...InputRequestBaseV1Schema, decision: ArchitectureDecisionV1Schema }, { additionalProperties: false }),
|
|
142
|
+
], { $id: "https://schemas.apexops.dev/input-request-v1.json" });
|
|
143
|
+
export const InputAnswerV1Schema = Type.Object({
|
|
144
|
+
questionId: NonEmptyStringSchema,
|
|
145
|
+
value: InputValueV1Schema,
|
|
146
|
+
}, { additionalProperties: false });
|
|
147
|
+
export const InputSubmissionV1Schema = Type.Object({
|
|
148
|
+
schemaVersion: ContractVersionSchema,
|
|
149
|
+
requestId: TaskIdSchema,
|
|
150
|
+
expectedHead: Sha256Schema,
|
|
151
|
+
ownerEpoch: Type.Integer({ minimum: 1 }),
|
|
152
|
+
answers: Type.Array(InputAnswerV1Schema, { minItems: 1 }),
|
|
153
|
+
}, { $id: "https://schemas.apexops.dev/input-submission-v1.json", additionalProperties: false });
|
|
154
|
+
export const TaskResultV1Schema = Type.Union([
|
|
155
|
+
Type.Object({
|
|
156
|
+
schemaVersion: ContractVersionSchema,
|
|
157
|
+
taskId: TaskIdSchema,
|
|
158
|
+
status: Type.Literal("completed"),
|
|
159
|
+
outputRefs: Type.Array(Sha256Schema),
|
|
160
|
+
summary: NonEmptyStringSchema,
|
|
161
|
+
}, { additionalProperties: false }),
|
|
162
|
+
Type.Object({
|
|
163
|
+
schemaVersion: ContractVersionSchema,
|
|
164
|
+
taskId: TaskIdSchema,
|
|
165
|
+
status: Type.Literal("needs_input"),
|
|
166
|
+
questions: Type.Array(QuestionV1Schema, { minItems: 1 }),
|
|
167
|
+
}, { additionalProperties: false }),
|
|
168
|
+
Type.Object({
|
|
169
|
+
schemaVersion: ContractVersionSchema,
|
|
170
|
+
taskId: TaskIdSchema,
|
|
171
|
+
status: Type.Literal("failed"),
|
|
172
|
+
errorCode: NonEmptyStringSchema,
|
|
173
|
+
message: NonEmptyStringSchema,
|
|
174
|
+
retryable: Type.Boolean(),
|
|
175
|
+
}, { additionalProperties: false }),
|
|
176
|
+
]);
|
|
177
|
+
export const EventV1Schema = Type.Object({
|
|
178
|
+
schemaVersion: ContractVersionSchema,
|
|
179
|
+
eventId: NonEmptyStringSchema,
|
|
180
|
+
projectId: ProjectIdSchema,
|
|
181
|
+
runId: RunIdSchema,
|
|
182
|
+
sequence: Type.Integer({ minimum: 1 }),
|
|
183
|
+
type: NonEmptyStringSchema,
|
|
184
|
+
timestamp: IsoDateTimeSchema,
|
|
185
|
+
ownerEpoch: Type.Integer({ minimum: 1 }),
|
|
186
|
+
previousHash: Type.Union([Sha256Schema, Type.Null()]),
|
|
187
|
+
payloadHash: Sha256Schema,
|
|
188
|
+
payload: Type.Unknown(),
|
|
189
|
+
hash: Sha256Schema,
|
|
190
|
+
}, { $id: "https://schemas.apexops.dev/event-v1.json", additionalProperties: false });
|
|
191
|
+
export function hasValidInputRequestQuestions(questions) {
|
|
192
|
+
return (new Set(questions.map(({ id }) => id)).size === questions.length &&
|
|
193
|
+
questions.every(({ multiSelect, options }) => (multiSelect !== true || options !== undefined) &&
|
|
194
|
+
(options === undefined || (options.length > 0 && new Set(options).size === options.length))));
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TSchema } from "@sinclair/typebox";
|
|
2
|
+
import { type ContractMetadata } from "./index.js";
|
|
3
|
+
export declare const JSON_SCHEMA_DIALECT = "https://json-schema.org/draft/2020-12/schema";
|
|
4
|
+
export declare const CONTRACT_METADATA_FILENAME = "contract-metadata.json";
|
|
5
|
+
export interface ContractSchemaFile {
|
|
6
|
+
filename: string;
|
|
7
|
+
contents: string;
|
|
8
|
+
schema: TSchema;
|
|
9
|
+
}
|
|
10
|
+
export declare function serializeDeterministicJson(value: unknown): string;
|
|
11
|
+
export declare function contractSchemaFilename(schema: TSchema): string;
|
|
12
|
+
export declare function createPersistedContractSchema(schema: TSchema): TSchema;
|
|
13
|
+
export declare function createContractSchemaFiles(): readonly ContractSchemaFile[];
|
|
14
|
+
export declare function createContractMetadataFile(metadata?: Readonly<Record<string, ContractMetadata>>): string;
|
|
15
|
+
//# sourceMappingURL=schema-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-export.d.ts","sourceRoot":"","sources":["../src/schema-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAqC,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtF,eAAO,MAAM,mBAAmB,iDAAiD,CAAC;AAClF,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAgBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAY9D;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEtE;AAED,wBAAgB,yBAAyB,IAAI,SAAS,kBAAkB,EAAE,CAWzE;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAoB,GACtE,MAAM,CAER"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { contractMetadata, contractSchemas } from "./index.js";
|
|
2
|
+
export const JSON_SCHEMA_DIALECT = "https://json-schema.org/draft/2020-12/schema";
|
|
3
|
+
export const CONTRACT_METADATA_FILENAME = "contract-metadata.json";
|
|
4
|
+
function sortJsonValue(value) {
|
|
5
|
+
if (Array.isArray(value)) {
|
|
6
|
+
return value.map(sortJsonValue);
|
|
7
|
+
}
|
|
8
|
+
if (value !== null && typeof value === "object") {
|
|
9
|
+
return Object.fromEntries(Object.entries(value)
|
|
10
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
11
|
+
.map(([key, child]) => [key, sortJsonValue(child)]));
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
export function serializeDeterministicJson(value) {
|
|
16
|
+
return `${JSON.stringify(sortJsonValue(value), null, 2)}\n`;
|
|
17
|
+
}
|
|
18
|
+
export function contractSchemaFilename(schema) {
|
|
19
|
+
if (typeof schema.$id !== "string") {
|
|
20
|
+
throw new Error("Cannot export a contract schema without a string $id");
|
|
21
|
+
}
|
|
22
|
+
const basename = new URL(schema.$id).pathname
|
|
23
|
+
.split("/")
|
|
24
|
+
.at(-1)
|
|
25
|
+
?.replace(/\.json$/, "");
|
|
26
|
+
if (!basename) {
|
|
27
|
+
throw new Error(`Cannot derive a schema filename from $id: ${schema.$id}`);
|
|
28
|
+
}
|
|
29
|
+
return `${basename}.schema.json`;
|
|
30
|
+
}
|
|
31
|
+
export function createPersistedContractSchema(schema) {
|
|
32
|
+
return { ...schema, $schema: JSON_SCHEMA_DIALECT };
|
|
33
|
+
}
|
|
34
|
+
export function createContractSchemaFiles() {
|
|
35
|
+
return contractSchemas
|
|
36
|
+
.map((schema) => {
|
|
37
|
+
const persistedSchema = createPersistedContractSchema(schema);
|
|
38
|
+
return {
|
|
39
|
+
filename: contractSchemaFilename(schema),
|
|
40
|
+
contents: serializeDeterministicJson(persistedSchema),
|
|
41
|
+
schema: persistedSchema,
|
|
42
|
+
};
|
|
43
|
+
})
|
|
44
|
+
.sort((left, right) => left.filename.localeCompare(right.filename));
|
|
45
|
+
}
|
|
46
|
+
export function createContractMetadataFile(metadata = contractMetadata) {
|
|
47
|
+
return serializeDeterministicJson(metadata);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=schema-export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-export.js","sourceRoot":"","sources":["../src/schema-export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AAEtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,8CAA8C,CAAC;AAClF,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAQnE,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAe;IACpD,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ;SAC1C,KAAK,CAAC,GAAG,CAAC;SACV,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,QAAQ,cAAc,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAe;IAC3D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,eAAe;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,eAAe,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO;YACL,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC;YACxC,QAAQ,EAAE,0BAA0B,CAAC,eAAe,CAAC;YACrD,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAQ,GAA+C,gBAAgB;IAEvE,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
|