@techspokes/typescript-wsdl-client 1.1.4 → 1.1.5
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/README.md +49 -1
- package/dist/app/generateApp.d.ts.map +1 -1
- package/dist/app/generateApp.js +8 -6
- package/dist/cli.js +49 -5
- package/dist/client/checkedDirectRuntime.d.ts +59 -0
- package/dist/client/checkedDirectRuntime.d.ts.map +1 -0
- package/dist/client/checkedDirectRuntime.js +23 -0
- package/dist/client/directClientRuntime.d.ts +49 -0
- package/dist/client/directClientRuntime.d.ts.map +1 -0
- package/dist/client/directClientRuntime.js +112 -0
- package/dist/client/directClientVersion.d.ts +4 -0
- package/dist/client/directClientVersion.d.ts.map +1 -0
- package/dist/client/directClientVersion.js +3 -0
- package/dist/client/generateDirectClient.d.ts +14 -0
- package/dist/client/generateDirectClient.d.ts.map +1 -0
- package/dist/client/generateDirectClient.js +136 -0
- package/dist/compiler/buildCanonicalGraph.d.ts +7 -0
- package/dist/compiler/buildCanonicalGraph.d.ts.map +1 -0
- package/dist/compiler/buildCanonicalGraph.js +381 -0
- package/dist/compiler/canonicalGraph.d.ts +198 -0
- package/dist/compiler/canonicalGraph.d.ts.map +1 -0
- package/dist/compiler/canonicalGraph.js +37 -0
- package/dist/compiler/catalogErrors.d.ts +18 -0
- package/dist/compiler/catalogErrors.d.ts.map +1 -0
- package/dist/compiler/catalogErrors.js +86 -0
- package/dist/compiler/catalogProvenance.d.ts +15 -0
- package/dist/compiler/catalogProvenance.d.ts.map +1 -0
- package/dist/compiler/catalogProvenance.js +229 -0
- package/dist/compiler/checkedAssessment.d.ts +91 -0
- package/dist/compiler/checkedAssessment.d.ts.map +1 -0
- package/dist/compiler/checkedAssessment.js +300 -0
- package/dist/compiler/checkedSourcePreparation.d.ts +35 -0
- package/dist/compiler/checkedSourcePreparation.d.ts.map +1 -0
- package/dist/compiler/checkedSourcePreparation.js +131 -0
- package/dist/compiler/complexTypeContent.d.ts +59 -0
- package/dist/compiler/complexTypeContent.d.ts.map +1 -0
- package/dist/compiler/complexTypeContent.js +558 -0
- package/dist/compiler/composeCanonicalGraph.d.ts +69 -0
- package/dist/compiler/composeCanonicalGraph.d.ts.map +1 -0
- package/dist/compiler/composeCanonicalGraph.js +252 -0
- package/dist/compiler/dataOwnership.d.ts +22 -0
- package/dist/compiler/dataOwnership.d.ts.map +1 -0
- package/dist/compiler/dataOwnership.js +157 -0
- package/dist/compiler/datatypeValues.d.ts +47 -0
- package/dist/compiler/datatypeValues.d.ts.map +1 -0
- package/dist/compiler/datatypeValues.js +275 -0
- package/dist/compiler/directCodec.d.ts +59 -0
- package/dist/compiler/directCodec.d.ts.map +1 -0
- package/dist/compiler/directCodec.js +192 -0
- package/dist/compiler/directExecutionPolicy.d.ts +10 -0
- package/dist/compiler/directExecutionPolicy.d.ts.map +1 -0
- package/dist/compiler/directExecutionPolicy.js +17 -0
- package/dist/compiler/directOperation.d.ts +72 -0
- package/dist/compiler/directOperation.d.ts.map +1 -0
- package/dist/compiler/directOperation.js +282 -0
- package/dist/compiler/directSoap.d.ts +42 -0
- package/dist/compiler/directSoap.d.ts.map +1 -0
- package/dist/compiler/directSoap.js +298 -0
- package/dist/compiler/directSoapSource.d.ts +15 -0
- package/dist/compiler/directSoapSource.d.ts.map +1 -0
- package/dist/compiler/directSoapSource.js +86 -0
- package/dist/compiler/directSourceCapsule.d.ts +97 -0
- package/dist/compiler/directSourceCapsule.d.ts.map +1 -0
- package/dist/compiler/directSourceCapsule.js +305 -0
- package/dist/compiler/directStructure.d.ts +51 -0
- package/dist/compiler/directStructure.d.ts.map +1 -0
- package/dist/compiler/directStructure.js +252 -0
- package/dist/compiler/directStructurePlan.d.ts +16 -0
- package/dist/compiler/directStructurePlan.d.ts.map +1 -0
- package/dist/compiler/directStructurePlan.js +58 -0
- package/dist/compiler/directValues.d.ts +69 -0
- package/dist/compiler/directValues.d.ts.map +1 -0
- package/dist/compiler/directValues.js +282 -0
- package/dist/compiler/finiteRe01Verification.d.ts +140 -0
- package/dist/compiler/finiteRe01Verification.d.ts.map +1 -0
- package/dist/compiler/finiteRe01Verification.js +830 -0
- package/dist/compiler/graphTraversal.d.ts +11 -0
- package/dist/compiler/graphTraversal.d.ts.map +1 -0
- package/dist/compiler/graphTraversal.js +37 -0
- package/dist/compiler/hypotheticalScopedIdentity.d.ts +23 -0
- package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +1 -0
- package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
- package/dist/compiler/occurrenceAnalysis.d.ts +65 -0
- package/dist/compiler/occurrenceAnalysis.d.ts.map +1 -0
- package/dist/compiler/occurrenceAnalysis.js +300 -0
- package/dist/compiler/originalSourceMembership.d.ts +6 -0
- package/dist/compiler/originalSourceMembership.d.ts.map +1 -0
- package/dist/compiler/originalSourceMembership.js +31 -0
- package/dist/compiler/particleAttribution.d.ts +17 -0
- package/dist/compiler/particleAttribution.d.ts.map +1 -0
- package/dist/compiler/particleAttribution.js +474 -0
- package/dist/compiler/particleDeclarationConsistency.d.ts +24 -0
- package/dist/compiler/particleDeclarationConsistency.d.ts.map +1 -0
- package/dist/compiler/particleDeclarationConsistency.js +197 -0
- package/dist/compiler/particleExtension.d.ts +22 -0
- package/dist/compiler/particleExtension.d.ts.map +1 -0
- package/dist/compiler/particleExtension.js +119 -0
- package/dist/compiler/particleLocalAssessment.d.ts +20 -0
- package/dist/compiler/particleLocalAssessment.d.ts.map +1 -0
- package/dist/compiler/particleLocalAssessment.js +92 -0
- package/dist/compiler/particleRestriction.d.ts +24 -0
- package/dist/compiler/particleRestriction.d.ts.map +1 -0
- package/dist/compiler/particleRestriction.js +489 -0
- package/dist/compiler/particleSemanticView.d.ts +50 -0
- package/dist/compiler/particleSemanticView.d.ts.map +1 -0
- package/dist/compiler/particleSemanticView.js +297 -0
- package/dist/compiler/particleWildcardRelation.d.ts +88 -0
- package/dist/compiler/particleWildcardRelation.d.ts.map +1 -0
- package/dist/compiler/particleWildcardRelation.js +143 -0
- package/dist/compiler/re01CandidateCorrespondence.d.ts +64 -0
- package/dist/compiler/re01CandidateCorrespondence.d.ts.map +1 -0
- package/dist/compiler/re01CandidateCorrespondence.js +572 -0
- package/dist/compiler/re01TypeProperties.d.ts +71 -0
- package/dist/compiler/re01TypeProperties.d.ts.map +1 -0
- package/dist/compiler/re01TypeProperties.js +120 -0
- package/dist/compiler/re01TypePropertyValidation.d.ts +23 -0
- package/dist/compiler/re01TypePropertyValidation.d.ts.map +1 -0
- package/dist/compiler/re01TypePropertyValidation.js +161 -0
- package/dist/compiler/resolveCanonicalGraph.d.ts +38 -0
- package/dist/compiler/resolveCanonicalGraph.d.ts.map +1 -0
- package/dist/compiler/resolveCanonicalGraph.js +170 -0
- package/dist/compiler/scalarSchemaAssessment.d.ts +425 -0
- package/dist/compiler/scalarSchemaAssessment.d.ts.map +1 -0
- package/dist/compiler/scalarSchemaAssessment.js +5198 -0
- package/dist/compiler/schemaAttributeGroupProperties.d.ts +17 -0
- package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +1 -0
- package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
- package/dist/compiler/schemaAttributeProperties.d.ts +10 -0
- package/dist/compiler/schemaAttributeProperties.d.ts.map +1 -0
- package/dist/compiler/schemaAttributeProperties.js +11 -0
- package/dist/compiler/schemaAttributeUses.d.ts +90 -0
- package/dist/compiler/schemaAttributeUses.d.ts.map +1 -0
- package/dist/compiler/schemaAttributeUses.js +725 -0
- package/dist/compiler/schemaBinaryWordReconstruction.d.ts +10 -0
- package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +1 -0
- package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
- package/dist/compiler/schemaBuiltinFacets.d.ts +14 -0
- package/dist/compiler/schemaBuiltinFacets.d.ts.map +1 -0
- package/dist/compiler/schemaBuiltinFacets.js +51 -0
- package/dist/compiler/schemaCalendarImages.d.ts +8 -0
- package/dist/compiler/schemaCalendarImages.d.ts.map +1 -0
- package/dist/compiler/schemaCalendarImages.js +204 -0
- package/dist/compiler/schemaCalendarLanguage.d.ts +11 -0
- package/dist/compiler/schemaCalendarLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaCalendarLanguage.js +227 -0
- package/dist/compiler/schemaComponentEquality.d.ts +28 -0
- package/dist/compiler/schemaComponentEquality.d.ts.map +1 -0
- package/dist/compiler/schemaComponentEquality.js +446 -0
- package/dist/compiler/schemaConstructionAssessment.d.ts +46 -0
- package/dist/compiler/schemaConstructionAssessment.d.ts.map +1 -0
- package/dist/compiler/schemaConstructionAssessment.js +663 -0
- package/dist/compiler/schemaDatatypeValues.d.ts +4 -0
- package/dist/compiler/schemaDatatypeValues.d.ts.map +1 -0
- package/dist/compiler/schemaDatatypeValues.js +2 -0
- package/dist/compiler/schemaDecimalLanguage.d.ts +7 -0
- package/dist/compiler/schemaDecimalLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaDecimalLanguage.js +102 -0
- package/dist/compiler/schemaDeclarationPrimitives.d.ts +34 -0
- package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +1 -0
- package/dist/compiler/schemaDeclarationPrimitives.js +194 -0
- package/dist/compiler/schemaDocumentSyntax.d.ts +55 -0
- package/dist/compiler/schemaDocumentSyntax.d.ts.map +1 -0
- package/dist/compiler/schemaDocumentSyntax.js +294 -0
- package/dist/compiler/schemaDurationLanguage.d.ts +11 -0
- package/dist/compiler/schemaDurationLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaDurationLanguage.js +170 -0
- package/dist/compiler/schemaElementProperties.d.ts +16 -0
- package/dist/compiler/schemaElementProperties.d.ts.map +1 -0
- package/dist/compiler/schemaElementProperties.js +23 -0
- package/dist/compiler/schemaEndpointWordCapacity.d.ts +36 -0
- package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +1 -0
- package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
- package/dist/compiler/schemaExactCalendar.d.ts +73 -0
- package/dist/compiler/schemaExactCalendar.d.ts.map +1 -0
- package/dist/compiler/schemaExactCalendar.js +264 -0
- package/dist/compiler/schemaFacetAnnotation.d.ts +32 -0
- package/dist/compiler/schemaFacetAnnotation.d.ts.map +1 -0
- package/dist/compiler/schemaFacetAnnotation.js +199 -0
- package/dist/compiler/schemaGeneratedScalarShape.d.ts +35 -0
- package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +1 -0
- package/dist/compiler/schemaGeneratedScalarShape.js +176 -0
- package/dist/compiler/schemaIdentityConstraints.d.ts +73 -0
- package/dist/compiler/schemaIdentityConstraints.d.ts.map +1 -0
- package/dist/compiler/schemaIdentityConstraints.js +362 -0
- package/dist/compiler/schemaIeeeLanguage.d.ts +43 -0
- package/dist/compiler/schemaIeeeLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaIeeeLanguage.js +759 -0
- package/dist/compiler/schemaIntegerImages.d.ts +11 -0
- package/dist/compiler/schemaIntegerImages.d.ts.map +1 -0
- package/dist/compiler/schemaIntegerImages.js +113 -0
- package/dist/compiler/schemaLexicalPredicates.d.ts +29 -0
- package/dist/compiler/schemaLexicalPredicates.d.ts.map +1 -0
- package/dist/compiler/schemaLexicalPredicates.js +63 -0
- package/dist/compiler/schemaNotationProperties.d.ts +32 -0
- package/dist/compiler/schemaNotationProperties.d.ts.map +1 -0
- package/dist/compiler/schemaNotationProperties.js +84 -0
- package/dist/compiler/schemaNumericImageConditions.d.ts +24 -0
- package/dist/compiler/schemaNumericImageConditions.d.ts.map +1 -0
- package/dist/compiler/schemaNumericImageConditions.js +66 -0
- package/dist/compiler/schemaParticleWildcardProperties.d.ts +20 -0
- package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +1 -0
- package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
- package/dist/compiler/schemaPattern.d.ts +1062 -0
- package/dist/compiler/schemaPattern.d.ts.map +1 -0
- package/dist/compiler/schemaPattern.js +581 -0
- package/dist/compiler/schemaRegularLanguage.d.ts +67 -0
- package/dist/compiler/schemaRegularLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaRegularLanguage.js +1166 -0
- package/dist/compiler/schemaScalarContext.d.ts +81 -0
- package/dist/compiler/schemaScalarContext.d.ts.map +1 -0
- package/dist/compiler/schemaScalarContext.js +78 -0
- package/dist/compiler/schemaScalarKernel.d.ts +182 -0
- package/dist/compiler/schemaScalarKernel.d.ts.map +1 -0
- package/dist/compiler/schemaScalarKernel.js +391 -0
- package/dist/compiler/schemaScalarWitnesses.d.ts +6 -0
- package/dist/compiler/schemaScalarWitnesses.d.ts.map +1 -0
- package/dist/compiler/schemaScalarWitnesses.js +118 -0
- package/dist/compiler/schemaSimpleTypeProperties.d.ts +95 -0
- package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +1 -0
- package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
- package/dist/compiler/schemaSourceGrammar.d.ts +27 -0
- package/dist/compiler/schemaSourceGrammar.d.ts.map +1 -0
- package/dist/compiler/schemaSourceGrammar.js +290 -0
- package/dist/compiler/schemaSourceLexical.d.ts +4 -0
- package/dist/compiler/schemaSourceLexical.d.ts.map +1 -0
- package/dist/compiler/schemaSourceLexical.js +12 -0
- package/dist/compiler/schemaSourceValues.d.ts +51 -0
- package/dist/compiler/schemaSourceValues.d.ts.map +1 -0
- package/dist/compiler/schemaSourceValues.js +225 -0
- package/dist/compiler/schemaSourceWildcards.d.ts +28 -0
- package/dist/compiler/schemaSourceWildcards.d.ts.map +1 -0
- package/dist/compiler/schemaSourceWildcards.js +247 -0
- package/dist/compiler/schemaSymbolicSequences.d.ts +16 -0
- package/dist/compiler/schemaSymbolicSequences.d.ts.map +1 -0
- package/dist/compiler/schemaSymbolicSequences.js +99 -0
- package/dist/compiler/schemaSymbolicValueSets.d.ts +32 -0
- package/dist/compiler/schemaSymbolicValueSets.d.ts.map +1 -0
- package/dist/compiler/schemaSymbolicValueSets.js +149 -0
- package/dist/compiler/schemaSyntaxAssessment.d.ts +25 -0
- package/dist/compiler/schemaSyntaxAssessment.d.ts.map +1 -0
- package/dist/compiler/schemaSyntaxAssessment.js +361 -0
- package/dist/compiler/schemaTemporalAliases.d.ts +6 -0
- package/dist/compiler/schemaTemporalAliases.d.ts.map +1 -0
- package/dist/compiler/schemaTemporalAliases.js +195 -0
- package/dist/compiler/schemaTokenImages.d.ts +9 -0
- package/dist/compiler/schemaTokenImages.d.ts.map +1 -0
- package/dist/compiler/schemaTokenImages.js +142 -0
- package/dist/compiler/schemaTypeIdentity.d.ts +39 -0
- package/dist/compiler/schemaTypeIdentity.d.ts.map +1 -0
- package/dist/compiler/schemaTypeIdentity.js +78 -0
- package/dist/compiler/schemaTypeRelations.d.ts +38 -0
- package/dist/compiler/schemaTypeRelations.d.ts.map +1 -0
- package/dist/compiler/schemaTypeRelations.js +576 -0
- package/dist/compiler/schemaUri.d.ts +13 -0
- package/dist/compiler/schemaUri.d.ts.map +1 -0
- package/dist/compiler/schemaUri.js +103 -0
- package/dist/compiler/schemaValueContext.d.ts +26 -0
- package/dist/compiler/schemaValueContext.d.ts.map +1 -0
- package/dist/compiler/schemaValueContext.js +1 -0
- package/dist/compiler/schemaValueImages.d.ts +10 -0
- package/dist/compiler/schemaValueImages.d.ts.map +1 -0
- package/dist/compiler/schemaValueImages.js +142 -0
- package/dist/compiler/schemaValueSequences.d.ts +15 -0
- package/dist/compiler/schemaValueSequences.d.ts.map +1 -0
- package/dist/compiler/schemaValueSequences.js +19 -0
- package/dist/compiler/semanticBudget.d.ts +50 -0
- package/dist/compiler/semanticBudget.d.ts.map +1 -0
- package/dist/compiler/semanticBudget.js +178 -0
- package/dist/compiler/semanticCatalog.d.ts +122 -0
- package/dist/compiler/semanticCatalog.d.ts.map +1 -0
- package/dist/compiler/semanticCatalog.js +160 -0
- package/dist/compiler/semanticContext.d.ts +172 -0
- package/dist/compiler/semanticContext.d.ts.map +1 -0
- package/dist/compiler/semanticContext.js +1168 -0
- package/dist/compiler/semanticTypeDependencies.d.ts +8 -0
- package/dist/compiler/semanticTypeDependencies.d.ts.map +1 -0
- package/dist/compiler/semanticTypeDependencies.js +64 -0
- package/dist/compiler/semanticTypeReference.d.ts +24 -0
- package/dist/compiler/semanticTypeReference.d.ts.map +1 -0
- package/dist/compiler/semanticTypeReference.js +36 -0
- package/dist/compiler/shapeResolver.d.ts +1 -0
- package/dist/compiler/shapeResolver.d.ts.map +1 -1
- package/dist/compiler/shapeResolver.js +7 -9
- package/dist/compiler/sourceSchemaBinding.d.ts +26 -0
- package/dist/compiler/sourceSchemaBinding.d.ts.map +1 -0
- package/dist/compiler/sourceSchemaBinding.js +39 -0
- package/dist/compiler/structuralCompanions.d.ts +16 -0
- package/dist/compiler/structuralCompanions.d.ts.map +1 -0
- package/dist/compiler/structuralCompanions.js +232 -0
- package/dist/compiler/validateSemanticGraph.d.ts +5 -0
- package/dist/compiler/validateSemanticGraph.d.ts.map +1 -0
- package/dist/compiler/validateSemanticGraph.js +376 -0
- package/dist/compiler/wildcardAlgebra.d.ts +26 -0
- package/dist/compiler/wildcardAlgebra.d.ts.map +1 -0
- package/dist/compiler/wildcardAlgebra.js +155 -0
- package/dist/gateway/generateGateway.d.ts.map +1 -1
- package/dist/gateway/generateGateway.js +2 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/loader/orderedSyntax.d.ts +77 -0
- package/dist/loader/orderedSyntax.d.ts.map +1 -0
- package/dist/loader/orderedSyntax.js +202 -0
- package/dist/loader/resolutionDepth.d.ts +7 -0
- package/dist/loader/resolutionDepth.d.ts.map +1 -0
- package/dist/loader/resolutionDepth.js +65 -0
- package/dist/loader/schemaInput.d.ts +53 -0
- package/dist/loader/schemaInput.d.ts.map +1 -0
- package/dist/loader/schemaInput.js +212 -0
- package/dist/loader/schemaResources.d.ts +59 -0
- package/dist/loader/schemaResources.d.ts.map +1 -0
- package/dist/loader/schemaResources.js +292 -0
- package/dist/openapi/generateOpenAPI.d.ts.map +1 -1
- package/dist/openapi/generateOpenAPI.js +2 -2
- package/dist/test/generateTests.d.ts.map +1 -1
- package/dist/test/generateTests.js +2 -2
- package/dist/util/xmlWhitespace.d.ts +3 -0
- package/dist/util/xmlWhitespace.d.ts.map +1 -0
- package/dist/util/xmlWhitespace.js +4 -0
- package/docs/README.md +14 -1
- package/docs/architecture.md +9 -0
- package/docs/cli-reference.md +21 -1
- package/docs/content-model-analysis.md +92 -0
- package/docs/content-model-baseline.md +121 -0
- package/docs/content-model-catalog.md +116 -0
- package/docs/content-model-companions.md +90 -0
- package/docs/content-model-composition.md +103 -0
- package/docs/content-model-decisions.md +79 -0
- package/docs/content-model-gateway-feasibility.md +169 -0
- package/docs/content-model-graph.md +121 -0
- package/docs/content-model-loading.md +163 -0
- package/docs/content-model-matching.md +85 -0
- package/docs/content-model-readiness.md +144 -0
- package/docs/content-model-resolution.md +81 -0
- package/docs/content-model-s02-handoff.md +98 -0
- package/docs/content-model-s06-au-01.md +425 -0
- package/docs/content-model-s06-dt-01.md +386 -0
- package/docs/content-model-s06-pw-01.md +350 -0
- package/docs/content-model-s06-re-01-resolver-implementation.md +869 -0
- package/docs/content-model-s06-re-01-resolver.md +513 -0
- package/docs/content-model-s06-re-01-scalar-witnesses.md +1423 -0
- package/docs/content-model-s06-re-01-support-reconstruction.md +6337 -0
- package/docs/content-model-s06-re-01.md +7477 -0
- package/docs/content-model-s06-research-handoff.md +909 -0
- package/docs/content-model-shipped-fix.md +83 -0
- package/docs/content-model-soap-feasibility.md +165 -0
- package/docs/decisions/002-streamable-responses.md +2 -0
- package/docs/decisions/003-content-model-contracts.md +280 -0
- package/docs/direct-values.md +311 -0
- package/docs/reference-validation.md +243 -0
- package/docs/releases/v1.1.5.md +38 -0
- package/docs/roadmap/README.md +2 -2
- package/docs/supported-patterns.md +13 -5
- package/package.json +26 -13
- package/src/generation/preambles/direct-client/typescript.preamble +3 -0
|
@@ -0,0 +1,572 @@
|
|
|
1
|
+
import { XSD_NAMESPACE } from '../loader/orderedSyntax.js';
|
|
2
|
+
import { assertSemanticContext, contextsShareRequest, isSemanticCandidateOf } from './semanticContext.js';
|
|
3
|
+
import { RE01_DERIVATION_DOMAIN } from './re01TypeProperties.js';
|
|
4
|
+
import { deriveActualComplexContent, deriveRawComplexContent, particleContentNode } from './complexTypeContent.js';
|
|
5
|
+
import { assessSourceAttributeUses } from './schemaAttributeUses.js';
|
|
6
|
+
import { compareSchemaFacetProperties, createSchemaScalarKernel } from './schemaScalarKernel.js';
|
|
7
|
+
import { checkTypeDerivation, declarationMethods, immediateTypeBase, RelationProblem } from './schemaTypeRelations.js';
|
|
8
|
+
import { namespaceSetSubset } from './wildcardAlgebra.js';
|
|
9
|
+
import { readParticleWildcard } from './schemaParticleWildcardProperties.js';
|
|
10
|
+
import { declaredType, resolveSemanticType, semanticTypeKey } from './schemaTypeIdentity.js';
|
|
11
|
+
import { collectSemanticTypeDependencies } from './semanticTypeDependencies.js';
|
|
12
|
+
const issued = new WeakMap();
|
|
13
|
+
const actualMappings = new WeakMap();
|
|
14
|
+
const actualGroupMappings = new WeakMap();
|
|
15
|
+
const ANY_TYPE = Object.freeze({ kind: 'builtin', name: Object.freeze({ namespace: XSD_NAMESPACE, local: 'anyType' }) });
|
|
16
|
+
class CorrespondenceAbort extends Error {
|
|
17
|
+
result;
|
|
18
|
+
constructor(result) {
|
|
19
|
+
super(result.kind);
|
|
20
|
+
this.result = result;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function assertCandidateCorrespondence(context, receipt) {
|
|
24
|
+
assertSemanticContext(context);
|
|
25
|
+
if (issued.get(receipt) !== context)
|
|
26
|
+
throw new TypeError('Unauthenticated candidate correspondence');
|
|
27
|
+
}
|
|
28
|
+
/** The selected ancestor is computed from the complete context, never selected by a caller label. */
|
|
29
|
+
export function re01Ancestor(context, target) {
|
|
30
|
+
assertSemanticContext(context);
|
|
31
|
+
const result = context.budget.guard(() => {
|
|
32
|
+
const b = context.budget;
|
|
33
|
+
b.chargeWork(4);
|
|
34
|
+
const dependencies = collectSemanticTypeDependencies(context);
|
|
35
|
+
const first = immediateTypeBase(context, { kind: 'local', target });
|
|
36
|
+
if (first.kind === 'resource-limit')
|
|
37
|
+
return first;
|
|
38
|
+
if (first.kind !== 'checked' || !first.value)
|
|
39
|
+
return { kind: 'unresolved', rule: 'ancestor-domain', component: target, message: 'Original immediate base is unavailable' };
|
|
40
|
+
dependencies.add(first.typeDependencies);
|
|
41
|
+
const seen = new Set();
|
|
42
|
+
let current = first.value;
|
|
43
|
+
for (;;) {
|
|
44
|
+
const resolved = resolveSemanticType(context, current);
|
|
45
|
+
if (!('identity' in resolved))
|
|
46
|
+
return { kind: 'unresolved', rule: 'ancestor-domain', component: target, message: 'Ancestor is unavailable' };
|
|
47
|
+
// The ur-type's actual base property is itself; the general ancestry
|
|
48
|
+
// accessor stops there to avoid treating ordinary cycles as legal.
|
|
49
|
+
if (resolved.kind === 'builtin' && resolved.name.local === 'anyType')
|
|
50
|
+
return { kind: 'checked', ancestor: current, typeDependencies: dependencies.snapshot() };
|
|
51
|
+
const key = semanticTypeKey(context, resolved.identity);
|
|
52
|
+
b.chargeWork(4 + key.length);
|
|
53
|
+
if (seen.has(key))
|
|
54
|
+
return { kind: 'invalid-evidence', rule: 'ancestor-cycle', component: target, message: 'Ancestor chain is cyclic' };
|
|
55
|
+
seen.add(key);
|
|
56
|
+
const parent = immediateTypeBase(context, current);
|
|
57
|
+
if (parent.kind !== 'checked')
|
|
58
|
+
return parent.kind === 'resource-limit' ? parent : { kind: 'unresolved', rule: parent.rule, component: target, message: parent.message };
|
|
59
|
+
dependencies.add(parent.typeDependencies);
|
|
60
|
+
if (!parent.value)
|
|
61
|
+
return { kind: 'unresolved', rule: 'ancestor-domain', component: target, message: 'No proper ancestor with ur-type base' };
|
|
62
|
+
const next = resolveSemanticType(context, parent.value);
|
|
63
|
+
if (next.kind === 'builtin' && next.name.namespace === XSD_NAMESPACE && next.name.local === 'anyType') {
|
|
64
|
+
b.chargeWork(4);
|
|
65
|
+
return Object.freeze({ kind: 'checked', ancestor: current, typeDependencies: dependencies.snapshot() });
|
|
66
|
+
}
|
|
67
|
+
current = parent.value;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return result.kind === 'resource-limit' ? result : context.budget.guard(() => context.budget.freeze(context.budget.snapshot(result)));
|
|
71
|
+
}
|
|
72
|
+
/** A sufficient contextual contradiction, not a complete RE01 decision.
|
|
73
|
+
* Every fresh affiliate remains a child legality root in domain B. A complex
|
|
74
|
+
* head outside X -> E -> A's fixed chain cannot satisfy e-props-correct.4.
|
|
75
|
+
*/
|
|
76
|
+
export function proveRe01FreshAffiliationObstruction(actual, parent, target) {
|
|
77
|
+
assertSemanticContext(actual);
|
|
78
|
+
assertSemanticContext(parent);
|
|
79
|
+
const b = parent.budget;
|
|
80
|
+
return b.guard(() => {
|
|
81
|
+
if (!contextsShareRequest(parent, actual))
|
|
82
|
+
throw new TypeError('Contexts belong to different requests');
|
|
83
|
+
b.chargeWork(8);
|
|
84
|
+
const publish = (result) => b.freeze(b.snapshot(result));
|
|
85
|
+
const unresolved = (rule, message) => {
|
|
86
|
+
b.chargeWork(8);
|
|
87
|
+
return publish({ kind: 'unresolved', rule, message, contextId: parent.contextId, component: target });
|
|
88
|
+
};
|
|
89
|
+
const unknown = (message) => {
|
|
90
|
+
b.chargeWork(6);
|
|
91
|
+
return publish({ kind: 'not-established', contextId: parent.contextId, target, message });
|
|
92
|
+
};
|
|
93
|
+
const key = (reference) => {
|
|
94
|
+
const found = resolveSemanticType(parent, reference);
|
|
95
|
+
return 'identity' in found ? semanticTypeKey(parent, found.identity) : undefined;
|
|
96
|
+
};
|
|
97
|
+
try {
|
|
98
|
+
if (actual.kind !== 'actual' || actual.membership !== 'complete-actual-plus-additions'
|
|
99
|
+
|| parent.membership !== 'complete-actual-plus-additions')
|
|
100
|
+
return unresolved('complete-domain-membership', 'The contradiction requires the complete immutable actual and parent environments');
|
|
101
|
+
if (typeof target !== 'string' || !target)
|
|
102
|
+
throw new TypeError('Expected a target component ID');
|
|
103
|
+
const selected = parent.lookup(target);
|
|
104
|
+
if (selected.kind !== 'found' || selected.node.kind !== 'complexType')
|
|
105
|
+
return unknown('The target is not an available complex extension');
|
|
106
|
+
const raw = parent.rawTypeProperties(target);
|
|
107
|
+
if (!raw && !parent.sourceNode(target) || parent.rawSimpleTypeProperties(target))
|
|
108
|
+
return unresolved('missing-type-component-properties', 'The complex target requires its exact derivation properties');
|
|
109
|
+
if ((raw?.derivation.method ?? selected.node.derivation?.kind ?? 'restriction') !== 'extension')
|
|
110
|
+
return unknown('Only nonprimitive complex extensions require this two-step construction');
|
|
111
|
+
const first = immediateTypeBase(parent, { kind: 'local', target });
|
|
112
|
+
if (first.kind === 'resource-limit')
|
|
113
|
+
return first;
|
|
114
|
+
if (first.kind !== 'checked' || !first.value)
|
|
115
|
+
return unresolved('ancestor-domain', 'The target immediate base is unavailable');
|
|
116
|
+
const base = resolveSemanticType(parent, first.value);
|
|
117
|
+
if (base.kind !== 'component' || base.node.kind !== 'complexType')
|
|
118
|
+
return unknown('Simple-base and ur-type extensions are outside this obstruction');
|
|
119
|
+
const designated = re01Ancestor(parent, target);
|
|
120
|
+
if (designated.kind !== 'checked')
|
|
121
|
+
return designated;
|
|
122
|
+
const ancestorKey = key(designated.ancestor), firstKey = key(first.value);
|
|
123
|
+
if (!ancestorKey || !firstKey)
|
|
124
|
+
return unresolved('ancestor-domain', 'Exact ancestor identity is unavailable');
|
|
125
|
+
if (b.compareText(firstKey, ancestorKey) === 0)
|
|
126
|
+
return unknown('Primitive no-change does not introduce a restriction edge');
|
|
127
|
+
for (const id of parent.members) {
|
|
128
|
+
b.chargeWork();
|
|
129
|
+
// Original declarations available in H are not necessarily legality
|
|
130
|
+
// roots. Fresh declarations, including inherited ones, always are.
|
|
131
|
+
if (actual.lookup(id).kind === 'found')
|
|
132
|
+
continue;
|
|
133
|
+
const found = parent.lookup(id);
|
|
134
|
+
if (found.kind !== 'found' || found.node.kind !== 'element' || found.node.identity.kind !== 'global'
|
|
135
|
+
|| !found.node.substitutionGroup)
|
|
136
|
+
continue;
|
|
137
|
+
const memberType = resolveSemanticType(parent, declaredType(parent, found.node));
|
|
138
|
+
if (memberType.kind !== 'component' || b.compareText(memberType.node.id, target) !== 0)
|
|
139
|
+
continue;
|
|
140
|
+
const head = parent.resolve(found.node.substitutionGroup);
|
|
141
|
+
if (head.kind !== 'found' || head.node.kind !== 'element' || head.node.identity.kind !== 'global')
|
|
142
|
+
return unresolved('e-props-correct.4', 'The mandatory affiliate lacks its exact global head');
|
|
143
|
+
const headReference = declaredType(parent, head.node), headType = resolveSemanticType(parent, headReference);
|
|
144
|
+
if (headType.kind !== 'component' || headType.node.kind !== 'complexType')
|
|
145
|
+
continue;
|
|
146
|
+
if (b.compareText(headType.node.id, target) === 0)
|
|
147
|
+
continue; // Identity precedes derivation exclusions.
|
|
148
|
+
if (parent.rawSimpleTypeProperties(headType.node.id))
|
|
149
|
+
return unresolved('missing-type-component-properties', 'The head requires unambiguous complex type properties');
|
|
150
|
+
const path = checkTypeDerivation(parent, designated.ancestor, headReference, []);
|
|
151
|
+
if (path.kind === 'resource-limit')
|
|
152
|
+
return path;
|
|
153
|
+
if (path.kind !== 'checked')
|
|
154
|
+
return unresolved(path.rule, path.message);
|
|
155
|
+
if (path.value)
|
|
156
|
+
continue; // B can already be on the fixed A ancestry.
|
|
157
|
+
const headBase = immediateTypeBase(parent, headReference);
|
|
158
|
+
if (headBase.kind === 'resource-limit')
|
|
159
|
+
return headBase;
|
|
160
|
+
if (headBase.kind !== 'checked' || !headBase.value)
|
|
161
|
+
return unresolved('ancestor-domain', 'The head type immediate base is unavailable');
|
|
162
|
+
const headRaw = parent.rawTypeProperties(headType.node.id);
|
|
163
|
+
if (!headRaw && !parent.sourceNode(headType.node.id))
|
|
164
|
+
return unresolved('missing-type-component-properties', 'The head type requires its exact immediate derivation');
|
|
165
|
+
const headBaseKey = key(headBase.value);
|
|
166
|
+
if (!headBaseKey)
|
|
167
|
+
return unresolved('ancestor-domain', 'The head type base identity is unavailable');
|
|
168
|
+
if ((headRaw?.derivation.method ?? headType.node.derivation?.kind ?? 'restriction') === 'extension'
|
|
169
|
+
&& b.compareText(headBaseKey, ancestorKey) === 0)
|
|
170
|
+
continue; // Existing B may itself be E.
|
|
171
|
+
b.chargeWork(14);
|
|
172
|
+
return publish({ kind: 'proved-no-construction', domain: RE01_DERIVATION_DOMAIN,
|
|
173
|
+
scope: 'contextual-nonprimitive-two-step', criterion: 'mandatory-fresh-affiliate-fixed-complex-ancestry',
|
|
174
|
+
actualContextId: actual.contextId, contextId: parent.contextId, target, ancestor: designated.ancestor,
|
|
175
|
+
affiliate: id, head: head.node.id, headType: headType.node.id });
|
|
176
|
+
}
|
|
177
|
+
return unknown('No mandatory fresh affiliate satisfies the fixed complex ancestry contradiction');
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (error instanceof RelationProblem)
|
|
181
|
+
return unresolved(error.result.rule, error.message);
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
export function checkCandidateCorrespondence(actual, parent, candidate, target, intermediate, ancestor) {
|
|
187
|
+
assertSemanticContext(actual);
|
|
188
|
+
assertSemanticContext(parent);
|
|
189
|
+
assertSemanticContext(candidate);
|
|
190
|
+
const b = candidate.budget, charge = b.chargeWork;
|
|
191
|
+
return b.guard(() => {
|
|
192
|
+
const typeDependencies = collectSemanticTypeDependencies(candidate);
|
|
193
|
+
if (!contextsShareRequest(actual, parent) || !isSemanticCandidateOf(parent, candidate))
|
|
194
|
+
throw new TypeError('Candidate is not an authenticated direct child of this request');
|
|
195
|
+
const suppliedAncestor = b.freeze(b.snapshot(ancestor));
|
|
196
|
+
const fail = (rule, component, message, kind = 'candidate-rejected') => {
|
|
197
|
+
charge(12 + rule.length + message.length + (component?.length ?? 0));
|
|
198
|
+
throw new CorrespondenceAbort(Object.freeze({ kind, rule, component, message }));
|
|
199
|
+
};
|
|
200
|
+
const node = (context, id) => {
|
|
201
|
+
const found = context.lookup(id);
|
|
202
|
+
return found.kind === 'found' ? found.node : fail('complete-domain-membership', id, 'Required component is unavailable', 'unresolved');
|
|
203
|
+
};
|
|
204
|
+
const refKey = (context, reference) => {
|
|
205
|
+
const found = resolveSemanticType(context, reference);
|
|
206
|
+
// Preservation compares an available type's identity. Full validity is
|
|
207
|
+
// owed through its semantic owners, not through an unrelated raw read.
|
|
208
|
+
if ('identity' in found)
|
|
209
|
+
return semanticTypeKey(context, found.identity);
|
|
210
|
+
return fail('reference-correspondence', undefined, 'Correspondence reference is unavailable', 'unresolved');
|
|
211
|
+
};
|
|
212
|
+
const sameSet = (a, c) => {
|
|
213
|
+
charge(4);
|
|
214
|
+
const x = new Set(), y = new Set();
|
|
215
|
+
for (const id of a) {
|
|
216
|
+
charge(2 + id.length);
|
|
217
|
+
x.add(id);
|
|
218
|
+
}
|
|
219
|
+
for (const id of c) {
|
|
220
|
+
charge(2 + id.length);
|
|
221
|
+
y.add(id);
|
|
222
|
+
}
|
|
223
|
+
if (x.size !== y.size)
|
|
224
|
+
return false;
|
|
225
|
+
for (const id of x) {
|
|
226
|
+
charge(1 + id.length);
|
|
227
|
+
if (!y.has(id))
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
return true;
|
|
231
|
+
};
|
|
232
|
+
charge(4);
|
|
233
|
+
const scalarObligations = [];
|
|
234
|
+
const scalarValue = (context, result) => {
|
|
235
|
+
if (result.kind !== 'checked') {
|
|
236
|
+
if (result.kind === 'resource-limit')
|
|
237
|
+
throw new CorrespondenceAbort(result);
|
|
238
|
+
const origin = result.contextId ?? context.contextId;
|
|
239
|
+
charge(5);
|
|
240
|
+
throw new CorrespondenceAbort(Object.freeze({ ...result, contextId: origin,
|
|
241
|
+
kind: result.kind === 'invalid-schema' && origin !== actual.contextId ? 'candidate-rejected' : result.kind }));
|
|
242
|
+
}
|
|
243
|
+
typeDependencies.add(result.typeDependencies);
|
|
244
|
+
for (const obligation of result.obligations) {
|
|
245
|
+
charge(3);
|
|
246
|
+
scalarObligations.push({ contextId: obligation.contextId ?? context.contextId, obligation });
|
|
247
|
+
}
|
|
248
|
+
return result.value;
|
|
249
|
+
};
|
|
250
|
+
const compareSimple = (id) => {
|
|
251
|
+
charge(4);
|
|
252
|
+
const reference = { kind: 'local', target: id };
|
|
253
|
+
const left = scalarValue(parent, createSchemaScalarKernel(parent).contentProperties(reference, id));
|
|
254
|
+
const right = scalarValue(candidate, createSchemaScalarKernel(candidate).contentProperties(reference, id));
|
|
255
|
+
const text = (a, c) => a === undefined || c === undefined
|
|
256
|
+
? a === c : b.compareText(a, c) === 0;
|
|
257
|
+
// Equal definition IDs across two contexts do not prove equal properties.
|
|
258
|
+
// These references retain component identity; structural substitution is
|
|
259
|
+
// the separate cos-particle-extend equality owner's task.
|
|
260
|
+
if (!text(left.definition, right.definition) || !text(left.name?.namespace, right.name?.namespace)
|
|
261
|
+
|| !text(left.name?.local, right.name?.local) || !text(left.targetNamespace, right.targetNamespace)
|
|
262
|
+
|| !sameSet(left.final, right.final) || left.variety !== right.variety || !text(left.primitive, right.primitive)
|
|
263
|
+
|| Boolean(left.base) !== Boolean(right.base) || Boolean(left.item) !== Boolean(right.item)
|
|
264
|
+
|| (left.members?.length ?? 0) !== (right.members?.length ?? 0))
|
|
265
|
+
return fail('original-simple-property-correspondence', id, 'Original simple type metadata changed');
|
|
266
|
+
if (left.base && right.base && refKey(parent, left.base) !== refKey(candidate, right.base)
|
|
267
|
+
|| left.item && right.item && refKey(parent, left.item) !== refKey(candidate, right.item))
|
|
268
|
+
return fail('original-simple-property-correspondence', id, 'Original scalar base or item identity changed');
|
|
269
|
+
for (let index = 0; index < (left.members?.length ?? 0); index++) {
|
|
270
|
+
charge();
|
|
271
|
+
if (refKey(parent, left.members[index]) !== refKey(candidate, right.members[index]))
|
|
272
|
+
return fail('original-simple-property-correspondence', id, 'Original ordered scalar member identity changed');
|
|
273
|
+
}
|
|
274
|
+
const facets = compareSchemaFacetProperties(parent, reference, id, candidate, reference, id);
|
|
275
|
+
if (facets.kind === 'resource-limit')
|
|
276
|
+
throw new CorrespondenceAbort(facets);
|
|
277
|
+
if (facets.kind !== 'checked') {
|
|
278
|
+
if (facets.side === 'comparison')
|
|
279
|
+
return fail(facets.rule, id, facets.message, 'unresolved');
|
|
280
|
+
charge(8);
|
|
281
|
+
throw new CorrespondenceAbort(Object.freeze({ kind: facets.kind === 'invalid-schema' && facets.contextId !== actual.contextId
|
|
282
|
+
? 'candidate-rejected' : facets.kind, rule: facets.rule, component: facets.component, contextId: facets.contextId, message: facets.message }));
|
|
283
|
+
}
|
|
284
|
+
typeDependencies.add(facets.typeDependencies);
|
|
285
|
+
for (const obligation of facets.obligations) {
|
|
286
|
+
charge(3);
|
|
287
|
+
if (!obligation.contextId)
|
|
288
|
+
return fail('scalar-obligation-context', id, 'Cross-context scalar obligation lacks its originating context', 'unresolved');
|
|
289
|
+
scalarObligations.push({ contextId: obligation.contextId, obligation });
|
|
290
|
+
}
|
|
291
|
+
if (!facets.value)
|
|
292
|
+
return fail('original-simple-property-correspondence', id, 'Original simple type facet properties changed');
|
|
293
|
+
// Only the shared private facet owner can compare complete annotation
|
|
294
|
+
// data or the identity of an originally bound facet component. Aggregate
|
|
295
|
+
// presence alone cannot establish full annotation correspondence.
|
|
296
|
+
if (facets.annotationCorrespondence === 'different')
|
|
297
|
+
return fail('original-facet-annotation-correspondence', id, 'Original facet annotation properties changed');
|
|
298
|
+
if (facets.annotationCorrespondence !== 'equal')
|
|
299
|
+
return fail('original-facet-annotation-correspondence', id, 'Original facet annotations require exact supplied data or original component binding', 'unresolved');
|
|
300
|
+
};
|
|
301
|
+
const mapped = (id) => {
|
|
302
|
+
const prior = parent.rawTypeProperties(id);
|
|
303
|
+
if (prior) {
|
|
304
|
+
charge(8);
|
|
305
|
+
if ('particle' in prior.content && prior.content.original) {
|
|
306
|
+
const content = deriveRawComplexContent(parent, id);
|
|
307
|
+
if (content.kind !== 'checked')
|
|
308
|
+
throw new CorrespondenceAbort(content.kind === 'resource-limit' ? content
|
|
309
|
+
: { ...content, kind: content.kind === 'invalid-input' ? 'invalid-evidence' : 'unresolved' });
|
|
310
|
+
return { properties: prior, context: parent, view: content.view, synthetic: content.view.synthetic, scalarObligations: [], typeDependencies: [] };
|
|
311
|
+
}
|
|
312
|
+
return { properties: prior, context: parent, synthetic: [], scalarObligations: [], typeDependencies: [] };
|
|
313
|
+
}
|
|
314
|
+
let cache = actualMappings.get(actual);
|
|
315
|
+
if (!cache) {
|
|
316
|
+
charge(2);
|
|
317
|
+
cache = new Map();
|
|
318
|
+
actualMappings.set(actual, cache);
|
|
319
|
+
}
|
|
320
|
+
const cached = cache.get(id);
|
|
321
|
+
if (cached) {
|
|
322
|
+
typeDependencies.add(cached.typeDependencies);
|
|
323
|
+
for (const obligation of cached.scalarObligations) {
|
|
324
|
+
charge(3);
|
|
325
|
+
scalarObligations.push({ contextId: obligation.contextId ?? actual.contextId, obligation });
|
|
326
|
+
}
|
|
327
|
+
return cached;
|
|
328
|
+
}
|
|
329
|
+
const original = node(actual, id);
|
|
330
|
+
if (original.kind !== 'complexType')
|
|
331
|
+
return fail('original-property-correspondence', id, 'Expected an original complex type', 'invalid-evidence');
|
|
332
|
+
const content = deriveActualComplexContent(actual, id), attrs = assessSourceAttributeUses(actual, id);
|
|
333
|
+
if (content.kind !== 'checked')
|
|
334
|
+
throw new CorrespondenceAbort(content.kind === 'resource-limit' ? content
|
|
335
|
+
: { ...content, kind: content.kind === 'invalid-input' ? 'invalid-evidence' : 'unresolved' });
|
|
336
|
+
if (attrs.kind !== 'checked')
|
|
337
|
+
throw new CorrespondenceAbort(attrs);
|
|
338
|
+
typeDependencies.add(attrs.typeDependencies);
|
|
339
|
+
for (const obligation of attrs.scalarObligations) {
|
|
340
|
+
charge(3);
|
|
341
|
+
scalarObligations.push({ contextId: obligation.contextId ?? actual.contextId, obligation });
|
|
342
|
+
}
|
|
343
|
+
charge(20 + attrs.value.uses.length);
|
|
344
|
+
const properties = {
|
|
345
|
+
type: id, derivation: { method: original.derivation?.kind ?? 'restriction', base: original.derivation?.base ?? ANY_TYPE },
|
|
346
|
+
targetNamespace: original.context.effectiveNamespace,
|
|
347
|
+
abstract: original.abstract, final: declarationMethods(actual, original, 'final'),
|
|
348
|
+
block: declarationMethods(actual, original, 'block'), content: content.view.content,
|
|
349
|
+
attributeUses: attrs.value.uses.map(use => use.id), wildcard: attrs.value.wildcard, provenance: { kind: 'actual-mapped', original: id },
|
|
350
|
+
};
|
|
351
|
+
charge(9);
|
|
352
|
+
const result = Object.freeze({ properties: b.freeze(b.snapshot(properties)), context: actual,
|
|
353
|
+
view: content.view, synthetic: content.view.synthetic, scalarObligations: attrs.scalarObligations, typeDependencies: attrs.typeDependencies });
|
|
354
|
+
cache.set(id, result);
|
|
355
|
+
return result;
|
|
356
|
+
};
|
|
357
|
+
const typeNamespace = (context, id, properties) => {
|
|
358
|
+
const definition = node(context, id);
|
|
359
|
+
if (properties.targetNamespace !== undefined)
|
|
360
|
+
return properties.targetNamespace;
|
|
361
|
+
if (definition.identity.kind === 'global')
|
|
362
|
+
return definition.identity.name.namespace;
|
|
363
|
+
const original = actual.sourceNode(id);
|
|
364
|
+
if (original)
|
|
365
|
+
return original.context.effectiveNamespace;
|
|
366
|
+
return fail('original-type-target-namespace', id, 'An abstract scoped type lacks its namespace property', 'unresolved');
|
|
367
|
+
};
|
|
368
|
+
const mappedGroup = (id) => {
|
|
369
|
+
const prior = parent.rawAttributeGroupProperties(id);
|
|
370
|
+
if (prior)
|
|
371
|
+
return prior;
|
|
372
|
+
let cache = actualGroupMappings.get(actual);
|
|
373
|
+
if (!cache) {
|
|
374
|
+
charge(2);
|
|
375
|
+
cache = new Map();
|
|
376
|
+
actualGroupMappings.set(actual, cache);
|
|
377
|
+
}
|
|
378
|
+
const cached = cache.get(id);
|
|
379
|
+
if (cached) {
|
|
380
|
+
typeDependencies.add(cached.typeDependencies);
|
|
381
|
+
for (const obligation of cached.scalarObligations) {
|
|
382
|
+
charge(3);
|
|
383
|
+
scalarObligations.push({ contextId: obligation.contextId ?? actual.contextId, obligation });
|
|
384
|
+
}
|
|
385
|
+
return cached.properties;
|
|
386
|
+
}
|
|
387
|
+
const attrs = assessSourceAttributeUses(actual, id);
|
|
388
|
+
if (attrs.kind !== 'checked')
|
|
389
|
+
throw new CorrespondenceAbort(attrs);
|
|
390
|
+
typeDependencies.add(attrs.typeDependencies);
|
|
391
|
+
for (const obligation of attrs.scalarObligations) {
|
|
392
|
+
charge(3);
|
|
393
|
+
scalarObligations.push({ contextId: obligation.contextId ?? actual.contextId, obligation });
|
|
394
|
+
}
|
|
395
|
+
charge(6 + attrs.value.uses.length);
|
|
396
|
+
const properties = b.freeze(b.snapshot({ group: id, attributeUses: attrs.value.uses.map(use => use.id), wildcard: attrs.value.wildcard }));
|
|
397
|
+
cache.set(id, { properties, scalarObligations: attrs.scalarObligations, typeDependencies: attrs.typeDependencies });
|
|
398
|
+
return properties;
|
|
399
|
+
};
|
|
400
|
+
const compareContent = (left, right) => {
|
|
401
|
+
const a = left.properties.content, c = right.content;
|
|
402
|
+
if (a.kind !== c.kind)
|
|
403
|
+
return fail('endpoint-content-variety', right.type, 'Original effective content variety changed');
|
|
404
|
+
if (a.kind === 'empty')
|
|
405
|
+
return;
|
|
406
|
+
if (a.kind === 'simple' && c.kind === 'simple') {
|
|
407
|
+
// Source complex facade describes the exact content definition, even
|
|
408
|
+
// when a mapped anonymous simple type is not in the canonical graph.
|
|
409
|
+
const sourceRef = left.context.kind === 'actual' ? { kind: 'local', target: right.type } : a.type;
|
|
410
|
+
const x = scalarValue(left.context, createSchemaScalarKernel(left.context).contentIdentity(sourceRef, right.type));
|
|
411
|
+
const y = scalarValue(candidate, createSchemaScalarKernel(candidate).contentIdentity(c.type, right.type));
|
|
412
|
+
charge(x.definition.length + y.definition.length + 2);
|
|
413
|
+
if (x.definition !== y.definition)
|
|
414
|
+
return fail('endpoint-scalar-identity', right.type, 'Original effective simple type identity was not retained');
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
if (a.kind === 'opaque-builtin' && c.kind === 'opaque-builtin') {
|
|
418
|
+
if (refKey(left.context, a.type) !== refKey(candidate, c.type))
|
|
419
|
+
return fail('endpoint-builtin-identity', right.type, 'Opaque builtin identity changed');
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
if (!('particle' in a) || !('particle' in c))
|
|
423
|
+
return fail('endpoint-content-variety', right.type, 'Content property mismatch');
|
|
424
|
+
const rightContent = deriveRawComplexContent(candidate, right.type);
|
|
425
|
+
if (rightContent.kind !== 'checked')
|
|
426
|
+
throw new CorrespondenceAbort(rightContent.kind === 'resource-limit' ? rightContent
|
|
427
|
+
: { ...rightContent, kind: rightContent.kind === 'invalid-input' ? 'invalid-evidence' : 'unresolved' });
|
|
428
|
+
charge(6 + left.synthetic.length);
|
|
429
|
+
const synthetic = new Set(left.synthetic), forward = new Map(), reverse = new Map();
|
|
430
|
+
charge(3);
|
|
431
|
+
const pairs = [[a.particle, c.particle]];
|
|
432
|
+
while (pairs.length) {
|
|
433
|
+
charge(3);
|
|
434
|
+
const [xid, yid] = pairs.pop();
|
|
435
|
+
if (!synthetic.has(xid)) {
|
|
436
|
+
if (xid !== yid)
|
|
437
|
+
return fail('endpoint-original-particle', right.type, 'Original declared particle identity changed');
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
if (forward.has(xid)) {
|
|
441
|
+
if (forward.get(xid) !== yid)
|
|
442
|
+
return fail('endpoint-particle-sharing', right.type, 'Shared generated particle was split');
|
|
443
|
+
continue;
|
|
444
|
+
}
|
|
445
|
+
if (reverse.has(yid))
|
|
446
|
+
return fail('endpoint-particle-sharing', right.type, 'Distinct generated particles were merged');
|
|
447
|
+
charge(4);
|
|
448
|
+
forward.set(xid, yid);
|
|
449
|
+
reverse.set(yid, xid);
|
|
450
|
+
const x = left.view && particleContentNode(left.context, left.view, xid), y = particleContentNode(candidate, rightContent.view, yid);
|
|
451
|
+
if (x?.kind === 'particle' && y?.kind === 'particle')
|
|
452
|
+
charge(4 + x.occurs.min.length + x.occurs.max.length + y.occurs.min.length + y.occurs.max.length);
|
|
453
|
+
if (x?.kind !== 'particle' || y?.kind !== 'particle' || x.term.kind !== y.term.kind || x.occurs.min !== y.occurs.min || x.occurs.max !== y.occurs.max)
|
|
454
|
+
return fail('endpoint-raw-particle', right.type, 'Generated raw particle structure changed');
|
|
455
|
+
if ('children' in x.term && 'children' in y.term) {
|
|
456
|
+
if (x.term.children.length !== y.term.children.length)
|
|
457
|
+
return fail('endpoint-raw-particle', right.type, 'Generated compositor child count changed');
|
|
458
|
+
for (let i = 0; i < x.term.children.length; i++) {
|
|
459
|
+
charge(3);
|
|
460
|
+
pairs.push([x.term.children[i], y.term.children[i]]);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
else if (x.term.kind === 'any' && y.term.kind === 'any') {
|
|
464
|
+
const xs = readParticleWildcard(left.context, x), ys = readParticleWildcard(candidate, y);
|
|
465
|
+
if (xs.processContents !== ys.processContents || !namespaceSetSubset(xs.namespace, ys.namespace, charge)
|
|
466
|
+
|| !namespaceSetSubset(ys.namespace, xs.namespace, charge))
|
|
467
|
+
return fail('endpoint-raw-wildcard', right.type, 'Generated wildcard properties changed');
|
|
468
|
+
}
|
|
469
|
+
else
|
|
470
|
+
return fail('endpoint-generated-kind', right.type, 'Unqualified generated content component', 'unresolved');
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
try {
|
|
474
|
+
if (actual.kind !== 'actual')
|
|
475
|
+
return fail('actual-context', target, 'Original source context is required', 'invalid-evidence');
|
|
476
|
+
if (parent.membership !== 'complete-actual-plus-additions' || candidate.membership !== 'complete-actual-plus-additions')
|
|
477
|
+
return fail('complete-domain-membership', target, 'Semantic candidate must retain the complete available environment', 'unresolved');
|
|
478
|
+
if (parent.scalarSlotMembership !== 'complete-original' || candidate.scalarSlotMembership !== 'complete-original')
|
|
479
|
+
return fail('complete-scalar-slot-membership', target, 'Semantic candidate must retain every original scalar component', 'unresolved');
|
|
480
|
+
const before = node(parent, target), endpoint = node(candidate, target), e = node(candidate, intermediate);
|
|
481
|
+
if (before.kind !== 'complexType' || endpoint.kind !== 'complexType' || e.kind !== 'complexType')
|
|
482
|
+
return fail('two-step-types', target, 'Endpoint and intermediate must be complex types', 'invalid-evidence');
|
|
483
|
+
const computed = re01Ancestor(parent, target);
|
|
484
|
+
if (computed.kind !== 'checked')
|
|
485
|
+
throw new CorrespondenceAbort(computed);
|
|
486
|
+
typeDependencies.add(computed.typeDependencies);
|
|
487
|
+
if (refKey(parent, computed.ancestor) !== refKey(parent, suppliedAncestor))
|
|
488
|
+
return fail('ancestor-correspondence', target, 'Supplied ancestor differs from the original chain', 'invalid-evidence');
|
|
489
|
+
const endProps = candidate.rawTypeProperties(target), middleProps = candidate.rawTypeProperties(intermediate);
|
|
490
|
+
if (!endProps || !middleProps)
|
|
491
|
+
return fail('raw-type-properties', target, 'Endpoint and intermediate need complete raw properties', 'unresolved');
|
|
492
|
+
if (endProps.derivation.method !== 'restriction' || refKey(candidate, endProps.derivation.base) !== refKey(candidate, { kind: 'local', target: intermediate })
|
|
493
|
+
|| middleProps.derivation.method !== 'extension' || refKey(candidate, middleProps.derivation.base) !== refKey(candidate, suppliedAncestor))
|
|
494
|
+
return fail('two-step-construction', target, 'Expected extension from the designated ancestor then endpoint restriction');
|
|
495
|
+
charge(4);
|
|
496
|
+
const originalProperties = [], fresh = [];
|
|
497
|
+
for (const id of candidate.members) {
|
|
498
|
+
const original = parent.lookup(id);
|
|
499
|
+
if (original.kind !== 'found') {
|
|
500
|
+
charge();
|
|
501
|
+
fresh.push(id);
|
|
502
|
+
continue;
|
|
503
|
+
}
|
|
504
|
+
const group = candidate.rawAttributeGroupProperties(id);
|
|
505
|
+
const rawSimple = candidate.rawSimpleTypeProperties(id);
|
|
506
|
+
const element = candidate.rawElementProperties(id);
|
|
507
|
+
const attribute = candidate.rawAttributeProperties(id);
|
|
508
|
+
const properties = candidate.rawTypeProperties(id);
|
|
509
|
+
if ((group || rawSimple || element || attribute || properties) && candidate.originalSourceComponentAbsent(id))
|
|
510
|
+
return fail('source-only-property-overlay', id, 'A source-only diagnostic node cannot receive component properties');
|
|
511
|
+
if (group) {
|
|
512
|
+
const prior = mappedGroup(id);
|
|
513
|
+
if (!sameSet(group.attributeUses, prior.attributeUses) || Boolean(group.wildcard) !== Boolean(prior.wildcard))
|
|
514
|
+
return fail('original-group-property-correspondence', id, 'Original effective attribute group properties changed');
|
|
515
|
+
if (group.wildcard && prior.wildcard && (group.wildcard.processContents !== prior.wildcard.processContents
|
|
516
|
+
|| !namespaceSetSubset(group.wildcard.namespace, prior.wildcard.namespace, charge) || !namespaceSetSubset(prior.wildcard.namespace, group.wildcard.namespace, charge)))
|
|
517
|
+
return fail('original-group-property-correspondence', id, 'Original effective group wildcard changed');
|
|
518
|
+
charge();
|
|
519
|
+
originalProperties.push(id);
|
|
520
|
+
}
|
|
521
|
+
if (rawSimple) {
|
|
522
|
+
compareSimple(id);
|
|
523
|
+
charge();
|
|
524
|
+
originalProperties.push(id);
|
|
525
|
+
}
|
|
526
|
+
if (element) {
|
|
527
|
+
if (!sameSet(element.final, declarationMethods(parent, original.node, 'final')) || !sameSet(element.block, declarationMethods(parent, original.node, 'block')))
|
|
528
|
+
return fail('original-element-property-correspondence', id, 'Original declaration flags changed');
|
|
529
|
+
}
|
|
530
|
+
if (element?.type !== undefined || attribute) {
|
|
531
|
+
const current = node(candidate, id);
|
|
532
|
+
if (original.node.kind !== 'element' && original.node.kind !== 'attribute' || current.kind !== 'element' && current.kind !== 'attribute')
|
|
533
|
+
return fail('original-declaration-type-correspondence', id, 'Explicit type requires a declaration');
|
|
534
|
+
if (refKey(parent, declaredType(parent, original.node)) !== refKey(candidate, declaredType(candidate, current)))
|
|
535
|
+
return fail('original-declaration-type-correspondence', id, 'Original declaration type identity changed');
|
|
536
|
+
charge();
|
|
537
|
+
originalProperties.push(id);
|
|
538
|
+
}
|
|
539
|
+
if (!properties)
|
|
540
|
+
continue;
|
|
541
|
+
const left = mapped(id), prior = left.properties;
|
|
542
|
+
if (typeNamespace(candidate, id, properties) !== typeNamespace(left.context, id, prior)
|
|
543
|
+
|| properties.abstract !== prior.abstract || !sameSet(properties.final, prior.final) || !sameSet(properties.block, prior.block)
|
|
544
|
+
|| !sameSet(properties.attributeUses, prior.attributeUses))
|
|
545
|
+
return fail('original-type-property-correspondence', id, 'Original flags or attribute-use identities changed');
|
|
546
|
+
if (id !== target && (properties.derivation.method !== prior.derivation.method || refKey(candidate, properties.derivation.base) !== refKey(left.context, prior.derivation.base)))
|
|
547
|
+
return fail('original-base-correspondence', id, 'A nonendpoint derivation changed');
|
|
548
|
+
if (Boolean(properties.wildcard) !== Boolean(prior.wildcard))
|
|
549
|
+
return fail('original-wildcard-correspondence', id, 'Original wildcard presence changed');
|
|
550
|
+
if (properties.wildcard && prior.wildcard && (properties.wildcard.processContents !== prior.wildcard.processContents
|
|
551
|
+
|| !namespaceSetSubset(properties.wildcard.namespace, prior.wildcard.namespace, charge) || !namespaceSetSubset(prior.wildcard.namespace, properties.wildcard.namespace, charge)))
|
|
552
|
+
return fail('original-wildcard-correspondence', id, 'Original wildcard properties changed');
|
|
553
|
+
compareContent(left, properties);
|
|
554
|
+
charge();
|
|
555
|
+
originalProperties.push(id);
|
|
556
|
+
}
|
|
557
|
+
charge(16 + originalProperties.length + fresh.length + scalarObligations.length);
|
|
558
|
+
const receipt = b.freeze(b.snapshot({ kind: 'checked', authority: RE01_DERIVATION_DOMAIN,
|
|
559
|
+
parentContext: parent.contextId, contextId: candidate.contextId, target, intermediate, ancestor: computed.ancestor,
|
|
560
|
+
originalProperties: Object.freeze(originalProperties), fresh: Object.freeze(fresh), scalarObligations: Object.freeze(scalarObligations), typeDependencies: typeDependencies.snapshot() }));
|
|
561
|
+
issued.set(receipt, candidate);
|
|
562
|
+
return receipt;
|
|
563
|
+
}
|
|
564
|
+
catch (error) {
|
|
565
|
+
if (error instanceof CorrespondenceAbort)
|
|
566
|
+
return error.result;
|
|
567
|
+
if (error instanceof RelationProblem)
|
|
568
|
+
return Object.freeze({ kind: 'unresolved', rule: error.result.rule, component: error.result.component, message: error.message });
|
|
569
|
+
throw error;
|
|
570
|
+
}
|
|
571
|
+
});
|
|
572
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/** Explicit XSD type properties, separate from canonical XML source contributions. */
|
|
2
|
+
import type { NodeId, Reference } from './canonicalGraph.js';
|
|
3
|
+
import type { NamespaceConstraint, WildcardProcess } from './wildcardAlgebra.js';
|
|
4
|
+
import type { SemanticBudget } from './semanticBudget.js';
|
|
5
|
+
import type { SemanticTypeReference } from './semanticTypeReference.js';
|
|
6
|
+
export declare const RE01_DERIVATION_DOMAIN: "RE01-derivation-B-v1";
|
|
7
|
+
export type ComplexDerivationMethod = 'extension' | 'restriction';
|
|
8
|
+
declare const originalParticleAuthority: unique symbol;
|
|
9
|
+
/** Opaque selection of an actual source-mapped particle, never a validity receipt. */
|
|
10
|
+
export type OriginalComplexParticleHandle = Readonly<{
|
|
11
|
+
owner: NodeId;
|
|
12
|
+
particle: NodeId;
|
|
13
|
+
[originalParticleAuthority]: true;
|
|
14
|
+
}>;
|
|
15
|
+
declare const originalUrWildcardAuthority: unique symbol;
|
|
16
|
+
/** Unchanged actual-source native UR leaf, never a caller-supplied origin flag. */
|
|
17
|
+
export type OriginalUrWildcardHandle = Readonly<{
|
|
18
|
+
owner: NodeId;
|
|
19
|
+
particle: NodeId;
|
|
20
|
+
[originalUrWildcardAuthority]: true;
|
|
21
|
+
}>;
|
|
22
|
+
export type RawComplexContent = Readonly<{
|
|
23
|
+
kind: 'empty';
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'simple';
|
|
26
|
+
type: SemanticTypeReference;
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'mixed' | 'element-only';
|
|
29
|
+
particle: NodeId;
|
|
30
|
+
original?: OriginalComplexParticleHandle;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'opaque-builtin';
|
|
33
|
+
type: Reference;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* This is supplied data, not a checked semantic receipt. In particular the
|
|
37
|
+
* actual-mapped label does not authenticate effective-property computation.
|
|
38
|
+
* The aggregate owner must compare with privately issued actual owner evidence.
|
|
39
|
+
*/
|
|
40
|
+
export type RawComplexTypeProperties = Readonly<{
|
|
41
|
+
type: NodeId;
|
|
42
|
+
/** Explicit semantic namespace for anonymous helpers; empty means absent.
|
|
43
|
+
* Omission supplies no namespace fact for a fresh scoped helper. */
|
|
44
|
+
targetNamespace?: string;
|
|
45
|
+
derivation: Readonly<{
|
|
46
|
+
base: SemanticTypeReference;
|
|
47
|
+
method: ComplexDerivationMethod;
|
|
48
|
+
}>;
|
|
49
|
+
abstract: boolean;
|
|
50
|
+
final: readonly ComplexDerivationMethod[];
|
|
51
|
+
block: readonly ComplexDerivationMethod[];
|
|
52
|
+
content: RawComplexContent;
|
|
53
|
+
/** Complete effective AU identities, including inherited uses; never a QName map. */
|
|
54
|
+
attributeUses: readonly NodeId[];
|
|
55
|
+
wildcard?: Readonly<{
|
|
56
|
+
namespace: NamespaceConstraint;
|
|
57
|
+
processContents: WildcardProcess;
|
|
58
|
+
sources: readonly NodeId[];
|
|
59
|
+
}>;
|
|
60
|
+
provenance: Readonly<{
|
|
61
|
+
kind: 'actual-mapped';
|
|
62
|
+
original: NodeId;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'hypothetical-abstract';
|
|
65
|
+
originals: readonly NodeId[];
|
|
66
|
+
}>;
|
|
67
|
+
}>;
|
|
68
|
+
/** Runtime data-shape boundary, shared by preparation and property consumers. */
|
|
69
|
+
export declare function assertRawComplexTypeShape(value: unknown, budget: SemanticBudget): asserts value is RawComplexTypeProperties;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=re01TypeProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"re01TypeProperties.d.ts","sourceRoot":"","sources":["../../src/compiler/re01TypeProperties.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,KAAK,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAC,mBAAmB,EAAE,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEtE,eAAO,MAAM,sBAAsB,EAAG,sBAA+B,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,aAAa,CAAC;AAClE,OAAO,CAAC,MAAM,yBAAyB,EAAE,OAAO,MAAM,CAAC;AACvD,sFAAsF;AACtF,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC;CACpE,CAAC,CAAC;AACH,OAAO,CAAC,MAAM,2BAA2B,EAAE,OAAO,MAAM,CAAC;AACzD,mFAAmF;AACnF,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC;CACtE,CAAC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CACtC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAC,GAC/D;IAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAA;CAAC,GAC5F;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAC1C,CAAC;AACF;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb;wEACoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,qBAAqB,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAC,CAAC,CAAC;IACrF,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,qFAAqF;IACrF,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,mBAAmB,CAAC;QAAC,eAAe,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAC,CAAC,CAAC;IACpH,UAAU,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAC5D;QAAC,IAAI,EAAE,uBAAuB,CAAC;QAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;KAAC,CAAC,CAAC;CAClE,CAAC,CAAC;AAEH,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,wBAAwB,CAsE3H"}
|