@techspokes/typescript-wsdl-client 1.1.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -68
- package/dist/app/generateApp.d.ts +0 -1
- package/dist/app/generateApp.js +1 -1
- package/dist/app/generateCheckedApp.d.ts +38 -0
- package/dist/app/generateCheckedApp.js +108 -0
- package/dist/checkedPipeline.d.ts +155 -0
- package/dist/checkedPipeline.js +448 -0
- package/dist/checkedPlanning.d.ts +123 -0
- package/dist/checkedPlanning.js +268 -0
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +92 -2
- package/dist/client/checkedDirectRuntime.d.ts +40 -3
- package/dist/client/checkedDirectRuntime.js +28 -8
- package/dist/client/directClientRuntime.d.ts +27 -2
- package/dist/client/directClientRuntime.js +142 -89
- package/dist/client/directClientVersion.d.ts +3 -1
- package/dist/client/directClientVersion.js +3 -0
- package/dist/client/generateClient.d.ts +0 -1
- package/dist/client/generateClient.js +98 -28
- package/dist/client/generateDirectClient.d.ts +21 -3
- package/dist/client/generateDirectClient.js +138 -6
- package/dist/client/generateOperations.d.ts +0 -1
- package/dist/client/generateOperations.js +30 -11
- package/dist/client/generateTypes.d.ts +0 -1
- package/dist/client/generateUtils.d.ts +0 -1
- package/dist/client/generateUtils.js +7 -1
- package/dist/compiler/applicationGroups.d.ts +53 -0
- package/dist/compiler/applicationGroups.js +403 -0
- package/dist/compiler/buildCanonicalGraph.d.ts +0 -1
- package/dist/compiler/canonicalGraph.d.ts +4 -16
- package/dist/compiler/canonicalGraph.js +1 -8
- package/dist/compiler/catalogErrors.d.ts +0 -1
- package/dist/compiler/catalogProvenance.d.ts +0 -1
- package/dist/compiler/checkedAssessment.d.ts +0 -1
- package/dist/compiler/checkedAssessment.js +1 -1
- package/dist/compiler/checkedComponentSource.d.ts +16 -0
- package/dist/compiler/checkedComponentSource.js +31 -0
- package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
- package/dist/compiler/checkedSourcePreparation.js +71 -0
- package/dist/compiler/complexTypeContent.d.ts +5 -6
- package/dist/compiler/complexTypeContent.js +2 -2
- package/dist/compiler/componentCorrespondence.d.ts +32 -0
- package/dist/compiler/componentCorrespondence.js +140 -0
- package/dist/compiler/componentRecordProjection.d.ts +112 -0
- package/dist/compiler/componentRecordProjection.js +329 -0
- package/dist/compiler/componentSoapPreparation.d.ts +20 -0
- package/dist/compiler/componentSoapPreparation.js +36 -0
- package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
- package/dist/compiler/dataOwnership.d.ts +0 -1
- package/dist/compiler/dataOwnership.js +14 -4
- package/dist/compiler/datatypeValues.d.ts +0 -1
- package/dist/compiler/declarationIdentity.d.ts +22 -0
- package/dist/compiler/declarationIdentity.js +9 -0
- package/dist/compiler/directCodec.d.ts +79 -2
- package/dist/compiler/directCodec.js +310 -92
- package/dist/compiler/directExecutionPolicy.d.ts +0 -1
- package/dist/compiler/directOperation.d.ts +72 -8
- package/dist/compiler/directOperation.js +164 -19
- package/dist/compiler/directSoap.d.ts +29 -5
- package/dist/compiler/directSoap.js +154 -44
- package/dist/compiler/directSoapSource.d.ts +24 -1
- package/dist/compiler/directSoapSource.js +166 -19
- package/dist/compiler/directSourceCapsule.d.ts +74 -2
- package/dist/compiler/directSourceCapsule.js +484 -6
- package/dist/compiler/directStructure.d.ts +83 -6
- package/dist/compiler/directStructure.js +353 -58
- package/dist/compiler/directStructurePlan.d.ts +144 -2
- package/dist/compiler/directStructurePlan.js +615 -30
- package/dist/compiler/directValues.d.ts +76 -5
- package/dist/compiler/directValues.js +967 -117
- package/dist/compiler/finiteRe01Construction.d.ts +69 -0
- package/dist/compiler/finiteRe01Construction.js +422 -0
- package/dist/compiler/finiteRe01Verification.d.ts +81 -3
- package/dist/compiler/finiteRe01Verification.js +391 -4
- package/dist/compiler/generateCatalog.d.ts +0 -1
- package/dist/compiler/graphTraversal.d.ts +0 -1
- package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
- package/dist/compiler/legacyDeclarations.d.ts +26 -0
- package/dist/compiler/legacyDeclarations.js +144 -0
- package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
- package/dist/compiler/occurrenceAnalysis.js +23 -7
- package/dist/compiler/originalSourceMembership.d.ts +0 -1
- package/dist/compiler/particleAttribution.d.ts +0 -1
- package/dist/compiler/particleAttribution.js +20 -0
- package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
- package/dist/compiler/particleDeclarationConsistency.js +9 -0
- package/dist/compiler/particleExtension.d.ts +0 -1
- package/dist/compiler/particleExtension.js +5 -1
- package/dist/compiler/particleLocalAssessment.d.ts +0 -1
- package/dist/compiler/particleRestriction.d.ts +0 -1
- package/dist/compiler/particleRestriction.js +6 -1
- package/dist/compiler/particleSemanticView.d.ts +2 -1
- package/dist/compiler/particleSemanticView.js +16 -3
- package/dist/compiler/particleWildcardRelation.d.ts +0 -1
- package/dist/compiler/projectionScalar.d.ts +49 -0
- package/dist/compiler/projectionScalar.js +218 -0
- package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
- package/dist/compiler/re01CandidateAssignments.js +341 -0
- package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
- package/dist/compiler/re01CandidateCorrespondence.js +167 -38
- package/dist/compiler/re01TypeProperties.d.ts +0 -1
- package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
- package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
- package/dist/compiler/resolveCanonicalGraph.js +77 -7
- package/dist/compiler/rpcStringValues.d.ts +30 -0
- package/dist/compiler/rpcStringValues.js +196 -0
- package/dist/compiler/rpcTypedValues.d.ts +48 -0
- package/dist/compiler/rpcTypedValues.js +190 -0
- package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
- package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
- package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
- package/dist/compiler/schemaAttributeUses.d.ts +22 -2
- package/dist/compiler/schemaAttributeUses.js +86 -13
- package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
- package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
- package/dist/compiler/schemaCalendarImages.d.ts +0 -1
- package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
- package/dist/compiler/schemaCompiler.d.ts +0 -1
- package/dist/compiler/schemaCompiler.js +44 -109
- package/dist/compiler/schemaComponentEquality.d.ts +0 -1
- package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
- package/dist/compiler/schemaConstructionAssessment.js +88 -6
- package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
- package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
- package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
- package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
- package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
- package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
- package/dist/compiler/schemaElementInstance.d.ts +30 -0
- package/dist/compiler/schemaElementInstance.js +45 -0
- package/dist/compiler/schemaElementProperties.d.ts +0 -1
- package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
- package/dist/compiler/schemaExactCalendar.d.ts +0 -1
- package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
- package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
- package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
- package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
- package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
- package/dist/compiler/schemaIntegerImages.d.ts +0 -1
- package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
- package/dist/compiler/schemaNotationProperties.d.ts +0 -1
- package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
- package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
- package/dist/compiler/schemaPattern.d.ts +0 -1
- package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
- package/dist/compiler/schemaScalarContext.d.ts +5 -1
- package/dist/compiler/schemaScalarKernel.d.ts +0 -1
- package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
- package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
- package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
- package/dist/compiler/schemaSourceLexical.d.ts +0 -1
- package/dist/compiler/schemaSourceValues.d.ts +0 -1
- package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
- package/dist/compiler/schemaSourceWildcards.js +3 -1
- package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
- package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
- package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
- package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
- package/dist/compiler/schemaTokenImages.d.ts +0 -1
- package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
- package/dist/compiler/schemaTypeIdentity.js +2 -0
- package/dist/compiler/schemaTypeRelations.d.ts +0 -1
- package/dist/compiler/schemaUri.d.ts +0 -1
- package/dist/compiler/schemaValueContext.d.ts +0 -1
- package/dist/compiler/schemaValueImages.d.ts +0 -1
- package/dist/compiler/schemaValueSequences.d.ts +0 -1
- package/dist/compiler/semanticBudget.d.ts +18 -1
- package/dist/compiler/semanticBudget.js +17 -2
- package/dist/compiler/semanticCatalog.d.ts +2 -3
- package/dist/compiler/semanticContext.d.ts +12 -1
- package/dist/compiler/semanticContext.js +39 -0
- package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
- package/dist/compiler/semanticTypeReference.d.ts +0 -1
- package/dist/compiler/shapeResolver.d.ts +0 -1
- package/dist/compiler/soapHeaders.d.ts +16 -0
- package/dist/compiler/soapHeaders.js +42 -0
- package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
- package/dist/compiler/standardSchemaComponents.d.ts +71 -0
- package/dist/compiler/standardSchemaComponents.js +74 -0
- package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
- package/dist/compiler/standardSchemaConstruction.js +34 -0
- package/dist/compiler/structuralCompanions.d.ts +0 -1
- package/dist/compiler/validateSemanticGraph.d.ts +0 -1
- package/dist/compiler/wildcardAlgebra.d.ts +0 -1
- package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
- package/dist/compiler/wsdlPolicyRequirements.js +239 -0
- package/dist/config.d.ts +0 -1
- package/dist/gateway/generateCheckedGateway.d.ts +32 -0
- package/dist/gateway/generateCheckedGateway.js +293 -0
- package/dist/gateway/generateComposedGateway.d.ts +16 -0
- package/dist/gateway/generateComposedGateway.js +65 -0
- package/dist/gateway/generateGateway.d.ts +0 -1
- package/dist/gateway/generateGateway.js +1 -0
- package/dist/gateway/generators.d.ts +0 -1
- package/dist/gateway/generators.js +19 -4
- package/dist/gateway/helpers.d.ts +1 -1
- package/dist/gateway/helpers.js +15 -0
- package/dist/generation/componentShape.d.ts +14 -0
- package/dist/generation/componentShape.js +293 -0
- package/dist/generation/preamble.d.ts +0 -1
- package/dist/generation/sourceLayout.d.ts +13 -0
- package/dist/generation/sourceLayout.js +40 -0
- package/dist/generation/writeGeneratedSource.d.ts +0 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.js +4 -1
- package/dist/loader/fetch.d.ts +0 -1
- package/dist/loader/orderedSyntax.d.ts +12 -1
- package/dist/loader/orderedSyntax.js +40 -6
- package/dist/loader/resolutionDepth.d.ts +0 -1
- package/dist/loader/schemaInput.d.ts +28 -1
- package/dist/loader/schemaInput.js +41 -4
- package/dist/loader/schemaResources.d.ts +2 -1
- package/dist/loader/schemaResources.js +45 -4
- package/dist/loader/wsdlLoader.d.ts +0 -1
- package/dist/multiServicePipeline.d.ts +41 -0
- package/dist/multiServicePipeline.js +287 -0
- package/dist/openapi/casing.d.ts +0 -1
- package/dist/openapi/composeOpenAPI.d.ts +29 -0
- package/dist/openapi/composeOpenAPI.js +322 -0
- package/dist/openapi/generateOpenAPI.d.ts +0 -1
- package/dist/openapi/generatePaths.d.ts +0 -1
- package/dist/openapi/generateSchemas.d.ts +0 -1
- package/dist/openapi/security.d.ts +0 -1
- package/dist/pipeline.d.ts +7 -3
- package/dist/pipeline.js +15 -0
- package/dist/test/generateCheckedTests.d.ts +17 -0
- package/dist/test/generateCheckedTests.js +60 -0
- package/dist/test/generateTests.d.ts +0 -1
- package/dist/test/generators.d.ts +0 -1
- package/dist/test/mockData.d.ts +0 -1
- package/dist/test/mockData.js +20 -14
- package/dist/util/attributeWildcards.d.ts +0 -1
- package/dist/util/builder.d.ts +0 -1
- package/dist/util/catalogMeta.d.ts +0 -1
- package/dist/util/checkedCliDiagnostics.d.ts +11 -0
- package/dist/util/checkedCliDiagnostics.js +22 -0
- package/dist/util/cli.d.ts +0 -1
- package/dist/util/errors.d.ts +0 -1
- package/dist/util/imports.d.ts +0 -1
- package/dist/util/runtimeSource.d.ts +0 -1
- package/dist/util/runtimeSource.js +3 -5
- package/dist/util/securityConfig.d.ts +0 -1
- package/dist/util/streamConfig.d.ts +0 -1
- package/dist/util/tools.d.ts +0 -1
- package/dist/util/xmlWhitespace.d.ts +0 -1
- package/dist/xsd/primitives.d.ts +0 -1
- package/docs/agent-skill.md +12 -1
- package/docs/api-reference.md +127 -9
- package/docs/checked-gateway.md +212 -0
- package/docs/checked-generation.md +167 -0
- package/docs/cli-reference.md +48 -6
- package/docs/concepts.md +139 -5
- package/docs/configuration.md +15 -4
- package/docs/corpus.md +33 -0
- package/docs/direct-values.md +13 -13
- package/docs/examples/checked-forecast.wsdl +19 -0
- package/docs/gateway-guide.md +104 -27
- package/docs/generated-code.md +22 -11
- package/docs/mapping-contract.md +114 -0
- package/docs/migration-playbook.md +5 -1
- package/docs/migration.md +124 -6
- package/docs/output-anatomy.md +21 -18
- package/docs/production.md +7 -5
- package/docs/start-here.md +19 -3
- package/docs/supported-patterns.md +24 -3
- package/docs/testing.md +119 -31
- package/docs/troubleshooting.md +3 -1
- package/llms.txt +16 -8
- package/package.json +64 -23
- package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
- package/src/runtime/clientStreamMethods.tpl.txt +156 -148
- package/src/runtime/operationsStreamHelper.tpl.txt +6 -6
- package/src/runtime/streamXml.ts +49 -21
- package/dist/app/generateApp.d.ts.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
- package/dist/client/directClientRuntime.d.ts.map +0 -1
- package/dist/client/directClientVersion.d.ts.map +0 -1
- package/dist/client/generateClient.d.ts.map +0 -1
- package/dist/client/generateDirectClient.d.ts.map +0 -1
- package/dist/client/generateOperations.d.ts.map +0 -1
- package/dist/client/generateTypes.d.ts.map +0 -1
- package/dist/client/generateUtils.d.ts.map +0 -1
- package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
- package/dist/compiler/canonicalGraph.d.ts.map +0 -1
- package/dist/compiler/catalogErrors.d.ts.map +0 -1
- package/dist/compiler/catalogProvenance.d.ts.map +0 -1
- package/dist/compiler/checkedAssessment.d.ts.map +0 -1
- package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
- package/dist/compiler/complexTypeContent.d.ts.map +0 -1
- package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
- package/dist/compiler/dataOwnership.d.ts.map +0 -1
- package/dist/compiler/datatypeValues.d.ts.map +0 -1
- package/dist/compiler/directCodec.d.ts.map +0 -1
- package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
- package/dist/compiler/directOperation.d.ts.map +0 -1
- package/dist/compiler/directSoap.d.ts.map +0 -1
- package/dist/compiler/directSoapSource.d.ts.map +0 -1
- package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
- package/dist/compiler/directStructure.d.ts.map +0 -1
- package/dist/compiler/directStructurePlan.d.ts.map +0 -1
- package/dist/compiler/directValues.d.ts.map +0 -1
- package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
- package/dist/compiler/generateCatalog.d.ts.map +0 -1
- package/dist/compiler/graphTraversal.d.ts.map +0 -1
- package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
- package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
- package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
- package/dist/compiler/particleAttribution.d.ts.map +0 -1
- package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
- package/dist/compiler/particleExtension.d.ts.map +0 -1
- package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
- package/dist/compiler/particleRestriction.d.ts.map +0 -1
- package/dist/compiler/particleSemanticView.d.ts.map +0 -1
- package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
- package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
- package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
- package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
- package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
- package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
- package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
- package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
- package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
- package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
- package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
- package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
- package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
- package/dist/compiler/schemaCompiler.d.ts.map +0 -1
- package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
- package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
- package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
- package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
- package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
- package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
- package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
- package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
- package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
- package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
- package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
- package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
- package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
- package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
- package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
- package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
- package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
- package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
- package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
- package/dist/compiler/schemaPattern.d.ts.map +0 -1
- package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
- package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
- package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
- package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
- package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
- package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
- package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
- package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
- package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
- package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
- package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
- package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
- package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
- package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
- package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
- package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
- package/dist/compiler/schemaUri.d.ts.map +0 -1
- package/dist/compiler/schemaValueContext.d.ts.map +0 -1
- package/dist/compiler/schemaValueImages.d.ts.map +0 -1
- package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
- package/dist/compiler/semanticBudget.d.ts.map +0 -1
- package/dist/compiler/semanticCatalog.d.ts.map +0 -1
- package/dist/compiler/semanticContext.d.ts.map +0 -1
- package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
- package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
- package/dist/compiler/shapeResolver.d.ts.map +0 -1
- package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
- package/dist/compiler/structuralCompanions.d.ts.map +0 -1
- package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
- package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/gateway/generateGateway.d.ts.map +0 -1
- package/dist/gateway/generators.d.ts.map +0 -1
- package/dist/gateway/helpers.d.ts.map +0 -1
- package/dist/generation/preamble.d.ts.map +0 -1
- package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/loader/fetch.d.ts.map +0 -1
- package/dist/loader/orderedSyntax.d.ts.map +0 -1
- package/dist/loader/resolutionDepth.d.ts.map +0 -1
- package/dist/loader/schemaInput.d.ts.map +0 -1
- package/dist/loader/schemaResources.d.ts.map +0 -1
- package/dist/loader/wsdlLoader.d.ts.map +0 -1
- package/dist/openapi/casing.d.ts.map +0 -1
- package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
- package/dist/openapi/generatePaths.d.ts.map +0 -1
- package/dist/openapi/generateSchemas.d.ts.map +0 -1
- package/dist/openapi/security.d.ts.map +0 -1
- package/dist/pipeline.d.ts.map +0 -1
- package/dist/runtime/jsonArray.d.ts +0 -24
- package/dist/runtime/jsonArray.d.ts.map +0 -1
- package/dist/runtime/jsonArray.js +0 -52
- package/dist/runtime/ndjson.d.ts +0 -24
- package/dist/runtime/ndjson.d.ts.map +0 -1
- package/dist/runtime/ndjson.js +0 -30
- package/dist/runtime/streamXml.d.ts +0 -45
- package/dist/runtime/streamXml.d.ts.map +0 -1
- package/dist/runtime/streamXml.js +0 -212
- package/dist/test/generateTests.d.ts.map +0 -1
- package/dist/test/generators.d.ts.map +0 -1
- package/dist/test/mockData.d.ts.map +0 -1
- package/dist/util/attributeWildcards.d.ts.map +0 -1
- package/dist/util/builder.d.ts.map +0 -1
- package/dist/util/catalogMeta.d.ts.map +0 -1
- package/dist/util/cli.d.ts.map +0 -1
- package/dist/util/errors.d.ts.map +0 -1
- package/dist/util/imports.d.ts.map +0 -1
- package/dist/util/runtimeSource.d.ts.map +0 -1
- package/dist/util/securityConfig.d.ts.map +0 -1
- package/dist/util/streamConfig.d.ts.map +0 -1
- package/dist/util/tools.d.ts.map +0 -1
- package/dist/util/xmlWhitespace.d.ts.map +0 -1
- package/dist/xsd/primitives.d.ts.map +0 -1
- package/docs/AGENTS.md +0 -47
- package/docs/README.md +0 -69
- package/docs/architecture.md +0 -158
- package/docs/content-model-analysis.md +0 -92
- package/docs/content-model-baseline.md +0 -121
- package/docs/content-model-catalog.md +0 -116
- package/docs/content-model-companions.md +0 -90
- package/docs/content-model-composition.md +0 -103
- package/docs/content-model-decisions.md +0 -79
- package/docs/content-model-gateway-feasibility.md +0 -169
- package/docs/content-model-graph.md +0 -121
- package/docs/content-model-loading.md +0 -163
- package/docs/content-model-matching.md +0 -85
- package/docs/content-model-readiness.md +0 -144
- package/docs/content-model-resolution.md +0 -81
- package/docs/content-model-s02-handoff.md +0 -98
- package/docs/content-model-s06-au-01.md +0 -425
- package/docs/content-model-s06-dt-01.md +0 -386
- package/docs/content-model-s06-pw-01.md +0 -350
- package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
- package/docs/content-model-s06-re-01-resolver.md +0 -513
- package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
- package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
- package/docs/content-model-s06-re-01.md +0 -7477
- package/docs/content-model-s06-research-handoff.md +0 -909
- package/docs/content-model-shipped-fix.md +0 -83
- package/docs/content-model-soap-feasibility.md +0 -165
- package/docs/decisions/001-test-generation.md +0 -36
- package/docs/decisions/002-streamable-responses.md +0 -332
- package/docs/decisions/003-content-model-contracts.md +0 -280
- package/docs/file-naming-and-path-organization.md +0 -213
- package/docs/reference-validation.md +0 -243
- package/docs/releases/README.md +0 -94
- package/docs/releases/v0.20.0.md +0 -22
- package/docs/releases/v0.21.0.md +0 -30
- package/docs/releases/v0.22.0.md +0 -30
- package/docs/releases/v0.23.0.md +0 -31
- package/docs/releases/v0.24.0.md +0 -38
- package/docs/releases/v0.25.0.md +0 -31
- package/docs/releases/v0.25.2.md +0 -32
- package/docs/releases/v0.26.0.md +0 -32
- package/docs/releases/v0.27.0.md +0 -31
- package/docs/releases/v0.28.0.md +0 -32
- package/docs/releases/v0.29.0.md +0 -32
- package/docs/releases/v0.30.0.md +0 -30
- package/docs/releases/v0.30.1.md +0 -31
- package/docs/releases/v0.30.2.md +0 -30
- package/docs/releases/v0.30.3.md +0 -33
- package/docs/releases/v0.31.0.md +0 -33
- package/docs/releases/v0.32.0.md +0 -33
- package/docs/releases/v0.33.0.md +0 -34
- package/docs/releases/v0.34.0.md +0 -30
- package/docs/releases/v0.35.0.md +0 -33
- package/docs/releases/v0.36.0.md +0 -32
- package/docs/releases/v0.37.0.md +0 -33
- package/docs/releases/v0.38.0.md +0 -35
- package/docs/releases/v0.39.0.md +0 -35
- package/docs/releases/v0.40.0.md +0 -45
- package/docs/releases/v0.40.1.md +0 -34
- package/docs/releases/v1.0.0.md +0 -42
- package/docs/releases/v1.0.1.md +0 -38
- package/docs/releases/v1.0.2.md +0 -51
- package/docs/releases/v1.0.3.md +0 -37
- package/docs/releases/v1.0.4.md +0 -45
- package/docs/releases/v1.0.5.md +0 -41
- package/docs/releases/v1.0.6.md +0 -35
- package/docs/releases/v1.0.7.md +0 -36
- package/docs/releases/v1.1.0.md +0 -42
- package/docs/releases/v1.1.1.md +0 -44
- package/docs/releases/v1.1.2.md +0 -42
- package/docs/releases/v1.1.3.md +0 -36
- package/docs/releases/v1.1.4.md +0 -36
- package/docs/releases/v1.1.5.md +0 -38
- package/docs/roadmap/README.md +0 -107
- package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
- package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
- package/docs/roadmap/v1.0-contract-audit.md +0 -75
- package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
- package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
- package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
- package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
- package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
- package/src/runtime/jsonArray.ts +0 -55
- package/src/runtime/ndjson.ts +0 -32
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { GraphNode, Reference } from './canonicalGraph.js';
|
|
2
|
+
import type { SemanticContext } from './semanticContext.js';
|
|
3
|
+
import type { RpcMessageRoot } from './directOperation.js';
|
|
4
|
+
import type { DirectProjectionPlan } from './directStructurePlan.js';
|
|
5
|
+
import type { ExpandedName, SyntaxElement } from '../loader/orderedSyntax.js';
|
|
6
|
+
type Scalar = string | boolean;
|
|
7
|
+
export type RpcTypedValue = Readonly<Record<string, Scalar | Readonly<Record<string, boolean>>>>;
|
|
8
|
+
type Fail = (kind: 'value-invalid' | 'unsupported' | 'mismatch', rule: string, node?: SyntaxElement) => never;
|
|
9
|
+
type Control = {
|
|
10
|
+
check(): void;
|
|
11
|
+
fail: Fail;
|
|
12
|
+
};
|
|
13
|
+
export interface RpcPartPlan {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly reference: Reference;
|
|
16
|
+
readonly owner: GraphNode;
|
|
17
|
+
readonly type: ExpandedName;
|
|
18
|
+
readonly projection: DirectProjectionPlan;
|
|
19
|
+
}
|
|
20
|
+
/** Plan actual message parts; original source references remain native authority.
|
|
21
|
+
* @param context Exact qualified context.
|
|
22
|
+
* @param root Source-owned RPC message.
|
|
23
|
+
* @param control Shared cancellation and refusal controls.
|
|
24
|
+
* @returns Native scalar/flat Boolean record plans in WSDL declaration order.
|
|
25
|
+
*/
|
|
26
|
+
export declare function planRpcParts(context: SemanticContext, root: RpcMessageRoot, control: Control): readonly RpcPartPlan[];
|
|
27
|
+
/** Expand typed values with native restrictions and canonical inline type accessors.
|
|
28
|
+
* @param context Exact qualified context.
|
|
29
|
+
* @param root Source-owned RPC parameters.
|
|
30
|
+
* @param plans Native type plans.
|
|
31
|
+
* @param application Data-only JSON value.
|
|
32
|
+
* @param control Shared invocation controls.
|
|
33
|
+
* @returns Canonical RPC wrapper plus its validated application value.
|
|
34
|
+
*/
|
|
35
|
+
export declare function expandRpcTyped(context: SemanticContext, root: RpcMessageRoot, plans: readonly RpcPartPlan[], application: unknown, control: Control): {
|
|
36
|
+
payload: SyntaxElement;
|
|
37
|
+
value: RpcTypedValue;
|
|
38
|
+
};
|
|
39
|
+
/** Validate actual dispatched inline parameters through native scalar/particle duties.
|
|
40
|
+
* @param context Exact source context.
|
|
41
|
+
* @param root Source-owned RPC input.
|
|
42
|
+
* @param plans Native type plans.
|
|
43
|
+
* @param payload Actual outgoing envelope Body or wrapper.
|
|
44
|
+
* @param control Shared execution controls.
|
|
45
|
+
* @returns Validated values keyed by original message part names.
|
|
46
|
+
*/
|
|
47
|
+
export declare function readRpcTyped(context: SemanticContext, root: RpcMessageRoot, plans: readonly RpcPartPlan[], payload: SyntaxElement, control: Control): RpcTypedValue;
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/** Typed RPC composition over native scalar and record owners.
|
|
2
|
+
* @since 1.1.9
|
|
3
|
+
* @constraints Canonical inline parameters; no encoded request graph or array support.
|
|
4
|
+
*/
|
|
5
|
+
import { globalId } from './canonicalGraph.js';
|
|
6
|
+
import { planProjectionType, matchOrderedProjection, isXmlCharacters } from './directStructurePlan.js';
|
|
7
|
+
import { assessProjectionTypeOperand } from './projectionScalar.js';
|
|
8
|
+
import { resolveLexicalQName, syntaxAttribute, syntaxElements, XSD_NAMESPACE, XML_NAMESPACE } from '../loader/orderedSyntax.js';
|
|
9
|
+
import { directDataOwnership } from './directExecutionPolicy.js';
|
|
10
|
+
const SOAP = 'http://schemas.xmlsoap.org/soap/envelope/';
|
|
11
|
+
const ENC = 'http://schemas.xmlsoap.org/soap/encoding/';
|
|
12
|
+
const XSI = 'http://www.w3.org/2001/XMLSchema-instance';
|
|
13
|
+
/** Plan actual message parts; original source references remain native authority.
|
|
14
|
+
* @param context Exact qualified context.
|
|
15
|
+
* @param root Source-owned RPC message.
|
|
16
|
+
* @param control Shared cancellation and refusal controls.
|
|
17
|
+
* @returns Native scalar/flat Boolean record plans in WSDL declaration order.
|
|
18
|
+
*/
|
|
19
|
+
export function planRpcParts(context, root, control) {
|
|
20
|
+
const found = context.lookup(globalId('message', root.message));
|
|
21
|
+
if (found.kind !== 'found' || found.node.kind !== 'wsdl' || found.node.role !== 'message')
|
|
22
|
+
return control.fail('unsupported', 'rpc-message-owner');
|
|
23
|
+
const owner = found.node;
|
|
24
|
+
return Object.freeze(root.parts.map(part => {
|
|
25
|
+
control.check();
|
|
26
|
+
context.budget.chargeWork(128);
|
|
27
|
+
const resolved = context.resolve(part.type);
|
|
28
|
+
const type = resolved.kind === 'builtin' ? resolved.name : resolved.kind === 'found' && resolved.node.identity.kind === 'global'
|
|
29
|
+
? resolved.node.identity.name : control.fail('unsupported', 'rpc-named-type-required');
|
|
30
|
+
const projection = planProjectionType(context, owner, part.type, control.check, () => control.fail('unsupported', 'rpc-native-type-shape'));
|
|
31
|
+
const scalar = (value) => value.kind === 'scalar' && !value.list && !value.nillable
|
|
32
|
+
&& ['string', 'boolean', 'decimal', 'integer', 'date', 'dateTime'].includes(value.builtin.local);
|
|
33
|
+
if (projection.root.kind === 'scalar') {
|
|
34
|
+
if (!scalar(projection.root))
|
|
35
|
+
return control.fail('unsupported', 'rpc-scalar-representation');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const record = projection.records.find(record => record.type.id === projection.root.type);
|
|
39
|
+
if (projection.records.length !== 1 || record.content !== 'element-only' || record.attributes.length || record.attributeWildcard
|
|
40
|
+
|| !record.ordered || record.keyed || record.contextual || record.slots.some(slot => !scalar(slot.value)
|
|
41
|
+
|| slot.value.kind !== 'scalar' || slot.value.builtin.local !== 'boolean' || slot.particle.occurs.min !== '1' || slot.particle.occurs.max !== '1'))
|
|
42
|
+
return control.fail('unsupported', 'rpc-flat-boolean-record');
|
|
43
|
+
}
|
|
44
|
+
return Object.freeze({ name: part.name, reference: part.type, owner, type, projection });
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
function scalar(context, owner, reference, shape, lexical, node, control) {
|
|
48
|
+
if (shape.kind !== 'scalar' || !isXmlCharacters(lexical))
|
|
49
|
+
return control.fail('value-invalid', 'rpc-scalar-characters', node);
|
|
50
|
+
const assessed = assessProjectionTypeOperand(context, owner, reference, { value: lexical, context: { namespaces: node.namespaces, source: node.source } }, control.check);
|
|
51
|
+
if (assessed.kind !== 'projection-scalar-operand')
|
|
52
|
+
return control.fail('value-invalid', 'rule' in assessed ? assessed.rule : 'rpc-scalar-budget', node);
|
|
53
|
+
if (shape.constraint?.kind === 'fixed' && assessed.operand.canonical !== shape.constraint.canonical)
|
|
54
|
+
return control.fail('value-invalid', 'fixed-element-value', node);
|
|
55
|
+
return shape.builtin.local === 'boolean' ? assessed.operand.canonical === 'true' : lexical;
|
|
56
|
+
}
|
|
57
|
+
function recordOf(part) { return part.projection.records[0]; }
|
|
58
|
+
function object(value, names, control) {
|
|
59
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
60
|
+
return control.fail('value-invalid', 'rpc-data-object-required');
|
|
61
|
+
const keys = Object.keys(value);
|
|
62
|
+
if (keys.length !== names.length || keys.some(key => !names.includes(key)))
|
|
63
|
+
return control.fail('value-invalid', 'rpc-required-parts');
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
/** Expand typed values with native restrictions and canonical inline type accessors.
|
|
67
|
+
* @param context Exact qualified context.
|
|
68
|
+
* @param root Source-owned RPC parameters.
|
|
69
|
+
* @param plans Native type plans.
|
|
70
|
+
* @param application Data-only JSON value.
|
|
71
|
+
* @param control Shared invocation controls.
|
|
72
|
+
* @returns Canonical RPC wrapper plus its validated application value.
|
|
73
|
+
*/
|
|
74
|
+
export function expandRpcTyped(context, root, plans, application, control) {
|
|
75
|
+
let owned;
|
|
76
|
+
try {
|
|
77
|
+
owned = directDataOwnership(context.budget).snapshot(application, control.check);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof TypeError)
|
|
81
|
+
return control.fail('value-invalid', 'rpc-data-object-required');
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
const input = object(owned, plans.map(part => part.name), control);
|
|
85
|
+
const namespaces = { xml: XML_NAMESPACE, '': '', rpc: root.bodyNamespace, xsi: XSI, xsd: XSD_NAMESPACE, enc: ENC, soap: SOAP };
|
|
86
|
+
const typeNamespaces = [...new Set(plans.map(part => part.type.namespace))].filter(ns => ns !== XSD_NAMESPACE).sort();
|
|
87
|
+
typeNamespaces.forEach((namespace, index) => { namespaces['t' + index] = namespace; });
|
|
88
|
+
const element = (name, value, shape, owner, reference, type) => {
|
|
89
|
+
control.check();
|
|
90
|
+
context.budget.chargeWork(256);
|
|
91
|
+
const prefix = type?.namespace === XSD_NAMESPACE ? 'xsd' : type ? 't' + typeNamespaces.indexOf(type.namespace) : '';
|
|
92
|
+
const node = { kind: 'element', name, lexicalName: name.local, namespaces, baseUri: root.source.uri, source: root.source,
|
|
93
|
+
attributes: type ? [{ name: { namespace: XSI, local: 'type' }, lexicalName: 'xsi:type', value: prefix + ':' + type.local }] : [], children: [] };
|
|
94
|
+
if (shape.kind !== 'scalar')
|
|
95
|
+
return control.fail('unsupported', 'rpc-scalar-required');
|
|
96
|
+
const lexical = shape.builtin.local === 'boolean' ? typeof value === 'boolean' ? String(value) : control.fail('value-invalid', 'boolean-required')
|
|
97
|
+
: typeof value === 'string' ? value : control.fail('value-invalid', 'string-required');
|
|
98
|
+
scalar(context, owner, reference, shape, lexical, node, control);
|
|
99
|
+
return { ...node, children: [{ kind: 'text', value: lexical, source: root.source }] };
|
|
100
|
+
};
|
|
101
|
+
const children = plans.map(part => {
|
|
102
|
+
if (part.projection.root.kind === 'scalar')
|
|
103
|
+
return element({ namespace: '', local: part.name }, input[part.name], part.projection.root, part.owner, part.reference, part.type);
|
|
104
|
+
const record = recordOf(part), value = object(input[part.name], record.slots.map(slot => slot.element.name.local), control);
|
|
105
|
+
const fields = record.slots.map(slot => element(slot.element.name, value[slot.element.name.local], slot.value, slot.element, slot.element.type, slot.value.kind === 'scalar' ? slot.value.builtin : undefined));
|
|
106
|
+
const prefix = 't' + typeNamespaces.indexOf(part.type.namespace);
|
|
107
|
+
return { kind: 'element', name: { namespace: '', local: part.name }, lexicalName: part.name, namespaces, baseUri: root.source.uri, source: root.source,
|
|
108
|
+
attributes: [{ name: { namespace: XSI, local: 'type' }, lexicalName: 'xsi:type', value: prefix + ':' + part.type.local }], children: fields };
|
|
109
|
+
});
|
|
110
|
+
const payload = { kind: 'element', name: root.wrapper, lexicalName: 'rpc:' + root.wrapper.local, namespaces,
|
|
111
|
+
baseUri: root.source.uri, source: root.source, attributes: [{ name: { namespace: SOAP, local: 'encodingStyle' }, lexicalName: 'soap:encodingStyle', value: ENC }], children };
|
|
112
|
+
return { payload, value: readRpcTyped(context, root, plans, payload, control) };
|
|
113
|
+
}
|
|
114
|
+
/** Validate actual dispatched inline parameters through native scalar/particle duties.
|
|
115
|
+
* @param context Exact source context.
|
|
116
|
+
* @param root Source-owned RPC input.
|
|
117
|
+
* @param plans Native type plans.
|
|
118
|
+
* @param payload Actual outgoing envelope Body or wrapper.
|
|
119
|
+
* @param control Shared execution controls.
|
|
120
|
+
* @returns Validated values keyed by original message part names.
|
|
121
|
+
*/
|
|
122
|
+
export function readRpcTyped(context, root, plans, payload, control) {
|
|
123
|
+
const elements = (node) => {
|
|
124
|
+
control.check();
|
|
125
|
+
context.budget.chargeWork(64 + node.children.length * 16);
|
|
126
|
+
if (node.children.some(child => child.kind === 'text' && /[^\t\r\n ]/.test(child.value)))
|
|
127
|
+
return control.fail('mismatch', 'rpc-unexpected-text', node);
|
|
128
|
+
return syntaxElements(node);
|
|
129
|
+
};
|
|
130
|
+
const attrs = (node, type) => {
|
|
131
|
+
for (const attribute of node.attributes) {
|
|
132
|
+
control.check();
|
|
133
|
+
if (attribute.name.namespace === SOAP && attribute.name.local === 'encodingStyle' && attribute.value === ENC)
|
|
134
|
+
continue;
|
|
135
|
+
if (type && attribute.name.namespace === XSI && attribute.name.local === 'type') {
|
|
136
|
+
let actual;
|
|
137
|
+
try {
|
|
138
|
+
actual = resolveLexicalQName(attribute.value, node);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return control.fail('unsupported', 'rpc-typed-accessor', node);
|
|
142
|
+
}
|
|
143
|
+
if (actual.namespace === type.namespace && actual.local === type.local)
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
return control.fail('unsupported', 'rpc-typed-accessor', node);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
if (payload.name.namespace === SOAP && payload.name.local === 'Body') {
|
|
150
|
+
attrs(payload);
|
|
151
|
+
const wrappers = elements(payload);
|
|
152
|
+
if (wrappers.length !== 1)
|
|
153
|
+
return control.fail('mismatch', 'rpc-request-wrapper', payload);
|
|
154
|
+
payload = wrappers[0];
|
|
155
|
+
}
|
|
156
|
+
if (payload.name.namespace !== root.wrapper.namespace || payload.name.local !== root.wrapper.local)
|
|
157
|
+
return control.fail('mismatch', 'rpc-request-wrapper', payload);
|
|
158
|
+
attrs(payload);
|
|
159
|
+
const parameters = elements(payload);
|
|
160
|
+
if (parameters.length !== plans.length)
|
|
161
|
+
return control.fail('mismatch', 'rpc-parameter-count', payload);
|
|
162
|
+
const result = Object.create(null);
|
|
163
|
+
plans.forEach((part, index) => {
|
|
164
|
+
const node = parameters[index];
|
|
165
|
+
if (node.name.namespace !== '' || node.name.local !== part.name)
|
|
166
|
+
return control.fail('mismatch', 'rpc-parameter-name-order', node);
|
|
167
|
+
attrs(node, part.type);
|
|
168
|
+
const readScalar = (node, owner, reference, shape) => {
|
|
169
|
+
if (syntaxElements(node).length)
|
|
170
|
+
return control.fail('mismatch', 'rpc-scalar-content', node);
|
|
171
|
+
return scalar(context, owner, reference, shape, node.children.map(child => child.kind === 'text' ? child.value : '').join(''), node, control);
|
|
172
|
+
};
|
|
173
|
+
if (part.projection.root.kind === 'scalar')
|
|
174
|
+
result[part.name] = readScalar(node, part.owner, part.reference, part.projection.root);
|
|
175
|
+
else {
|
|
176
|
+
const record = recordOf(part), fields = elements(node);
|
|
177
|
+
const matched = matchOrderedProjection(context, record, fields.map(field => field.name), control.check);
|
|
178
|
+
if (!matched || matched.some(slot => 'kind' in slot))
|
|
179
|
+
return control.fail('mismatch', 'rpc-native-record-content', node);
|
|
180
|
+
const value = Object.create(null);
|
|
181
|
+
fields.forEach(field => {
|
|
182
|
+
const slot = record.slots.find(slot => slot.element.name.local === field.name.local && slot.element.name.namespace === field.name.namespace);
|
|
183
|
+
attrs(field, slot.value.kind === 'scalar' ? slot.value.builtin : undefined);
|
|
184
|
+
value[slot.element.name.local] = readScalar(field, slot.element, slot.element.type, slot.value);
|
|
185
|
+
});
|
|
186
|
+
result[part.name] = value;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
@@ -14,4 +14,3 @@ export type RawAttributeGroupProperties = Readonly<{
|
|
|
14
14
|
}>;
|
|
15
15
|
/** Data shape only; effective mapping and semantic validity require their owners. */
|
|
16
16
|
export declare function validateRawAttributeGroupShape(value: unknown, budget: SemanticBudget): asserts value is RawAttributeGroupProperties;
|
|
17
|
-
//# sourceMappingURL=schemaAttributeGroupProperties.d.ts.map
|
|
@@ -62,7 +62,7 @@ export type AttributeFailure = Readonly<{
|
|
|
62
62
|
export type AttributeResult = Readonly<{
|
|
63
63
|
kind: 'checked';
|
|
64
64
|
contextId: string;
|
|
65
|
-
authority: 'AU01-C1-source-v1' | 'AU01-C1-raw-v2' | 'AU01-C1-original-construction-v1' | 'AU01-C1-raw-properties-v1' | 'AU01-C1-original-properties-v1';
|
|
65
|
+
authority: 'AU01-C1-source-v1' | 'AU01-C1-raw-v2' | 'AU01-C1-original-construction-v1' | 'AU01-C1-raw-properties-v1' | 'AU01-C1-original-properties-v1' | 'AU01-C1-restriction-pair-v1';
|
|
66
66
|
value: SourceAttributePlan;
|
|
67
67
|
obligations: readonly string[];
|
|
68
68
|
scalarObligations: readonly ScalarObligation[];
|
|
@@ -87,4 +87,24 @@ export declare function readRawAttributeProperties(context: SemanticContext, own
|
|
|
87
87
|
* qualification, supplied by the whole actual assessment, never an H aggregate receipt.
|
|
88
88
|
*/
|
|
89
89
|
export declare function readOriginalAttributeProperties(context: SemanticContext, ownerId: NodeId): AttributeResult;
|
|
90
|
-
|
|
90
|
+
export type AttributeRestrictionPair = Readonly<{
|
|
91
|
+
kind: 'checked-attribute-restriction';
|
|
92
|
+
derived: NodeId;
|
|
93
|
+
base: NodeId;
|
|
94
|
+
assessment: Extract<AttributeResult, {
|
|
95
|
+
kind: 'checked';
|
|
96
|
+
}>;
|
|
97
|
+
remaining: readonly ['source-and-base-construction', 'alternative-content-derivation'];
|
|
98
|
+
}>;
|
|
99
|
+
export type AttributeRestrictionPairResult = AttributeRestrictionPair | ResourceLimitFailure | Readonly<{
|
|
100
|
+
kind: 'not-attribute-restriction';
|
|
101
|
+
failure: AttributeFailure;
|
|
102
|
+
}>;
|
|
103
|
+
/** Authenticate a paired AU predicate, not the containing type's actual derivation. */
|
|
104
|
+
export declare function assertAttributeRestrictionPair(context: SemanticContext, receipt: AttributeRestrictionPair): void;
|
|
105
|
+
/** Check the existing AU restriction rules against an explicit alternative complex base without changing bindings.
|
|
106
|
+
* @remarks Only the root predicate's base/method arguments differ; TYPE/SCOPE lookups and every original node remain intact.
|
|
107
|
+
* Failed alternative relations never classify the original schema invalid. Construction and content remain separate duties.
|
|
108
|
+
* @returns An authenticated paired AU predicate, a non-restriction diagnostic or sticky resource failure.
|
|
109
|
+
*/
|
|
110
|
+
export declare function assessAttributeRestrictionPair(context: SemanticContext, derived: NodeId, base: NodeId): AttributeRestrictionPairResult;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { XSD_NAMESPACE } from '../loader/orderedSyntax.js';
|
|
2
2
|
import { assertSemanticContext } from './semanticContext.js';
|
|
3
3
|
import { createSchemaScalarKernel } from './schemaScalarKernel.js';
|
|
4
|
-
import { checkTypeDerivation, checkImmediateTypeFinal } from './schemaTypeRelations.js';
|
|
5
|
-
import { checkDeclaration } from './schemaDeclarationPrimitives.js';
|
|
4
|
+
import { checkTypeDerivation, checkImmediateTypeFinal, declarationMethods } from './schemaTypeRelations.js';
|
|
5
|
+
import { checkDeclaration, declarationValueConstraint } from './schemaDeclarationPrimitives.js';
|
|
6
6
|
import { namespaceAllows, namespaceExpressible, namespaceIntersection, namespaceSubset, namespaceUnion, processContentsRestricts, wildcardNamespaces } from './wildcardAlgebra.js';
|
|
7
7
|
import { declaredType, resolveSemanticType, semanticTypeKey } from './schemaTypeIdentity.js';
|
|
8
8
|
import { collectSemanticTypeDependencies } from './semanticTypeDependencies.js';
|
|
9
|
-
import { deriveOriginalComplexPropertyContent } from './complexTypeContent.js';
|
|
9
|
+
import { deriveOriginalComplexPropertyContent, deriveActualComplexContent } from './complexTypeContent.js';
|
|
10
10
|
// Only immutable, completely evaluated local facts are retained. Context identity
|
|
11
11
|
// captures active membership, raw properties and original/active operand roles;
|
|
12
12
|
// shared source nodes never authorize transfer to another authentic context.
|
|
@@ -56,6 +56,45 @@ export function readRawAttributeProperties(context, ownerId) {
|
|
|
56
56
|
export function readOriginalAttributeProperties(context, ownerId) {
|
|
57
57
|
return rawResult(context, assessAttributeUses(context, ownerId, 'raw', 'original-properties'));
|
|
58
58
|
}
|
|
59
|
+
const restrictionPairs = new WeakMap();
|
|
60
|
+
/** Authenticate a paired AU predicate, not the containing type's actual derivation. */
|
|
61
|
+
export function assertAttributeRestrictionPair(context, receipt) {
|
|
62
|
+
assertSemanticContext(context);
|
|
63
|
+
if (restrictionPairs.get(receipt) !== context)
|
|
64
|
+
throw new TypeError('Fresh matching attribute restriction pair required');
|
|
65
|
+
}
|
|
66
|
+
/** Check the existing AU restriction rules against an explicit alternative complex base without changing bindings.
|
|
67
|
+
* @remarks Only the root predicate's base/method arguments differ; TYPE/SCOPE lookups and every original node remain intact.
|
|
68
|
+
* Failed alternative relations never classify the original schema invalid. Construction and content remain separate duties.
|
|
69
|
+
* @returns An authenticated paired AU predicate, a non-restriction diagnostic or sticky resource failure.
|
|
70
|
+
*/
|
|
71
|
+
export function assessAttributeRestrictionPair(context, derived, base) {
|
|
72
|
+
assertSemanticContext(context);
|
|
73
|
+
return context.budget.guard(() => {
|
|
74
|
+
context.budget.chargeWork(64 + derived.length + base.length);
|
|
75
|
+
const baseNode = context.lookup(base), derivedNode = context.lookup(derived);
|
|
76
|
+
if (baseNode.kind !== 'found' || baseNode.node.kind !== 'complexType' || derivedNode.kind !== 'found' || derivedNode.node.kind !== 'complexType')
|
|
77
|
+
return Object.freeze({ kind: 'not-attribute-restriction', failure: Object.freeze({ kind: 'unresolved', rule: 'attribute-restriction-types',
|
|
78
|
+
component: derived, message: 'Available complex types are required for both relation arguments' }) });
|
|
79
|
+
// @why The base is evaluated under its actual derivation before applying root-only relation arguments.
|
|
80
|
+
// Reusing the proposed root's arguments while reading the base chain would shadow that component indirectly.
|
|
81
|
+
const baseAssessment = context.kind === 'actual' ? assessSourceAttributeUses(context, base) : assessCandidateAttributeUses(context, base);
|
|
82
|
+
if (baseAssessment.kind === 'resource-limit')
|
|
83
|
+
return baseAssessment;
|
|
84
|
+
if (baseAssessment.kind !== 'checked')
|
|
85
|
+
return Object.freeze({ kind: 'not-attribute-restriction', failure: baseAssessment });
|
|
86
|
+
const result = assessAttributeUses(context, derived, 'raw', 'restriction-pair', base, baseAssessment);
|
|
87
|
+
if (result.kind === 'resource-limit')
|
|
88
|
+
return result;
|
|
89
|
+
if (result.kind !== 'checked')
|
|
90
|
+
return Object.freeze({ kind: 'not-attribute-restriction', failure: result });
|
|
91
|
+
context.budget.chargeWork(64);
|
|
92
|
+
const receipt = Object.freeze({ kind: 'checked-attribute-restriction', derived, base, assessment: result,
|
|
93
|
+
remaining: Object.freeze(['source-and-base-construction', 'alternative-content-derivation']) });
|
|
94
|
+
restrictionPairs.set(receipt, context);
|
|
95
|
+
return receipt;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
59
98
|
function rawResult(context, result) {
|
|
60
99
|
return result.kind === 'invalid-schema' ? context.budget.guard(() => {
|
|
61
100
|
if (result.contextId !== undefined && result.contextId === context.originalContext().contextId)
|
|
@@ -64,7 +103,7 @@ function rawResult(context, result) {
|
|
|
64
103
|
return Object.freeze({ ...result, kind: 'candidate-rejected' });
|
|
65
104
|
}) : result;
|
|
66
105
|
}
|
|
67
|
-
function assessAttributeUses(context, ownerId, role, mode = 'container') {
|
|
106
|
+
function assessAttributeUses(context, ownerId, role, mode = 'container', restrictionBase, restrictionBasePlan) {
|
|
68
107
|
assertSemanticContext(context);
|
|
69
108
|
const budget = context.budget, charge = budget.chargeWork;
|
|
70
109
|
return budget.guard(() => {
|
|
@@ -170,7 +209,7 @@ function assessAttributeUses(context, ownerId, role, mode = 'container') {
|
|
|
170
209
|
const dependencies = collectSemanticTypeDependencies(context);
|
|
171
210
|
dependencies.add(checked.typeDependencies);
|
|
172
211
|
unwrap(scalar.describe(declaredType(context, node), node.id), node, obligations, dependencies);
|
|
173
|
-
const value = typed(node, node
|
|
212
|
+
const value = typed(node, declarationValueConstraint(context, node), node, 'declaration', obligations, dependencies);
|
|
174
213
|
charge(10 + obligations.length + node.id.length);
|
|
175
214
|
const fact = Object.freeze({ receipt: checked, value, scalarObligations: Object.freeze(obligations), typeDependencies: dependencies.snapshot() });
|
|
176
215
|
cached.declarations.set(node.id, fact);
|
|
@@ -415,9 +454,19 @@ function assessAttributeUses(context, ownerId, role, mode = 'container') {
|
|
|
415
454
|
let originalInput = false;
|
|
416
455
|
const input = (node) => {
|
|
417
456
|
const raw = context.rawTypeProperties(node.id);
|
|
418
|
-
if (raw
|
|
419
|
-
|
|
420
|
-
|
|
457
|
+
if (raw) {
|
|
458
|
+
if (mode !== 'restriction-pair' || node.id !== ownerId)
|
|
459
|
+
return raw;
|
|
460
|
+
charge(16);
|
|
461
|
+
return { attributeUses: raw.attributeUses, wildcard: raw.wildcard,
|
|
462
|
+
derivation: { method: 'restriction', base: { kind: 'local', target: restrictionBase } } };
|
|
463
|
+
}
|
|
464
|
+
if (mode !== 'original-container' && mode !== 'restriction-pair')
|
|
465
|
+
return undefined;
|
|
466
|
+
const actualInput = mode === 'restriction-pair' && context.kind === 'actual' && context.originalComplexContentSource(node.id) !== undefined;
|
|
467
|
+
if (!actualInput && !context.originalComplexPropertySource(node.id))
|
|
468
|
+
return undefined;
|
|
469
|
+
const content = actualInput ? deriveActualComplexContent(context, node.id) : deriveOriginalComplexPropertyContent(context, node.id);
|
|
421
470
|
if (content.kind === 'resource-limit')
|
|
422
471
|
throw new AttributeAbort(content);
|
|
423
472
|
if (content.kind !== 'checked')
|
|
@@ -433,10 +482,27 @@ function assessAttributeUses(context, ownerId, role, mode = 'container') {
|
|
|
433
482
|
scalarObligations.push(Object.freeze({ ...item, contextId: item.contextId ?? actual.contextId }));
|
|
434
483
|
}
|
|
435
484
|
charge(5 + source.value.uses.length);
|
|
436
|
-
return { derivation:
|
|
437
|
-
|
|
485
|
+
return { derivation: mode === 'restriction-pair' && node.id === ownerId
|
|
486
|
+
? { method: 'restriction', base: { kind: 'local', target: restrictionBase } }
|
|
487
|
+
: { method: node.derivation?.kind ?? 'restriction', base: node.derivation?.base
|
|
488
|
+
?? { kind: 'builtin', name: { namespace: XSD_NAMESPACE, local: 'anyType' } } },
|
|
438
489
|
attributeUses: source.value.uses.map(use => use.id), wildcard: source.value.wildcard };
|
|
439
490
|
};
|
|
491
|
+
if (mode === 'restriction-pair') {
|
|
492
|
+
if (!restrictionBasePlan || restrictionBasePlan.contextId !== context.contextId || restrictionBasePlan.value.owner !== restrictionBase)
|
|
493
|
+
return problem(root, 'attribute-restriction-base-plan', 'The alternative base needs its own checked attribute plan', 'unresolved');
|
|
494
|
+
charge(8 + restrictionBasePlan.scalarObligations.length + restrictionBasePlan.value.declarations.length);
|
|
495
|
+
typeDependencies.add(restrictionBasePlan.typeDependencies);
|
|
496
|
+
for (const obligation of restrictionBasePlan.scalarObligations) {
|
|
497
|
+
charge();
|
|
498
|
+
scalarObligations.push(obligation);
|
|
499
|
+
}
|
|
500
|
+
for (const receipt of restrictionBasePlan.value.declarations) {
|
|
501
|
+
charge(2 + receipt.component.length);
|
|
502
|
+
declarationEvidence.set(receipt.component, receipt);
|
|
503
|
+
}
|
|
504
|
+
plans.set(restrictionBase, restrictionBasePlan.value);
|
|
505
|
+
}
|
|
440
506
|
charge(3);
|
|
441
507
|
const stack = [root], active = new Set();
|
|
442
508
|
while (stack.length) {
|
|
@@ -475,14 +541,20 @@ function assessAttributeUses(context, ownerId, role, mode = 'container') {
|
|
|
475
541
|
local.push(mapped);
|
|
476
542
|
}
|
|
477
543
|
const uses = checkUses(local, node), wildcard = raw.wildcard;
|
|
478
|
-
if (mode === 'original-container' && wildcard)
|
|
544
|
+
if ((mode === 'original-container' || mode === 'restriction-pair') && wildcard)
|
|
479
545
|
for (const id of wildcard.sources) {
|
|
480
546
|
charge();
|
|
481
547
|
get(id);
|
|
482
548
|
}
|
|
483
549
|
if (wildcard && (!['strict', 'lax', 'skip'].includes(wildcard.processContents) || !namespaceExpressible(wildcard.namespace, charge)))
|
|
484
550
|
return problem(node, 'cos-aw-union/intersect', 'Literal wildcard has invalid component properties');
|
|
485
|
-
if (
|
|
551
|
+
if (mode === 'restriction-pair' && node.id === ownerId) {
|
|
552
|
+
if (!baseNode || baseNode.kind !== 'complexType')
|
|
553
|
+
return problem(node, 'attribute-restriction-base', 'Alternative base must be complex', 'unresolved');
|
|
554
|
+
if (declarationMethods(context, baseNode, 'final').includes('restriction'))
|
|
555
|
+
return problem(node, 'derivation-ok-restriction.1', 'Alternative base prohibits restriction');
|
|
556
|
+
}
|
|
557
|
+
else if (!unwrap(checkImmediateTypeFinal(context, { kind: 'local', target: node.id }), node))
|
|
486
558
|
return problem(node, 'cos-ct-extends/derivation-ok-restriction', 'Base final excludes derivation');
|
|
487
559
|
if (raw.derivation.method === 'extension') {
|
|
488
560
|
for (const original of base?.uses ?? []) {
|
|
@@ -574,7 +646,8 @@ function assessAttributeUses(context, ownerId, role, mode = 'container') {
|
|
|
574
646
|
}
|
|
575
647
|
charge(10 + scalarObligations.length);
|
|
576
648
|
return Object.freeze({ kind: 'checked', contextId: context.contextId,
|
|
577
|
-
authority:
|
|
649
|
+
authority: mode === 'restriction-pair' ? 'AU01-C1-restriction-pair-v1'
|
|
650
|
+
: originalInput ? 'AU01-C1-original-construction-v1' : 'AU01-C1-raw-v2',
|
|
578
651
|
value: plans.get(root.id), obligations: Object.freeze(['aggregate-type-validity', 'raw-type-property-correspondence']), scalarObligations: Object.freeze(scalarObligations), typeDependencies: typeDependencies.snapshot() });
|
|
579
652
|
}
|
|
580
653
|
const dependencies = (node) => {
|
|
@@ -11,4 +11,3 @@ export type IntrinsicFacetProperties = Readonly<{
|
|
|
11
11
|
}>;
|
|
12
12
|
export declare const LIST_CONSTRUCTOR_FACETS: IntrinsicFacetProperties;
|
|
13
13
|
export declare function schemaBuiltinFacetProperties<Owner>(name: string, owner: Owner, c: Pick<SchemaValueContext<Owner>, 'step' | 'text'>): IntrinsicFacetProperties;
|
|
14
|
-
//# sourceMappingURL=schemaBuiltinFacets.d.ts.map
|
|
@@ -5,4 +5,3 @@ import type { SchemaPatternContext } from './schemaValueContext.js';
|
|
|
5
5
|
export declare function schemaCalendarImages<Owner>(c: SchemaPatternContext<Owner>, regular: ReturnType<typeof schemaRegularLanguages<Owner>>, expression: (text: string, owner: Owner) => RegularLanguage): {
|
|
6
6
|
image: (source: RegularLanguage, family: CalendarFamily, owner: Owner) => RegularLanguage;
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=schemaCalendarImages.d.ts.map
|
|
@@ -232,4 +232,3 @@ export type CompiledCatalog = {
|
|
|
232
232
|
* portType reference, then enumerate operations and their soapAction URIs.
|
|
233
233
|
*/
|
|
234
234
|
export declare function compileCatalog(cat: WsdlCatalog, options: CompilerOptions, streamConfig?: StreamConfig): CompiledCatalog;
|
|
235
|
-
//# sourceMappingURL=schemaCompiler.d.ts.map
|