@dailephd/my-frontend-observer 0.8.1

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.
Files changed (316) hide show
  1. package/CHANGELOG.md +397 -0
  2. package/LICENSE +21 -0
  3. package/README.md +255 -0
  4. package/dist/application/browserCaptureService.d.ts +11 -0
  5. package/dist/application/browserCaptureService.js +12 -0
  6. package/dist/application/browserCaptureService.js.map +1 -0
  7. package/dist/application/comparisonService.d.ts +56 -0
  8. package/dist/application/comparisonService.js +77 -0
  9. package/dist/application/comparisonService.js.map +1 -0
  10. package/dist/application/externalReferencePersistenceService.d.ts +75 -0
  11. package/dist/application/externalReferencePersistenceService.js +182 -0
  12. package/dist/application/externalReferencePersistenceService.js.map +1 -0
  13. package/dist/application/frontendContractEvaluationService.d.ts +49 -0
  14. package/dist/application/frontendContractEvaluationService.js +112 -0
  15. package/dist/application/frontendContractEvaluationService.js.map +1 -0
  16. package/dist/application/frontendContractPersistenceService.d.ts +56 -0
  17. package/dist/application/frontendContractPersistenceService.js +91 -0
  18. package/dist/application/frontendContractPersistenceService.js.map +1 -0
  19. package/dist/application/observationPersistence.d.ts +59 -0
  20. package/dist/application/observationPersistence.js +79 -0
  21. package/dist/application/observationPersistence.js.map +1 -0
  22. package/dist/application/projectCheckService.d.ts +3 -0
  23. package/dist/application/projectCheckService.js +169 -0
  24. package/dist/application/projectCheckService.js.map +1 -0
  25. package/dist/application/projectWorkflowService.d.ts +46 -0
  26. package/dist/application/projectWorkflowService.js +92 -0
  27. package/dist/application/projectWorkflowService.js.map +1 -0
  28. package/dist/application/referenceFidelityEvaluationService.d.ts +28 -0
  29. package/dist/application/referenceFidelityEvaluationService.js +45 -0
  30. package/dist/application/referenceFidelityEvaluationService.js.map +1 -0
  31. package/dist/artifacts/artifactReader.d.ts +19 -0
  32. package/dist/artifacts/artifactReader.js +36 -0
  33. package/dist/artifacts/artifactReader.js.map +1 -0
  34. package/dist/artifacts/artifactWriter.d.ts +25 -0
  35. package/dist/artifacts/artifactWriter.js +68 -0
  36. package/dist/artifacts/artifactWriter.js.map +1 -0
  37. package/dist/artifacts/comparisonArtifactReader.d.ts +18 -0
  38. package/dist/artifacts/comparisonArtifactReader.js +35 -0
  39. package/dist/artifacts/comparisonArtifactReader.js.map +1 -0
  40. package/dist/artifacts/comparisonArtifactWriter.d.ts +41 -0
  41. package/dist/artifacts/comparisonArtifactWriter.js +67 -0
  42. package/dist/artifacts/comparisonArtifactWriter.js.map +1 -0
  43. package/dist/artifacts/externalReferenceArtifactReader.d.ts +18 -0
  44. package/dist/artifacts/externalReferenceArtifactReader.js +35 -0
  45. package/dist/artifacts/externalReferenceArtifactReader.js.map +1 -0
  46. package/dist/artifacts/externalReferenceArtifactWriter.d.ts +44 -0
  47. package/dist/artifacts/externalReferenceArtifactWriter.js +77 -0
  48. package/dist/artifacts/externalReferenceArtifactWriter.js.map +1 -0
  49. package/dist/artifacts/frontendContractArtifactReader.d.ts +24 -0
  50. package/dist/artifacts/frontendContractArtifactReader.js +47 -0
  51. package/dist/artifacts/frontendContractArtifactReader.js.map +1 -0
  52. package/dist/artifacts/frontendContractArtifactWriter.d.ts +34 -0
  53. package/dist/artifacts/frontendContractArtifactWriter.js +70 -0
  54. package/dist/artifacts/frontendContractArtifactWriter.js.map +1 -0
  55. package/dist/artifacts/frontendContractEvaluationArtifactReader.d.ts +17 -0
  56. package/dist/artifacts/frontendContractEvaluationArtifactReader.js +34 -0
  57. package/dist/artifacts/frontendContractEvaluationArtifactReader.js.map +1 -0
  58. package/dist/artifacts/frontendContractEvaluationArtifactWriter.d.ts +32 -0
  59. package/dist/artifacts/frontendContractEvaluationArtifactWriter.js +58 -0
  60. package/dist/artifacts/frontendContractEvaluationArtifactWriter.js.map +1 -0
  61. package/dist/artifacts/types.d.ts +17 -0
  62. package/dist/artifacts/types.js +2 -0
  63. package/dist/artifacts/types.js.map +1 -0
  64. package/dist/browser/chromiumAdapter.d.ts +21 -0
  65. package/dist/browser/chromiumAdapter.js +204 -0
  66. package/dist/browser/chromiumAdapter.js.map +1 -0
  67. package/dist/browser/evidenceCapture.d.ts +62 -0
  68. package/dist/browser/evidenceCapture.js +500 -0
  69. package/dist/browser/evidenceCapture.js.map +1 -0
  70. package/dist/browser/scrollCapture.d.ts +32 -0
  71. package/dist/browser/scrollCapture.js +163 -0
  72. package/dist/browser/scrollCapture.js.map +1 -0
  73. package/dist/browser/types.d.ts +24 -0
  74. package/dist/browser/types.js +2 -0
  75. package/dist/browser/types.js.map +1 -0
  76. package/dist/cli.d.ts +8 -0
  77. package/dist/cli.js +2411 -0
  78. package/dist/cli.js.map +1 -0
  79. package/dist/domain/boundedAgentContext.d.ts +226 -0
  80. package/dist/domain/boundedAgentContext.js +355 -0
  81. package/dist/domain/boundedAgentContext.js.map +1 -0
  82. package/dist/domain/boundedAgentContextCorrelation.d.ts +74 -0
  83. package/dist/domain/boundedAgentContextCorrelation.js +441 -0
  84. package/dist/domain/boundedAgentContextCorrelation.js.map +1 -0
  85. package/dist/domain/boundedAgentContextIdentity.d.ts +26 -0
  86. package/dist/domain/boundedAgentContextIdentity.js +69 -0
  87. package/dist/domain/boundedAgentContextIdentity.js.map +1 -0
  88. package/dist/domain/boundedAgentContextProjection.d.ts +71 -0
  89. package/dist/domain/boundedAgentContextProjection.js +477 -0
  90. package/dist/domain/boundedAgentContextProjection.js.map +1 -0
  91. package/dist/domain/comparison.d.ts +220 -0
  92. package/dist/domain/comparison.js +350 -0
  93. package/dist/domain/comparison.js.map +1 -0
  94. package/dist/domain/comparisonEngine.d.ts +76 -0
  95. package/dist/domain/comparisonEngine.js +734 -0
  96. package/dist/domain/comparisonEngine.js.map +1 -0
  97. package/dist/domain/comparisonIdentity.d.ts +13 -0
  98. package/dist/domain/comparisonIdentity.js +46 -0
  99. package/dist/domain/comparisonIdentity.js.map +1 -0
  100. package/dist/domain/completion.d.ts +30 -0
  101. package/dist/domain/completion.js +22 -0
  102. package/dist/domain/completion.js.map +1 -0
  103. package/dist/domain/diagnostics.d.ts +17 -0
  104. package/dist/domain/diagnostics.js +77 -0
  105. package/dist/domain/diagnostics.js.map +1 -0
  106. package/dist/domain/evidence.d.ts +29 -0
  107. package/dist/domain/evidence.js +59 -0
  108. package/dist/domain/evidence.js.map +1 -0
  109. package/dist/domain/explicitState.d.ts +40 -0
  110. package/dist/domain/explicitState.js +54 -0
  111. package/dist/domain/explicitState.js.map +1 -0
  112. package/dist/domain/externalReference.d.ts +158 -0
  113. package/dist/domain/externalReference.js +167 -0
  114. package/dist/domain/externalReference.js.map +1 -0
  115. package/dist/domain/externalReferenceApplicability.d.ts +43 -0
  116. package/dist/domain/externalReferenceApplicability.js +52 -0
  117. package/dist/domain/externalReferenceApplicability.js.map +1 -0
  118. package/dist/domain/externalReferenceCompatibility.d.ts +40 -0
  119. package/dist/domain/externalReferenceCompatibility.js +48 -0
  120. package/dist/domain/externalReferenceCompatibility.js.map +1 -0
  121. package/dist/domain/externalReferenceFidelity.d.ts +171 -0
  122. package/dist/domain/externalReferenceFidelity.js +419 -0
  123. package/dist/domain/externalReferenceFidelity.js.map +1 -0
  124. package/dist/domain/externalReferenceIdentity.d.ts +38 -0
  125. package/dist/domain/externalReferenceIdentity.js +70 -0
  126. package/dist/domain/externalReferenceIdentity.js.map +1 -0
  127. package/dist/domain/externalReferenceImage.d.ts +35 -0
  128. package/dist/domain/externalReferenceImage.js +160 -0
  129. package/dist/domain/externalReferenceImage.js.map +1 -0
  130. package/dist/domain/externalReferenceRegionRelationships.d.ts +63 -0
  131. package/dist/domain/externalReferenceRegionRelationships.js +98 -0
  132. package/dist/domain/externalReferenceRegionRelationships.js.map +1 -0
  133. package/dist/domain/externalReferenceRegions.d.ts +65 -0
  134. package/dist/domain/externalReferenceRegions.js +105 -0
  135. package/dist/domain/externalReferenceRegions.js.map +1 -0
  136. package/dist/domain/externalReferenceRequirementIdentity.d.ts +12 -0
  137. package/dist/domain/externalReferenceRequirementIdentity.js +35 -0
  138. package/dist/domain/externalReferenceRequirementIdentity.js.map +1 -0
  139. package/dist/domain/externalReferenceRequirements.d.ts +215 -0
  140. package/dist/domain/externalReferenceRequirements.js +401 -0
  141. package/dist/domain/externalReferenceRequirements.js.map +1 -0
  142. package/dist/domain/externalReferenceRuntimeBinding.d.ts +146 -0
  143. package/dist/domain/externalReferenceRuntimeBinding.js +183 -0
  144. package/dist/domain/externalReferenceRuntimeBinding.js.map +1 -0
  145. package/dist/domain/frontendContractEvaluation.d.ts +57 -0
  146. package/dist/domain/frontendContractEvaluation.js +454 -0
  147. package/dist/domain/frontendContractEvaluation.js.map +1 -0
  148. package/dist/domain/frontendContractEvaluationArtifact.d.ts +65 -0
  149. package/dist/domain/frontendContractEvaluationArtifact.js +108 -0
  150. package/dist/domain/frontendContractEvaluationArtifact.js.map +1 -0
  151. package/dist/domain/frontendContractIdentity.d.ts +39 -0
  152. package/dist/domain/frontendContractIdentity.js +70 -0
  153. package/dist/domain/frontendContractIdentity.js.map +1 -0
  154. package/dist/domain/frontendContracts.d.ts +188 -0
  155. package/dist/domain/frontendContracts.js +260 -0
  156. package/dist/domain/frontendContracts.js.map +1 -0
  157. package/dist/domain/identity.d.ts +21 -0
  158. package/dist/domain/identity.js +47 -0
  159. package/dist/domain/identity.js.map +1 -0
  160. package/dist/domain/referenceCorrectionIdentity.d.ts +40 -0
  161. package/dist/domain/referenceCorrectionIdentity.js +77 -0
  162. package/dist/domain/referenceCorrectionIdentity.js.map +1 -0
  163. package/dist/domain/referenceCorrectionWorkflow.d.ts +160 -0
  164. package/dist/domain/referenceCorrectionWorkflow.js +165 -0
  165. package/dist/domain/referenceCorrectionWorkflow.js.map +1 -0
  166. package/dist/domain/referenceFidelityProjection.d.ts +65 -0
  167. package/dist/domain/referenceFidelityProjection.js +135 -0
  168. package/dist/domain/referenceFidelityProjection.js.map +1 -0
  169. package/dist/domain/relationships.d.ts +210 -0
  170. package/dist/domain/relationships.js +352 -0
  171. package/dist/domain/relationships.js.map +1 -0
  172. package/dist/domain/schema.d.ts +269 -0
  173. package/dist/domain/schema.js +442 -0
  174. package/dist/domain/schema.js.map +1 -0
  175. package/dist/domain/scrollEvidence.d.ts +51 -0
  176. package/dist/domain/scrollEvidence.js +134 -0
  177. package/dist/domain/scrollEvidence.js.map +1 -0
  178. package/dist/index.d.ts +114 -0
  179. package/dist/index.js +64 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/projectWorkflow/aliasCatalog.d.ts +21 -0
  182. package/dist/projectWorkflow/aliasCatalog.js +67 -0
  183. package/dist/projectWorkflow/aliasCatalog.js.map +1 -0
  184. package/dist/projectWorkflow/checkAcceptance.d.ts +25 -0
  185. package/dist/projectWorkflow/checkAcceptance.js +55 -0
  186. package/dist/projectWorkflow/checkAcceptance.js.map +1 -0
  187. package/dist/projectWorkflow/checkResult.d.ts +85 -0
  188. package/dist/projectWorkflow/checkResult.js +101 -0
  189. package/dist/projectWorkflow/checkResult.js.map +1 -0
  190. package/dist/projectWorkflow/projectConfig.d.ts +43 -0
  191. package/dist/projectWorkflow/projectConfig.js +84 -0
  192. package/dist/projectWorkflow/projectConfig.js.map +1 -0
  193. package/dist/projectWorkflow/projectDiscovery.d.ts +9 -0
  194. package/dist/projectWorkflow/projectDiscovery.js +20 -0
  195. package/dist/projectWorkflow/projectDiscovery.js.map +1 -0
  196. package/dist/projectWorkflow/projectPaths.d.ts +8 -0
  197. package/dist/projectWorkflow/projectPaths.js +23 -0
  198. package/dist/projectWorkflow/projectPaths.js.map +1 -0
  199. package/dist/request/paths.d.ts +14 -0
  200. package/dist/request/paths.js +33 -0
  201. package/dist/request/paths.js.map +1 -0
  202. package/dist/request/request.d.ts +111 -0
  203. package/dist/request/request.js +464 -0
  204. package/dist/request/request.js.map +1 -0
  205. package/dist/safety/policy.d.ts +14 -0
  206. package/dist/safety/policy.js +81 -0
  207. package/dist/safety/policy.js.map +1 -0
  208. package/dist/viewer/assets/index-CN_yb9Uf.css +1 -0
  209. package/dist/viewer/assets/index-D98S1_2d.js +9 -0
  210. package/dist/viewer/icons/icon-192.png +0 -0
  211. package/dist/viewer/icons/icon-512.png +0 -0
  212. package/dist/viewer/index.html +15 -0
  213. package/dist/viewer/manifest.webmanifest +1 -0
  214. package/dist/viewer/registerSW.js +1 -0
  215. package/dist/viewer/sw.js +1 -0
  216. package/dist/viewer/workbox-9c191d2f.js +1 -0
  217. package/dist/viewerServer/context.d.ts +48 -0
  218. package/dist/viewerServer/context.js +60 -0
  219. package/dist/viewerServer/context.js.map +1 -0
  220. package/dist/viewerServer/evidence/classify.d.ts +59 -0
  221. package/dist/viewerServer/evidence/classify.js +124 -0
  222. package/dist/viewerServer/evidence/classify.js.map +1 -0
  223. package/dist/viewerServer/evidence/comparisonView.d.ts +28 -0
  224. package/dist/viewerServer/evidence/comparisonView.js +43 -0
  225. package/dist/viewerServer/evidence/comparisonView.js.map +1 -0
  226. package/dist/viewerServer/evidence/contextSourceView.d.ts +25 -0
  227. package/dist/viewerServer/evidence/contextSourceView.js +20 -0
  228. package/dist/viewerServer/evidence/contextSourceView.js.map +1 -0
  229. package/dist/viewerServer/evidence/discovery.d.ts +31 -0
  230. package/dist/viewerServer/evidence/discovery.js +78 -0
  231. package/dist/viewerServer/evidence/discovery.js.map +1 -0
  232. package/dist/viewerServer/evidence/evaluationView.d.ts +32 -0
  233. package/dist/viewerServer/evidence/evaluationView.js +50 -0
  234. package/dist/viewerServer/evidence/evaluationView.js.map +1 -0
  235. package/dist/viewerServer/evidence/handles.d.ts +21 -0
  236. package/dist/viewerServer/evidence/handles.js +43 -0
  237. package/dist/viewerServer/evidence/handles.js.map +1 -0
  238. package/dist/viewerServer/evidence/index.d.ts +41 -0
  239. package/dist/viewerServer/evidence/index.js +82 -0
  240. package/dist/viewerServer/evidence/index.js.map +1 -0
  241. package/dist/viewerServer/evidence/limits.d.ts +27 -0
  242. package/dist/viewerServer/evidence/limits.js +28 -0
  243. package/dist/viewerServer/evidence/limits.js.map +1 -0
  244. package/dist/viewerServer/evidence/linkedEvidence.d.ts +43 -0
  245. package/dist/viewerServer/evidence/linkedEvidence.js +151 -0
  246. package/dist/viewerServer/evidence/linkedEvidence.js.map +1 -0
  247. package/dist/viewerServer/evidence/mediaResolver.d.ts +16 -0
  248. package/dist/viewerServer/evidence/mediaResolver.js +85 -0
  249. package/dist/viewerServer/evidence/mediaResolver.js.map +1 -0
  250. package/dist/viewerServer/evidence/observationView.d.ts +29 -0
  251. package/dist/viewerServer/evidence/observationView.js +46 -0
  252. package/dist/viewerServer/evidence/observationView.js.map +1 -0
  253. package/dist/viewerServer/evidence/pathSafety.d.ts +11 -0
  254. package/dist/viewerServer/evidence/pathSafety.js +31 -0
  255. package/dist/viewerServer/evidence/pathSafety.js.map +1 -0
  256. package/dist/viewerServer/evidence/projection.d.ts +55 -0
  257. package/dist/viewerServer/evidence/projection.js +152 -0
  258. package/dist/viewerServer/evidence/projection.js.map +1 -0
  259. package/dist/viewerServer/evidence/referenceView.d.ts +133 -0
  260. package/dist/viewerServer/evidence/referenceView.js +169 -0
  261. package/dist/viewerServer/evidence/referenceView.js.map +1 -0
  262. package/dist/viewerServer/httpServer.d.ts +27 -0
  263. package/dist/viewerServer/httpServer.js +381 -0
  264. package/dist/viewerServer/httpServer.js.map +1 -0
  265. package/dist/viewerServer/openBrowser.d.ts +7 -0
  266. package/dist/viewerServer/openBrowser.js +32 -0
  267. package/dist/viewerServer/openBrowser.js.map +1 -0
  268. package/dist/viewerServer/port.d.ts +16 -0
  269. package/dist/viewerServer/port.js +19 -0
  270. package/dist/viewerServer/port.js.map +1 -0
  271. package/dist/viewerServer/viewerService.d.ts +62 -0
  272. package/dist/viewerServer/viewerService.js +88 -0
  273. package/dist/viewerServer/viewerService.js.map +1 -0
  274. package/docs/ARCHITECTURE.md +1286 -0
  275. package/docs/CI_CD.md +250 -0
  276. package/docs/COMMANDS.md +972 -0
  277. package/docs/CONTRACTS.md +1856 -0
  278. package/docs/CURRENT_STATE.md +1049 -0
  279. package/docs/DEVELOPMENT.md +202 -0
  280. package/docs/DOCUMENTATION_PRESERVATION_POLICY.md +50 -0
  281. package/docs/PROJECT_DESCRIPTION.md +2221 -0
  282. package/docs/PROJECT_MILESTONES.md +2526 -0
  283. package/docs/PROJECT_OVERVIEW.md +150 -0
  284. package/docs/QUICKSTART.md +83 -0
  285. package/docs/RELEASE.md +27 -0
  286. package/docs/ROADMAP.md +641 -0
  287. package/docs/SECURITY.md +218 -0
  288. package/docs/WORKFLOWS.md +642 -0
  289. package/docs/plans/v0.8-implementation-plan.md +655 -0
  290. package/docs/plans/v0.8.1-cli-usability-patch-plan.md +505 -0
  291. package/docs/reports/v0.7-bounded-fidelity-context-prompt7.md +243 -0
  292. package/docs/reports/v0.7-implementation-completeness-documentation-reconciliation.md +497 -0
  293. package/docs/reports/v0.7-pre-release-readiness.md +337 -0
  294. package/docs/reports/v0.7-reference-binding-prompt5.md +223 -0
  295. package/docs/reports/v0.7-reference-compatibility-prompt4.md +234 -0
  296. package/docs/reports/v0.7-reference-correction-workflow-prompt8.md +222 -0
  297. package/docs/reports/v0.7-reference-fidelity-prompt6.md +216 -0
  298. package/docs/reports/v0.7-reference-foundation-prompt1.md +151 -0
  299. package/docs/reports/v0.7-reference-regions-prompt2.md +195 -0
  300. package/docs/reports/v0.7-reference-requirements-prompt3.md +217 -0
  301. package/docs/reports/v0.7-release-prep.md +423 -0
  302. package/docs/reports/v0.8-binding-fidelity-interaction-batch6.md +279 -0
  303. package/docs/reports/v0.8-bounded-context-correlation-batch7.md +233 -0
  304. package/docs/reports/v0.8-comparison-contract-inspection-batch4.md +279 -0
  305. package/docs/reports/v0.8-evidence-index-readers-batch2.md +247 -0
  306. package/docs/reports/v0.8-implementation-completeness-documentation-reconciliation.md +741 -0
  307. package/docs/reports/v0.8-integrated-viewer-acceptance-batch8.md +128 -0
  308. package/docs/reports/v0.8-observation-svg-inspection-batch3.md +223 -0
  309. package/docs/reports/v0.8-prerelease-readiness-cross-platform-security-code-rot.md +687 -0
  310. package/docs/reports/v0.8-reference-candidate-inspection-batch5.md +232 -0
  311. package/docs/reports/v0.8-viewer-runtime-pwa-batch1.md +278 -0
  312. package/docs/reports/v0.8.1-check-orchestration-prompt2.md +69 -0
  313. package/docs/reports/v0.8.1-implementation-completeness-documentation-reconciliation.md +114 -0
  314. package/docs/reports/v0.8.1-prerelease-readiness-cross-platform-security-code-rot.md +170 -0
  315. package/docs/reports/v0.8.1-project-workflow-foundation-prompt1.md +66 -0
  316. package/package.json +58 -0
@@ -0,0 +1,454 @@
1
+ import { HORIZONTAL_ORDER_RELATIONSHIPS, VERTICAL_ORDER_RELATIONSHIPS, AREA_OVERLAP_RELATIONSHIPS, RELATIVE_WIDTH_RELATIONSHIPS, GEOMETRIC_FIT_RELATIONSHIPS, VERTICAL_SEQUENCE_RELATIONSHIPS, PAGE_WIDTH_RELATIONSHIPS, PAGE_LEVEL_RELATIONSHIP_KINDS, deriveTargetClipping, } from './relationships.js';
2
+ import { isValidObservationArtifact } from './schema.js';
3
+ import { evidenceValue } from './evidence.js';
4
+ import { isValidComparisonArtifact } from './comparison.js';
5
+ import { isValidPersistentBaselineContract, isValidPerChangeContract } from './frontendContracts.js';
6
+ function targetGeometry(observation, target) {
7
+ const record = observation.targetEvidence[target];
8
+ return record ? evidenceValue(record.geometry) : undefined;
9
+ }
10
+ function targetVisible(observation, target) {
11
+ const record = observation.targetEvidence[target];
12
+ const visibility = record ? evidenceValue(record.visibility) : undefined;
13
+ return visibility?.visible;
14
+ }
15
+ function targetClipping(observation, target) {
16
+ const record = observation.targetEvidence[target];
17
+ return record ? deriveTargetClipping(record) : { horizontal: 'unavailable', vertical: 'unavailable' };
18
+ }
19
+ function findPairwiseKind(graph, subjectTarget, relatedTarget, family) {
20
+ return graph.pairwiseRelationships.find((r) => r.subjectTarget === subjectTarget && r.relatedTarget === relatedTarget && family.includes(r.kind))?.kind;
21
+ }
22
+ function scrollOwnerOf(observation) {
23
+ return observation.scrollScenarioEvidence ? evidenceValue(observation.scrollScenarioEvidence.scrollOwner) : undefined;
24
+ }
25
+ function initialViewportRelation(observation, target) {
26
+ const state = observation.scrollScenarioEvidence?.initial.targets[target];
27
+ const relation = state ? evidenceValue(state.viewportRelation) : undefined;
28
+ return relation?.vertical;
29
+ }
30
+ function readProperty(observation, target, property) {
31
+ const geometry = targetGeometry(observation, target);
32
+ return geometry ? geometry[property] : undefined;
33
+ }
34
+ /** Contract tolerance is independent of v0.4's comparison geometry noise tolerance (never reused as authorization). Percent denominator is the absolute before-value, the standard "may vary by up to N%" reading. */
35
+ function toleranceToPx(tolerance, beforeValue) {
36
+ switch (tolerance.kind) {
37
+ case 'exact':
38
+ return 0;
39
+ case 'absolute-px':
40
+ return tolerance.amount;
41
+ case 'percent':
42
+ return (tolerance.amount / 100) * Math.abs(beforeValue);
43
+ }
44
+ }
45
+ const RELATIONSHIP_FAMILY_GROUPS = [
46
+ HORIZONTAL_ORDER_RELATIONSHIPS,
47
+ VERTICAL_ORDER_RELATIONSHIPS,
48
+ AREA_OVERLAP_RELATIONSHIPS,
49
+ RELATIVE_WIDTH_RELATIONSHIPS,
50
+ GEOMETRIC_FIT_RELATIONSHIPS,
51
+ VERTICAL_SEQUENCE_RELATIONSHIPS,
52
+ PAGE_WIDTH_RELATIONSHIPS,
53
+ ];
54
+ function familyOf(kind) {
55
+ return RELATIONSHIP_FAMILY_GROUPS.find((family) => family.includes(kind));
56
+ }
57
+ function sameFamily(a, b) {
58
+ const family = familyOf(a);
59
+ return family ? family.includes(b) : false;
60
+ }
61
+ // --- state-checkable primitive evaluation (evaluated against one observation + its relationship graph) --
62
+ const STATE_PRIMITIVE_KINDS = new Set([
63
+ 'target-visible',
64
+ 'target-not-clipped',
65
+ 'target-width-within-bound',
66
+ 'targets-do-not-overlap',
67
+ 'target-wider-than',
68
+ 'target-follows-vertically',
69
+ 'target-fits-inside',
70
+ 'document-width-fits-viewport',
71
+ 'scroll-owner-is-document',
72
+ 'target-does-not-own-scroll',
73
+ 'target-begins-below-initial-viewport',
74
+ ]);
75
+ function isStatePrimitiveKind(kind) {
76
+ return STATE_PRIMITIVE_KINDS.has(kind);
77
+ }
78
+ function evaluateStatePrimitive(primitive, observation, graph) {
79
+ switch (primitive.kind) {
80
+ case 'target-visible': {
81
+ const visible = targetVisible(observation, primitive.target);
82
+ return visible === undefined ? 'unavailable' : visible ? 'pass' : 'fail';
83
+ }
84
+ case 'target-not-clipped': {
85
+ const clip = targetClipping(observation, primitive.target);
86
+ const axis = primitive.axis ?? 'both';
87
+ const checkHorizontal = axis === 'horizontal' || axis === 'both';
88
+ const checkVertical = axis === 'vertical' || axis === 'both';
89
+ if ((checkHorizontal && clip.horizontal === 'unavailable') || (checkVertical && clip.vertical === 'unavailable'))
90
+ return 'unavailable';
91
+ const clipped = (checkHorizontal && clip.horizontal === 'clipped') || (checkVertical && clip.vertical === 'clipped');
92
+ return clipped ? 'fail' : 'pass';
93
+ }
94
+ case 'target-width-within-bound': {
95
+ const geometry = targetGeometry(observation, primitive.target);
96
+ if (!geometry)
97
+ return 'unavailable';
98
+ if (primitive.minPx !== undefined && geometry.width < primitive.minPx)
99
+ return 'fail';
100
+ if (primitive.maxPx !== undefined && geometry.width > primitive.maxPx)
101
+ return 'fail';
102
+ return 'pass';
103
+ }
104
+ case 'targets-do-not-overlap': {
105
+ const kind = findPairwiseKind(graph, primitive.targetA, primitive.targetB, AREA_OVERLAP_RELATIONSHIPS) ??
106
+ findPairwiseKind(graph, primitive.targetB, primitive.targetA, AREA_OVERLAP_RELATIONSHIPS);
107
+ if (!kind)
108
+ return 'unavailable';
109
+ return kind === 'does-not-overlap' ? 'pass' : 'fail';
110
+ }
111
+ case 'target-wider-than': {
112
+ const direct = findPairwiseKind(graph, primitive.targetA, primitive.targetB, RELATIVE_WIDTH_RELATIONSHIPS);
113
+ if (direct)
114
+ return direct === 'wider-than' ? 'pass' : 'fail';
115
+ const reversed = findPairwiseKind(graph, primitive.targetB, primitive.targetA, RELATIVE_WIDTH_RELATIONSHIPS);
116
+ if (reversed)
117
+ return reversed === 'narrower-than' ? 'pass' : 'fail';
118
+ return 'unavailable';
119
+ }
120
+ case 'target-follows-vertically': {
121
+ const kind = findPairwiseKind(graph, primitive.targetA, primitive.targetB, VERTICAL_SEQUENCE_RELATIONSHIPS);
122
+ if (kind)
123
+ return 'pass';
124
+ const bothResolvable = targetGeometry(observation, primitive.targetA) !== undefined && targetGeometry(observation, primitive.targetB) !== undefined;
125
+ return bothResolvable ? 'fail' : 'unavailable';
126
+ }
127
+ case 'target-fits-inside': {
128
+ const kind = findPairwiseKind(graph, primitive.target, primitive.container, GEOMETRIC_FIT_RELATIONSHIPS);
129
+ if (!kind)
130
+ return 'unavailable';
131
+ return kind === 'fits-inside' ? 'pass' : 'fail';
132
+ }
133
+ case 'document-width-fits-viewport': {
134
+ const kind = graph.pageRelationships[0]?.kind;
135
+ if (!kind)
136
+ return 'unavailable';
137
+ return kind === 'document-width-fits-viewport' ? 'pass' : 'fail';
138
+ }
139
+ case 'scroll-owner-is-document': {
140
+ const owner = scrollOwnerOf(observation);
141
+ if (!owner)
142
+ return 'unavailable';
143
+ return owner.kind === 'document' ? 'pass' : 'fail';
144
+ }
145
+ case 'target-does-not-own-scroll': {
146
+ const owner = scrollOwnerOf(observation);
147
+ if (!owner)
148
+ return 'unavailable';
149
+ return owner.kind === 'target' && owner.target === primitive.target ? 'fail' : 'pass';
150
+ }
151
+ case 'target-begins-below-initial-viewport': {
152
+ const relation = initialViewportRelation(observation, primitive.target);
153
+ if (!relation)
154
+ return 'unavailable';
155
+ return relation === 'below' ? 'pass' : 'fail';
156
+ }
157
+ default:
158
+ return 'unavailable';
159
+ }
160
+ }
161
+ // --- diff-based primitive evaluation (compares before vs after) -----------------
162
+ function evaluateRelationshipUnchanged(primitive, ctx) {
163
+ const { relationshipKind, subjectTarget, relatedTarget } = primitive;
164
+ const isPageLevel = PAGE_LEVEL_RELATIONSHIP_KINDS.includes(relationshipKind);
165
+ if (isPageLevel) {
166
+ const changed = ctx.comparison.relationshipChanges.some((r) => r.scope === 'page');
167
+ if (changed)
168
+ return 'fail';
169
+ const afterKind = ctx.comparison.relationshipsAfter.pageRelationships[0]?.kind;
170
+ return afterKind === relationshipKind ? 'pass' : 'unavailable';
171
+ }
172
+ if (!subjectTarget || !relatedTarget)
173
+ return 'unavailable';
174
+ const changed = ctx.comparison.relationshipChanges.some((r) => r.scope === 'pairwise' && r.subjectTarget === subjectTarget && r.relatedTarget === relatedTarget && sameFamily(r.kind, relationshipKind));
175
+ if (changed)
176
+ return 'fail';
177
+ const family = familyOf(relationshipKind);
178
+ if (!family)
179
+ return 'unavailable';
180
+ const afterKind = findPairwiseKind(ctx.comparison.relationshipsAfter, subjectTarget, relatedTarget, family);
181
+ return afterKind === relationshipKind ? 'pass' : 'unavailable';
182
+ }
183
+ function evaluatePropertyUnchanged(primitive, ctx) {
184
+ const before = readProperty(ctx.before, primitive.target, primitive.property);
185
+ const after = readProperty(ctx.after, primitive.target, primitive.property);
186
+ if (before === undefined || after === undefined)
187
+ return 'unavailable';
188
+ const toleranceAmount = toleranceToPx(primitive.tolerance, before);
189
+ return Math.abs(after - before) <= toleranceAmount ? 'pass' : 'fail';
190
+ }
191
+ /** `permitted` relaxes "must occur" to "may occur": no change and compliant change both pass; only the strictly-opposite direction fails. */
192
+ function evaluatePropertyDirectional(primitive, ctx, permitted) {
193
+ const before = readProperty(ctx.before, primitive.target, primitive.property);
194
+ const after = readProperty(ctx.after, primitive.target, primitive.property);
195
+ if (before === undefined || after === undefined)
196
+ return 'unavailable';
197
+ const delta = after - before;
198
+ const magnitude = primitive.minimumDeltaPx ?? 0;
199
+ const increases = primitive.kind === 'property-increases';
200
+ const compliant = increases ? delta > magnitude : delta < -magnitude;
201
+ if (compliant)
202
+ return 'pass';
203
+ if (!permitted)
204
+ return 'fail';
205
+ const contradictory = increases ? delta < 0 : delta > 0;
206
+ return contradictory ? 'fail' : 'pass';
207
+ }
208
+ function evaluatePrimitiveResult(primitive, mode, ctx) {
209
+ switch (primitive.kind) {
210
+ case 'relationship-unchanged':
211
+ return evaluateRelationshipUnchanged(primitive, ctx);
212
+ case 'property-unchanged-within-tolerance':
213
+ return evaluatePropertyUnchanged(primitive, ctx);
214
+ case 'property-increases':
215
+ case 'property-decreases':
216
+ return evaluatePropertyDirectional(primitive, ctx, mode === 'permitted');
217
+ default:
218
+ return evaluateStatePrimitive(primitive, ctx.after, ctx.comparison.relationshipsAfter);
219
+ }
220
+ }
221
+ // --- clause-level evaluation (adds the preserved baseline-truth pre-check) ------
222
+ function clauseMode(category, dependentMode) {
223
+ if (category === 'expected-dependent')
224
+ return dependentMode === 'permitted' ? 'permitted' : 'required';
225
+ if (category === 'preserved')
226
+ return 'preserved';
227
+ return 'default';
228
+ }
229
+ function toClauseResult(clauseId, status, supportingEvidence) {
230
+ if (status === 'unavailable') {
231
+ return { clauseId, status: 'unavailable', reason: 'required evidence to evaluate this contract clause is unavailable', supportingEvidence };
232
+ }
233
+ return { clauseId, status, supportingEvidence };
234
+ }
235
+ /**
236
+ * `mode === 'preserved'` additionally proves the invariant already held in
237
+ * `before` (using the same before-evidence + `comparison.relationshipsBefore`
238
+ * the v0.4 comparison engine already derived - never re-derived here). An
239
+ * invariant that never held in the baseline cannot be truthfully evaluated as
240
+ * "preserved" or silently redefined as a new regression, per the frozen
241
+ * Batch 1 honesty requirement - reported `unavailable`, never `pass`/`fail`.
242
+ */
243
+ function evaluateClause(clauseId, primitive, mode, ctx, supportingEvidence) {
244
+ if (mode === 'preserved' && isStatePrimitiveKind(primitive.kind)) {
245
+ const baselineStatus = evaluateStatePrimitive(primitive, ctx.before, ctx.comparison.relationshipsBefore);
246
+ if (baselineStatus === 'fail') {
247
+ return {
248
+ clauseId,
249
+ status: 'unavailable',
250
+ reason: 'asserted preserved invariant does not hold in the baseline (before) evidence, so preservation cannot be truthfully evaluated',
251
+ supportingEvidence,
252
+ };
253
+ }
254
+ }
255
+ const status = evaluatePrimitiveResult(primitive, mode, ctx);
256
+ return toClauseResult(clauseId, status, supportingEvidence);
257
+ }
258
+ // --- bounded, deterministic conflict detection -----------------------------------
259
+ function primitiveTargetProperty(p) {
260
+ if (p.kind === 'property-unchanged-within-tolerance' || p.kind === 'property-increases' || p.kind === 'property-decreases') {
261
+ return { target: p.target, property: p.property };
262
+ }
263
+ return undefined;
264
+ }
265
+ function directionOf(p) {
266
+ if (p.kind === 'property-unchanged-within-tolerance')
267
+ return 'unchanged';
268
+ if (p.kind === 'property-increases')
269
+ return 'increase';
270
+ if (p.kind === 'property-decreases')
271
+ return 'decrease';
272
+ return undefined;
273
+ }
274
+ /**
275
+ * Bounded to structurally-provable contradictions on the same (target, property)
276
+ * pair (e.g. "unchanged" vs "increases", or "increases" vs "decreases") - never a
277
+ * general constraint solver. Two clauses whose contradiction cannot be established
278
+ * this way from their structured form are evaluated independently, per governing
279
+ * scope (Section 8).
280
+ */
281
+ function primitivesConflict(a, b) {
282
+ const at = primitiveTargetProperty(a);
283
+ const bt = primitiveTargetProperty(b);
284
+ if (!at || !bt)
285
+ return false;
286
+ if (at.target !== bt.target || at.property !== bt.property)
287
+ return false;
288
+ const ad = directionOf(a);
289
+ const bd = directionOf(b);
290
+ return ad !== undefined && bd !== undefined && ad !== bd;
291
+ }
292
+ // --- difference-to-scope matching (deterministic, structural identity only) -----
293
+ function relationshipDiffMatchesPair(diff, family, a, b) {
294
+ if (diff.subject.type !== 'relationship')
295
+ return false;
296
+ if (!family.includes(diff.subject.kind))
297
+ return false;
298
+ const { subjectTarget, relatedTarget } = diff.subject;
299
+ return (subjectTarget === a && relatedTarget === b) || (subjectTarget === b && relatedTarget === a);
300
+ }
301
+ /**
302
+ * One authored clause "accounts for" a raw `ComparisonDifference` only when
303
+ * their structural subject/kind identity matches (never array position, prose,
304
+ * or fuzzy name matching). `target-begins-below-initial-viewport` is
305
+ * state-only and never accounts for any before/after difference. DOM
306
+ * containment (`containment-changed`) is deliberately never accounted for by
307
+ * any frozen primitive - the vocabulary only models geometric fit
308
+ * (`target-fits-inside`), a distinct concept - so a containment change is
309
+ * always `unexpected`, by design.
310
+ */
311
+ function primitiveAccountsForDifference(primitive, diff) {
312
+ switch (primitive.kind) {
313
+ case 'target-visible':
314
+ return diff.subject.type === 'target' && diff.subject.target === primitive.target && (diff.kind === 'visibility-changed' || diff.kind === 'appeared' || diff.kind === 'disappeared');
315
+ case 'target-not-clipped':
316
+ return (diff.subject.type === 'target' &&
317
+ diff.subject.target === primitive.target &&
318
+ (diff.kind === 'clipping-changed' || diff.kind === 'horizontal-overflow-changed' || diff.kind === 'vertical-overflow-changed'));
319
+ case 'target-width-within-bound':
320
+ return diff.subject.type === 'target' && diff.subject.target === primitive.target && diff.kind === 'resized';
321
+ case 'property-unchanged-within-tolerance':
322
+ case 'property-increases':
323
+ case 'property-decreases': {
324
+ if (diff.subject.type !== 'target' || diff.subject.target !== primitive.target)
325
+ return false;
326
+ const isPositionProperty = primitive.property === 'x' || primitive.property === 'y';
327
+ return isPositionProperty ? diff.kind === 'moved' : diff.kind === 'resized';
328
+ }
329
+ case 'targets-do-not-overlap':
330
+ return relationshipDiffMatchesPair(diff, AREA_OVERLAP_RELATIONSHIPS, primitive.targetA, primitive.targetB);
331
+ case 'target-wider-than':
332
+ return relationshipDiffMatchesPair(diff, RELATIVE_WIDTH_RELATIONSHIPS, primitive.targetA, primitive.targetB);
333
+ case 'target-follows-vertically':
334
+ return relationshipDiffMatchesPair(diff, VERTICAL_SEQUENCE_RELATIONSHIPS, primitive.targetA, primitive.targetB);
335
+ case 'target-fits-inside':
336
+ return relationshipDiffMatchesPair(diff, GEOMETRIC_FIT_RELATIONSHIPS, primitive.target, primitive.container);
337
+ case 'relationship-unchanged': {
338
+ if (diff.subject.type !== 'relationship')
339
+ return false;
340
+ if (!sameFamily(diff.subject.kind, primitive.relationshipKind))
341
+ return false;
342
+ if (primitive.subjectTarget && diff.subject.subjectTarget !== primitive.subjectTarget)
343
+ return false;
344
+ if (primitive.relatedTarget && diff.subject.relatedTarget !== primitive.relatedTarget)
345
+ return false;
346
+ return true;
347
+ }
348
+ case 'document-width-fits-viewport':
349
+ return diff.kind === 'page-size-changed' || (diff.subject.type === 'relationship' && PAGE_WIDTH_RELATIONSHIPS.includes(diff.subject.kind));
350
+ case 'scroll-owner-is-document':
351
+ case 'target-does-not-own-scroll':
352
+ return diff.kind === 'scroll-owner-changed';
353
+ case 'target-begins-below-initial-viewport':
354
+ return false;
355
+ default:
356
+ return false;
357
+ }
358
+ }
359
+ function toUnexpectedChangeResult(diff) {
360
+ return { classification: 'unexpected', subject: diff.subject, differenceKind: diff.kind, supportingEvidence: diff.evidence };
361
+ }
362
+ // --- canonical entry point --------------------------------------------------------
363
+ /**
364
+ * The one canonical pure v0.5 contract-evaluation entry point:
365
+ * `active persistent baseline contracts + current per-change contract + actual
366
+ * before/after runtime evidence -> PASS | FAIL` with full clause-level
367
+ * evidence. Deterministic given identical inputs; never mutates
368
+ * before/after/comparison/baseline/change.
369
+ *
370
+ * NOTE: `comparison.differences` already includes one `ComparisonDifference`
371
+ * per `RelationshipChangeRecord` (see `comparisonEngine.ts#relationshipChangesToDifferences`),
372
+ * so unexpected-change derivation consumes `differences` only - iterating
373
+ * `relationshipChanges` separately would double-count the same logical
374
+ * transition.
375
+ */
376
+ export function evaluateFrontendContract(input) {
377
+ const { before, after, comparison, baseline, change } = input;
378
+ const beforeValidation = isValidObservationArtifact(before);
379
+ if (!beforeValidation.valid)
380
+ return { ok: false, reason: `before ObservationArtifact is invalid: ${beforeValidation.reason}` };
381
+ const afterValidation = isValidObservationArtifact(after);
382
+ if (!afterValidation.valid)
383
+ return { ok: false, reason: `after ObservationArtifact is invalid: ${afterValidation.reason}` };
384
+ const comparisonValidation = isValidComparisonArtifact(comparison);
385
+ if (!comparisonValidation.valid)
386
+ return { ok: false, reason: `ComparisonArtifact is invalid: ${comparisonValidation.reason}` };
387
+ const baselineValidation = isValidPersistentBaselineContract(baseline);
388
+ if (!baselineValidation.valid)
389
+ return { ok: false, reason: `PersistentBaselineContract is invalid: ${baselineValidation.reason}` };
390
+ const changeValidation = isValidPerChangeContract(change);
391
+ if (!changeValidation.valid)
392
+ return { ok: false, reason: `PerChangeContract is invalid: ${changeValidation.reason}` };
393
+ if (comparison.before.observationId !== before.observationId) {
394
+ return { ok: false, reason: 'comparison.before.observationId does not match the supplied before observation' };
395
+ }
396
+ if (comparison.after.observationId !== after.observationId) {
397
+ return { ok: false, reason: 'comparison.after.observationId does not match the supplied after observation' };
398
+ }
399
+ const baselineClauseIds = new Set(baseline.clauses.map((c) => c.clauseId));
400
+ const supersededIds = new Set();
401
+ for (const c of change.clauses) {
402
+ for (const id of c.supersedesBaselineClauseIds ?? []) {
403
+ if (baselineClauseIds.has(id))
404
+ supersededIds.add(id);
405
+ }
406
+ }
407
+ const activeBaseline = baseline.clauses.filter((c) => !supersededIds.has(c.clauseId));
408
+ const activeBaselineClauseIds = activeBaseline.map((c) => c.clauseId);
409
+ if (comparison.comparability.state === 'incomparable') {
410
+ const clauseResults = [
411
+ ...activeBaseline.map((c) => toClauseResult(c.clauseId, 'unavailable', c.supportingEvidence)),
412
+ ...change.clauses.map((c) => toClauseResult(c.clauseId, 'unavailable', c.supportingEvidence)),
413
+ ].map((r) => (r.status === 'unavailable' ? { ...r, reason: 'comparison is incomparable; frontend contract clauses cannot be evaluated' } : r));
414
+ return {
415
+ ok: true,
416
+ evaluation: { overallVerdict: 'FAIL', activeBaselineClauseIds, supersededBaselineClauseIds: [...supersededIds], clauseResults, unexpectedChanges: [] },
417
+ };
418
+ }
419
+ const ctx = { before, after, comparison };
420
+ const clauseResults = [];
421
+ for (const c of activeBaseline) {
422
+ const conflictingChange = change.clauses.find((cc) => !(cc.supersedesBaselineClauseIds ?? []).includes(c.clauseId) && primitivesConflict(c.primitive, cc.primitive));
423
+ if (conflictingChange) {
424
+ const reason = `baseline clause "${c.clauseId}" and per-change clause "${conflictingChange.clauseId}" impose contradictory requirements on the same property without explicit supersession`;
425
+ clauseResults.push({ clauseId: c.clauseId, status: 'conflict', reason, conflictingClauseIds: [c.clauseId, conflictingChange.clauseId], supportingEvidence: c.supportingEvidence });
426
+ continue;
427
+ }
428
+ clauseResults.push(evaluateClause(c.clauseId, c.primitive, 'preserved', ctx, c.supportingEvidence));
429
+ }
430
+ for (const c of change.clauses) {
431
+ const unknownRefs = (c.supersedesBaselineClauseIds ?? []).filter((id) => !baselineClauseIds.has(id));
432
+ if (unknownRefs.length > 0) {
433
+ const reason = `per-change clause "${c.clauseId}" supersedesBaselineClauseIds references unknown baseline clause id(s): ${unknownRefs.join(', ')}`;
434
+ clauseResults.push({ clauseId: c.clauseId, status: 'conflict', reason, conflictingClauseIds: [c.clauseId, ...unknownRefs], supportingEvidence: c.supportingEvidence });
435
+ continue;
436
+ }
437
+ const conflictingBaseline = activeBaseline.find((b) => !(c.supersedesBaselineClauseIds ?? []).includes(b.clauseId) && primitivesConflict(b.primitive, c.primitive));
438
+ if (conflictingBaseline) {
439
+ const reason = `per-change clause "${c.clauseId}" and baseline clause "${conflictingBaseline.clauseId}" impose contradictory requirements on the same property without explicit supersession`;
440
+ clauseResults.push({ clauseId: c.clauseId, status: 'conflict', reason, conflictingClauseIds: [conflictingBaseline.clauseId, c.clauseId], supportingEvidence: c.supportingEvidence });
441
+ continue;
442
+ }
443
+ const mode = clauseMode(c.category, c.expectedDependentMode);
444
+ clauseResults.push(evaluateClause(c.clauseId, c.primitive, mode, ctx, c.supportingEvidence));
445
+ }
446
+ const authoredPrimitives = [...activeBaseline.map((c) => c.primitive), ...change.clauses.map((c) => c.primitive)];
447
+ const unexpectedChanges = comparison.differences.filter((d) => !authoredPrimitives.some((p) => primitiveAccountsForDifference(p, d))).map(toUnexpectedChangeResult);
448
+ const overallVerdict = clauseResults.every((r) => r.status === 'pass') && unexpectedChanges.length === 0 ? 'PASS' : 'FAIL';
449
+ return {
450
+ ok: true,
451
+ evaluation: { overallVerdict, activeBaselineClauseIds, supersededBaselineClauseIds: [...supersededIds], clauseResults, unexpectedChanges },
452
+ };
453
+ }
454
+ //# sourceMappingURL=frontendContractEvaluation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontendContractEvaluation.js","sourceRoot":"","sources":["../../src/domain/frontendContractEvaluation.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,EACxB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAY5D,OAAO,EAAE,iCAAiC,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAyCrG,SAAS,cAAc,CAAC,WAAgC,EAAE,MAAc;IACtE,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,WAAgC,EAAE,MAAc;IACrE,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO,UAAU,EAAE,OAAO,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,WAAgC,EAAE,MAAc;IACtE,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACxG,CAAC;AAED,SAAS,gBAAgB,CACvB,KAA8B,EAC9B,aAAqB,EACrB,aAAqB,EACrB,MAAyE;IAEzE,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,IAAI,CAAC,CAAC,aAAa,KAAK,aAAa,IAAK,MAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAChI,EAAE,IAAI,CAAC;AACV,CAAC;AAED,SAAS,aAAa,CAAC,WAAgC;IACrD,OAAO,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxH,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAgC,EAAE,MAAc;IAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,OAAO,QAAQ,EAAE,QAAQ,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,WAAgC,EAAE,MAAc,EAAE,QAA4B;IAClG,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,sNAAsN;AACtN,SAAS,aAAa,CAAC,SAA4B,EAAE,WAAmB;IACtE,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,CAAC,CAAC;QACX,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,MAAM,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,0BAA0B,GAAmF;IACjH,8BAA8B;IAC9B,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,2BAA2B;IAC3B,+BAA+B;IAC/B,wBAAwB;CACzB,CAAC;AAEF,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAE,MAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,CAAC,CAAE,MAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC;AAED,2GAA2G;AAE3G,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,gBAAgB;IAChB,oBAAoB;IACpB,2BAA2B;IAC3B,wBAAwB;IACxB,mBAAmB;IACnB,2BAA2B;IAC3B,oBAAoB;IACpB,8BAA8B;IAC9B,0BAA0B;IAC1B,4BAA4B;IAC5B,sCAAsC;CACvC,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAAC,IAA+B;IAC3D,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,SAA4B,EAAE,WAAgC,EAAE,KAA8B;IAC5H,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3E,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,MAAM,CAAC;YACjE,MAAM,aAAa,GAAG,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC;YAC7D,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,KAAK,aAAa,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,CAAC;gBAAE,OAAO,aAAa,CAAC;YACvI,MAAM,OAAO,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;YACrH,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACnC,CAAC;QACD,KAAK,2BAA2B,CAAC,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ;gBAAE,OAAO,aAAa,CAAC;YACpC,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;gBAAE,OAAO,MAAM,CAAC;YACrF,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;gBAAE,OAAO,MAAM,CAAC;YACrF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAC;gBACpG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;YAC5F,IAAI,CAAC,IAAI;gBAAE,OAAO,aAAa,CAAC;YAChC,OAAO,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;YAC3G,IAAI,MAAM;gBAAE,OAAO,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;YAC7G,IAAI,QAAQ;gBAAE,OAAO,QAAQ,KAAK,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACpE,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,KAAK,2BAA2B,CAAC,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;YAC5G,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC;YACxB,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;YACpJ,OAAO,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;QACjD,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;YACzG,IAAI,CAAC,IAAI;gBAAE,OAAO,aAAa,CAAC;YAChC,OAAO,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,CAAC;QACD,KAAK,8BAA8B,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YAC9C,IAAI,CAAC,IAAI;gBAAE,OAAO,aAAa,CAAC;YAChC,OAAO,IAAI,KAAK,8BAA8B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,CAAC;QACD,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,OAAO,aAAa,CAAC;YACjC,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,OAAO,aAAa,CAAC;YACjC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,CAAC;QACD,KAAK,sCAAsC,CAAC,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ;gBAAE,OAAO,aAAa,CAAC;YACpC,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,CAAC;QACD;YACE,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED,mFAAmF;AAEnF,SAAS,6BAA6B,CAAC,SAAyE,EAAE,GAAgB;IAChI,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACrE,MAAM,WAAW,GAAI,6BAAmD,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACpG,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;QACnF,IAAI,OAAO;YAAE,OAAO,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC/E,OAAO,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;QAAE,OAAO,aAAa,CAAC;IAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,aAAa,KAAK,aAAa,IAAI,CAAC,CAAC,aAAa,KAAK,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAChJ,CAAC;IACF,IAAI,OAAO;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC;IAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC5G,OAAO,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;AACjE,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAsF,EAAE,GAAgB;IACzI,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtE,MAAM,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACvE,CAAC;AAED,6IAA6I;AAC7I,SAAS,2BAA2B,CAClC,SAA4F,EAC5F,GAAgB,EAChB,SAAkB;IAElB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtE,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,KAAK,oBAAoB,CAAC;IAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC;IACrE,IAAI,SAAS;QAAE,OAAO,MAAM,CAAC;IAC7B,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IACxD,OAAO,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC;AAED,SAAS,uBAAuB,CAAC,SAA4B,EAAE,IAAc,EAAE,GAAgB;IAC7F,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,wBAAwB;YAC3B,OAAO,6BAA6B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACvD,KAAK,qCAAqC;YACxC,OAAO,yBAAyB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACnD,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB;YACvB,OAAO,2BAA2B,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC;QAC3E;YACE,OAAO,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,mFAAmF;AAEnF,SAAS,UAAU,CAAC,QAAqC,EAAE,aAAgD;IACzG,IAAI,QAAQ,KAAK,oBAAoB;QAAE,OAAO,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACvG,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,MAAuB,EAAE,kBAAuC;IACxG,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,mEAAmE,EAAE,kBAAkB,EAAE,CAAC;IAC9I,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,SAA4B,EAAE,IAAc,EAAE,GAAgB,EAAE,kBAAuC;IAC/I,IAAI,IAAI,KAAK,WAAW,IAAI,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACzG,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO;gBACL,QAAQ;gBACR,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,8HAA8H;gBACtI,kBAAkB;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAC9D,CAAC;AAED,oFAAoF;AAEpF,SAAS,uBAAuB,CAAC,CAAoB;IACnD,IAAI,CAAC,CAAC,IAAI,KAAK,qCAAqC,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC3H,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,CAAoB;IACvC,IAAI,CAAC,CAAC,IAAI,KAAK,qCAAqC;QAAE,OAAO,WAAW,CAAC;IACzE,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;QAAE,OAAO,UAAU,CAAC;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;QAAE,OAAO,UAAU,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,CAAoB,EAAE,CAAoB;IACpE,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED,mFAAmF;AAEnF,SAAS,2BAA2B,CAAC,IAA0B,EAAE,MAAyE,EAAE,CAAS,EAAE,CAAS;IAC9J,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC;IACvD,IAAI,CAAE,MAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7E,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,CAAC;AACtG,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,8BAA8B,CAAC,SAA4B,EAAE,IAA0B;IAC9F,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACvL,KAAK,oBAAoB;YACvB,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBACxC,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,IAAI,KAAK,6BAA6B,IAAI,IAAI,CAAC,IAAI,KAAK,2BAA2B,CAAC,CAC/H,CAAC;QACJ,KAAK,2BAA2B;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QAC/G,KAAK,qCAAqC,CAAC;QAC3C,KAAK,oBAAoB,CAAC;QAC1B,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC7F,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,KAAK,GAAG,IAAI,SAAS,CAAC,QAAQ,KAAK,GAAG,CAAC;YACpF,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QAC9E,CAAC;QACD,KAAK,wBAAwB;YAC3B,OAAO,2BAA2B,CAAC,IAAI,EAAE,0BAA0B,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7G,KAAK,mBAAmB;YACtB,OAAO,2BAA2B,CAAC,IAAI,EAAE,4BAA4B,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/G,KAAK,2BAA2B;YAC9B,OAAO,2BAA2B,CAAC,IAAI,EAAE,+BAA+B,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAClH,KAAK,oBAAoB;YACvB,OAAO,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/G,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc;gBAAE,OAAO,KAAK,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,gBAAgB,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7E,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;YACpG,IAAI,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;YACpG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,8BAA8B;YACjC,OAAO,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,IAAK,wBAA8C,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpK,KAAK,0BAA0B,CAAC;QAChC,KAAK,4BAA4B;YAC/B,OAAO,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC;QAC9C,KAAK,sCAAsC;YACzC,OAAO,KAAK,CAAC;QACf;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAA0B;IAC1D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC/H,CAAC;AAED,qFAAqF;AAErF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAsC;IAC7E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE9D,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,CAAC,gBAAgB,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/H,MAAM,eAAe,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,eAAe,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yCAAyC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5H,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACnE,IAAI,CAAC,oBAAoB,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kCAAkC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/H,MAAM,kBAAkB,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACvE,IAAI,CAAC,kBAAkB,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;IACnI,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,gBAAgB,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;IAEtH,IAAI,UAAU,CAAC,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gFAAgF,EAAE,CAAC;IACjH,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;QAC3D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8EAA8E,EAAE,CAAC;IAC/G,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,2BAA2B,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAqB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxG,MAAM,uBAAuB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEtE,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;QACtD,MAAM,aAAa,GAA6B;YAC9C,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAC7F,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC;SAC9F,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,2EAA2E,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/I,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,EAAE;SACvJ,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACvD,MAAM,aAAa,GAA6B,EAAE,CAAC;IAEnD,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACrK,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,oBAAoB,CAAC,CAAC,QAAQ,4BAA4B,iBAAiB,CAAC,QAAQ,wFAAwF,CAAC;YAC5L,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACnL,SAAS;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,QAAQ,2EAA2E,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnJ,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACvK,SAAS;QACX,CAAC;QACD,MAAM,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACpK,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,QAAQ,0BAA0B,mBAAmB,CAAC,QAAQ,wFAAwF,CAAC;YAC9L,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACrL,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC;QAC7D,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAClH,MAAM,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEpK,MAAM,cAAc,GAAmB,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3I,OAAO;QACL,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,EAAE,cAAc,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE;KAC3I,CAAC;AACJ,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { PRODUCER_NAME } from './schema.js';
2
+ import type { ClauseEvaluationResult, OverallVerdict, FrontendContractObservationReference } from './frontendContracts.js';
3
+ import type { UnexpectedChangeResult } from './frontendContractEvaluation.js';
4
+ export declare const EVALUATION_ARTIFACT_KIND: "my-frontend-observer/frontend-contract-evaluation";
5
+ export declare const EVALUATION_SCHEMA_VERSION: "1.0.0";
6
+ /** Enough logical identity to trace an evaluation back to its authoritative baseline/per-change contract without embedding either in full. */
7
+ export interface FrontendContractEvaluationSourceReference {
8
+ baselineId: string;
9
+ contractId: string;
10
+ }
11
+ export interface FrontendContractEvaluationArtifact {
12
+ artifactKind: typeof EVALUATION_ARTIFACT_KIND;
13
+ schemaVersion: typeof EVALUATION_SCHEMA_VERSION;
14
+ evaluationId: string;
15
+ evaluationRequestId: string;
16
+ producer: {
17
+ name: typeof PRODUCER_NAME;
18
+ version: string;
19
+ };
20
+ provenance: {
21
+ evaluatedAt: string;
22
+ };
23
+ contracts: FrontendContractEvaluationSourceReference;
24
+ before: FrontendContractObservationReference;
25
+ after: FrontendContractObservationReference;
26
+ comparisonId: string;
27
+ comparisonRequestId: string;
28
+ overallVerdict: OverallVerdict;
29
+ activeBaselineClauseIds: string[];
30
+ supersededBaselineClauseIds: string[];
31
+ clauseResults: ClauseEvaluationResult[];
32
+ unexpectedChanges: UnexpectedChangeResult[];
33
+ }
34
+ export type FrontendContractEvaluationArtifactValidationResult = {
35
+ valid: true;
36
+ } | {
37
+ valid: false;
38
+ reason: string;
39
+ };
40
+ export declare function isValidFrontendContractEvaluationArtifact(value: unknown): FrontendContractEvaluationArtifactValidationResult;
41
+ /**
42
+ * Pure assembly of the persistence envelope around an already-computed
43
+ * `FrontendContractEvaluationResult` (from `evaluateFrontendContract`) - never
44
+ * recomputes or reinterprets the evaluation. Callers (the application layer)
45
+ * supply the fresh `evaluationId`/`evaluationRequestId` from
46
+ * `frontendContractIdentity.ts` and the `evaluatedAt` timestamp.
47
+ */
48
+ export interface BuildFrontendContractEvaluationArtifactInput {
49
+ evaluationId: string;
50
+ evaluationRequestId: string;
51
+ producerVersion: string;
52
+ evaluatedAt: string;
53
+ baselineId: string;
54
+ contractId: string;
55
+ before: FrontendContractObservationReference;
56
+ after: FrontendContractObservationReference;
57
+ comparisonId: string;
58
+ comparisonRequestId: string;
59
+ overallVerdict: OverallVerdict;
60
+ activeBaselineClauseIds: string[];
61
+ supersededBaselineClauseIds: string[];
62
+ clauseResults: ClauseEvaluationResult[];
63
+ unexpectedChanges: UnexpectedChangeResult[];
64
+ }
65
+ export declare function buildFrontendContractEvaluationArtifact(input: BuildFrontendContractEvaluationArtifactInput): FrontendContractEvaluationArtifact;