@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
|
@@ -3,34 +3,46 @@ import { directDataOwnership, directLimit } from './directExecutionPolicy.js';
|
|
|
3
3
|
import { checkSemanticBudget } from './semanticBudget.js';
|
|
4
4
|
import { DataOwnershipLimitError } from './dataOwnership.js';
|
|
5
5
|
import { types } from 'node:util';
|
|
6
|
-
import { inspectDirectOperation } from './directOperation.js';
|
|
7
|
-
import { inspectDirectValueMapping, expandDirectValue, assessDirectScalars } from './directValues.js';
|
|
8
|
-
import { matchDirectOperation } from './directStructure.js';
|
|
6
|
+
import { inspectDirectOperation, isRpcMessageRoot } from './directOperation.js';
|
|
7
|
+
import { inspectDirectValueMapping, expandDirectValue, assessDirectScalars, inspectComponentValueMapping, expandProjectionValue, assessProjectionScalars } from './directValues.js';
|
|
8
|
+
import { matchDirectOperation, matchDirectProjection } from './directStructure.js';
|
|
9
9
|
import { parseOrderedSyntax, SchemaLoadingError, XML_NAMESPACE } from '../loader/orderedSyntax.js';
|
|
10
|
+
import { isXmlNamespaceBinding } from './directStructurePlan.js';
|
|
11
|
+
import { expandRpcStrings, readRpcStrings } from './rpcStringValues.js';
|
|
12
|
+
import { expandRpcTyped, readRpcTyped } from './rpcTypedValues.js';
|
|
10
13
|
export const DIRECT_XML_LIMITS = Object.freeze({ maxBytes: 1024 * 1024, maxDepth: 256, maxNodes: 100_000, maxText: 1024 * 1024 });
|
|
14
|
+
const componentObservations = new WeakSet();
|
|
11
15
|
class Stop extends Error {
|
|
12
16
|
kind;
|
|
13
17
|
rule;
|
|
14
|
-
|
|
18
|
+
source;
|
|
19
|
+
constructor(kind, rule, source) {
|
|
15
20
|
super(rule);
|
|
16
21
|
this.kind = kind;
|
|
17
22
|
this.rule = rule;
|
|
23
|
+
this.source = source;
|
|
18
24
|
}
|
|
19
25
|
}
|
|
20
|
-
|
|
26
|
+
const directProfile = Object.freeze({ version: 'direct-values-v1', basis: 'native-direct-premises-v1',
|
|
27
|
+
correspondence: 'dated-XSD-2004-direct-v1', rule: 'direct-codec-version' });
|
|
28
|
+
const componentProfile = Object.freeze({ version: 'component-values-v1', basis: 'native-component-premises-v1',
|
|
29
|
+
correspondence: 'dated-XSD-2004-components-v1', rule: 'component-codec-version' });
|
|
30
|
+
function runMapping(contract, supplied, options, profile, inspect, work) {
|
|
21
31
|
// Identity before all property reads, including version checks.
|
|
22
|
-
const mapping =
|
|
32
|
+
const mapping = inspect(supplied, contract);
|
|
23
33
|
const { budget } = inspectDirectOperation(contract).context;
|
|
24
34
|
const check = () => { checkSemanticBudget(budget); if (options.signal?.aborted)
|
|
25
35
|
throw new Stop('cancelled', 'cooperative-cancellation'); };
|
|
26
36
|
try {
|
|
27
37
|
const result = budget.guard(() => {
|
|
28
38
|
check();
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
39
|
+
const rpc = profile === componentProfile && (mapping.version === 'component-rpc-string-values-v1' || mapping.version === 'component-rpc-typed-values-v1') && isRpcMessageRoot(mapping.root)
|
|
40
|
+
&& contract.binding.style === 'rpc' && contract.binding.use === 'encoded' && contract.binding.encoding === 'http://schemas.xmlsoap.org/soap/encoding/';
|
|
41
|
+
if ((!rpc && mapping.version !== profile.version) || mapping.contextId !== contract.contextId
|
|
42
|
+
|| contract.basis !== profile.basis || contract.correspondence !== profile.correspondence
|
|
43
|
+
|| contract.binding.version !== '1.1' || !rpc && (contract.binding.style !== 'document' || contract.binding.use !== 'literal')
|
|
32
44
|
|| contract.binding.transport !== 'http://schemas.xmlsoap.org/soap/http')
|
|
33
|
-
throw new Stop('unsupported',
|
|
45
|
+
throw new Stop('unsupported', profile.rule);
|
|
34
46
|
const direction = mapping.direction;
|
|
35
47
|
const root = direction.kind === 'fault' ? contract.faults.find(f => {
|
|
36
48
|
check();
|
|
@@ -72,7 +84,8 @@ function run(contract, supplied, options, work) {
|
|
|
72
84
|
if (error instanceof DataOwnershipLimitError)
|
|
73
85
|
return { kind: 'resource-limit', rule: error.message, usage: budget.usage() };
|
|
74
86
|
if (error instanceof Stop)
|
|
75
|
-
return Object.freeze({ kind: error.kind, rule: error.rule,
|
|
87
|
+
return Object.freeze({ kind: error.kind, rule: error.rule,
|
|
88
|
+
...(error.source ? { source: error.source, payloadPath: error.source.path } : {}), usage: Object.freeze({ ...budget.usage() }) });
|
|
76
89
|
if (error instanceof SchemaLoadingError)
|
|
77
90
|
return Object.freeze({ kind: error.category === 'invalid-schema' ? 'xml-invalid'
|
|
78
91
|
: error.category === 'resource-limit' ? 'resource-limit' : 'unsupported', rule: error.message, source: error.source,
|
|
@@ -80,103 +93,273 @@ function run(contract, supplied, options, work) {
|
|
|
80
93
|
throw error;
|
|
81
94
|
}
|
|
82
95
|
}
|
|
96
|
+
function run(contract, mapping, options, work) {
|
|
97
|
+
return runMapping(contract, mapping, options, directProfile, inspectDirectValueMapping, work);
|
|
98
|
+
}
|
|
99
|
+
function runComponent(contract, mapping, options, work) {
|
|
100
|
+
return runMapping(contract, mapping, options, componentProfile, (value, owner) => inspectComponentValueMapping(value, owner).mapping, work);
|
|
101
|
+
}
|
|
102
|
+
/** Serialize only native inverse output; source names and values have already passed their native owners. */
|
|
103
|
+
function emitObservedXml(payload, { budget, limits, check }) {
|
|
104
|
+
const pieces = [];
|
|
105
|
+
let byteLength = 0, nodes = 0, textUnits = 0, nextPrefix = 0;
|
|
106
|
+
const prefixes = new Map();
|
|
107
|
+
const append = (text) => {
|
|
108
|
+
check();
|
|
109
|
+
const size = Buffer.byteLength(text, 'utf8');
|
|
110
|
+
if (size > limits.maxBytes - byteLength)
|
|
111
|
+
throw new Stop('resource-limit', 'XML byte limit');
|
|
112
|
+
byteLength += size;
|
|
113
|
+
pieces.push(text);
|
|
114
|
+
};
|
|
115
|
+
const escape = (text, attribute = false) => {
|
|
116
|
+
check();
|
|
117
|
+
return text.replace(/[&<>\r"\t\n]/g, c => c === '&' ? '&' : c === '<' ? '<' : c === '>' ? '>'
|
|
118
|
+
: c === '\r' ? ' ' : attribute && c === '"' ? '"' : attribute && c === '\t' ? '	'
|
|
119
|
+
: attribute && c === '\n' ? ' ' : c);
|
|
120
|
+
};
|
|
121
|
+
const prefixFor = (namespace) => {
|
|
122
|
+
if (!namespace)
|
|
123
|
+
return '';
|
|
124
|
+
if (namespace === 'http://www.w3.org/2000/xmlns/')
|
|
125
|
+
throw new Stop('unsupported', 'namespace-declaration-as-data');
|
|
126
|
+
let prefix = namespace === XML_NAMESPACE ? 'xml' : prefixes.get(namespace);
|
|
127
|
+
if (namespace && prefix === undefined) {
|
|
128
|
+
prefix = `n${nextPrefix++}`;
|
|
129
|
+
prefixes.set(namespace, prefix);
|
|
130
|
+
}
|
|
131
|
+
return prefix;
|
|
132
|
+
};
|
|
133
|
+
const tasks = [{ kind: 'element', node: payload, depth: 1 }];
|
|
134
|
+
while (tasks.length) {
|
|
135
|
+
check();
|
|
136
|
+
const task = tasks.pop();
|
|
137
|
+
if (task.kind === 'close') {
|
|
138
|
+
append(`</${task.name}>`);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
budget.reserveNodes(1);
|
|
142
|
+
if (task.kind === 'text') {
|
|
143
|
+
if (++nodes > limits.maxNodes || task.value.length > limits.maxText - textUnits)
|
|
144
|
+
throw new Stop('resource-limit', 'XML node/text limit');
|
|
145
|
+
textUnits += task.value.length;
|
|
146
|
+
append(escape(task.value));
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const { node, depth } = task;
|
|
150
|
+
if (++nodes > limits.maxNodes || depth > limits.maxDepth)
|
|
151
|
+
throw new Stop('resource-limit', 'XML node/depth limit');
|
|
152
|
+
const declarations = new Map();
|
|
153
|
+
const protectedScope = Object.hasOwn(node.namespaces, 'xml');
|
|
154
|
+
const scope = Object.assign(Object.create(null), task.scope ?? { xml: XML_NAMESPACE, '': '' });
|
|
155
|
+
if (protectedScope) {
|
|
156
|
+
for (const prefix of budget.sorted(Object.keys(node.namespaces), (a, b) => budget.compareText(a, b))) {
|
|
157
|
+
check();
|
|
158
|
+
const namespace = node.namespaces[prefix];
|
|
159
|
+
if (!isXmlNamespaceBinding(prefix, namespace))
|
|
160
|
+
throw new Stop('value-invalid', 'namespace-binding', node.source);
|
|
161
|
+
if (prefix !== 'xml' && scope[prefix] !== namespace)
|
|
162
|
+
declarations.set(prefix, namespace);
|
|
163
|
+
scope[prefix] = namespace;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const qualified = (namespace, local, attribute = false) => {
|
|
167
|
+
if (protectedScope) {
|
|
168
|
+
if (!namespace) {
|
|
169
|
+
if (!attribute && scope[''])
|
|
170
|
+
throw new Stop('value-invalid', 'no-namespace-element-default-conflict', node.source);
|
|
171
|
+
return local;
|
|
172
|
+
}
|
|
173
|
+
const prefix = budget.sorted(Object.keys(scope), (a, b) => budget.compareText(a, b))
|
|
174
|
+
.find(prefix => (!attribute || prefix !== '') && scope[prefix] === namespace);
|
|
175
|
+
if (prefix === undefined)
|
|
176
|
+
throw new Stop('value-invalid', attribute ? 'attribute-namespace-prefix-required' : 'element-namespace-prefix-required', node.source);
|
|
177
|
+
return prefix ? `${prefix}:${local}` : local;
|
|
178
|
+
}
|
|
179
|
+
if (!namespace) {
|
|
180
|
+
if (!attribute && scope['']) {
|
|
181
|
+
declarations.set('', '');
|
|
182
|
+
scope[''] = '';
|
|
183
|
+
}
|
|
184
|
+
return local;
|
|
185
|
+
}
|
|
186
|
+
const prefix = prefixFor(namespace);
|
|
187
|
+
let selected = prefix;
|
|
188
|
+
while (scope[selected] !== undefined && scope[selected] !== namespace)
|
|
189
|
+
selected = `n${nextPrefix++}`;
|
|
190
|
+
if (selected && selected !== 'xml') {
|
|
191
|
+
declarations.set(selected, namespace);
|
|
192
|
+
scope[selected] = namespace;
|
|
193
|
+
}
|
|
194
|
+
return selected ? `${selected}:${local}` : local;
|
|
195
|
+
};
|
|
196
|
+
const name = qualified(node.name.namespace, node.name.local), attributes = [];
|
|
197
|
+
for (const attribute of node.attributes) {
|
|
198
|
+
check();
|
|
199
|
+
if (attribute.name.namespace === '' && attribute.name.local === 'xmlns')
|
|
200
|
+
throw new Stop('unsupported', 'namespace-declaration-as-data');
|
|
201
|
+
attributes.push(` ${qualified(attribute.name.namespace, attribute.name.local, true)}="${escape(attribute.value, true)}"`);
|
|
202
|
+
}
|
|
203
|
+
// @why Bind each used prefix at this element; sibling discovery never makes a prefix in scope elsewhere.
|
|
204
|
+
append(`<${name}`);
|
|
205
|
+
for (const [prefix, namespace] of declarations)
|
|
206
|
+
append(` xmlns${prefix ? ':' + prefix : ''}="${escape(namespace, true)}"`);
|
|
207
|
+
for (const attribute of attributes)
|
|
208
|
+
append(attribute);
|
|
209
|
+
append('>');
|
|
210
|
+
tasks.push({ kind: 'close', name });
|
|
211
|
+
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
212
|
+
check();
|
|
213
|
+
const child = node.children[i];
|
|
214
|
+
tasks.push(child.kind === 'element' ? { kind: 'element', node: child, depth: depth + 1, scope } : { kind: 'text', value: child.value });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Actual output bytes were bounded by append; bytes are caller-owned data, not authority.
|
|
218
|
+
check();
|
|
219
|
+
const bytes = Buffer.from(pieces.join(''), 'utf8');
|
|
220
|
+
check();
|
|
221
|
+
return bytes;
|
|
222
|
+
}
|
|
83
223
|
/** Validate fresh values using the delivered inverse, then emit deterministic UTF-8. */
|
|
84
224
|
export function encodeDirectXml(contract, mapping, application, options = {}) {
|
|
85
|
-
return run(contract, mapping, options, (owned,
|
|
225
|
+
return run(contract, mapping, options, (owned, session) => {
|
|
226
|
+
const { budget, limits } = session;
|
|
86
227
|
const expanded = expandDirectValue(contract, owned, application, { ...options, maxText: Math.min(limits.maxText, limits.maxBytes), maxItems: Math.min(limits.maxNodes, limits.maxBytes) });
|
|
87
228
|
if (expanded.kind !== 'direct-expanded')
|
|
88
229
|
return expanded;
|
|
89
|
-
const
|
|
90
|
-
let byteLength = 0, nodes = 0, textUnits = 0, nextPrefix = 0;
|
|
91
|
-
const prefixes = new Map();
|
|
92
|
-
const append = (text) => {
|
|
93
|
-
check();
|
|
94
|
-
const size = Buffer.byteLength(text, 'utf8');
|
|
95
|
-
if (size > limits.maxBytes - byteLength)
|
|
96
|
-
throw new Stop('resource-limit', 'XML byte limit');
|
|
97
|
-
byteLength += size;
|
|
98
|
-
pieces.push(text);
|
|
99
|
-
};
|
|
100
|
-
const escape = (text, attribute = false) => {
|
|
101
|
-
check();
|
|
102
|
-
return text.replace(/[&<>\r"\t\n]/g, c => c === '&' ? '&' : c === '<' ? '<' : c === '>' ? '>'
|
|
103
|
-
: c === '\r' ? ' ' : attribute && c === '"' ? '"' : attribute && c === '\t' ? '	'
|
|
104
|
-
: attribute && c === '\n' ? ' ' : c);
|
|
105
|
-
};
|
|
106
|
-
const emit = (node, depth) => {
|
|
107
|
-
check();
|
|
108
|
-
budget.reserveNodes(1);
|
|
109
|
-
if (++nodes > limits.maxNodes || depth > limits.maxDepth)
|
|
110
|
-
throw new Stop('resource-limit', 'XML node/depth limit');
|
|
111
|
-
const namespace = node.name.namespace;
|
|
112
|
-
let prefix = namespace === XML_NAMESPACE ? 'xml' : prefixes.get(namespace);
|
|
113
|
-
if (namespace && prefix === undefined) {
|
|
114
|
-
prefix = `n${nextPrefix++}`;
|
|
115
|
-
prefixes.set(namespace, prefix);
|
|
116
|
-
}
|
|
117
|
-
// Bind at each use: a prefix first encountered on one sibling is not in
|
|
118
|
-
// scope at its next sibling. Never use a default namespace, so local
|
|
119
|
-
// unqualified children need no inherited-default reset.
|
|
120
|
-
const declaration = namespace && prefix !== 'xml' ? ` xmlns:${prefix}="${escape(namespace, true)}"` : '';
|
|
121
|
-
const name = prefix ? `${prefix}:${node.name.local}` : node.name.local;
|
|
122
|
-
append(`<${name}${declaration}>`);
|
|
123
|
-
for (const child of node.children) {
|
|
124
|
-
check();
|
|
125
|
-
if (child.kind === 'element')
|
|
126
|
-
emit(child, depth + 1);
|
|
127
|
-
else {
|
|
128
|
-
budget.reserveNodes(1);
|
|
129
|
-
if (++nodes > limits.maxNodes || child.value.length > limits.maxText - textUnits)
|
|
130
|
-
throw new Stop('resource-limit', 'XML node/text limit');
|
|
131
|
-
textUnits += child.value.length;
|
|
132
|
-
append(escape(child.value));
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
append(`</${name}>`);
|
|
136
|
-
};
|
|
137
|
-
emit(expanded.payload, 1);
|
|
138
|
-
// Actual output bytes were bounded by append; bytes are caller-owned data, not authority.
|
|
139
|
-
check();
|
|
140
|
-
const bytes = Buffer.from(pieces.join(''), 'utf8');
|
|
141
|
-
check();
|
|
230
|
+
const bytes = emitObservedXml(expanded.payload, session);
|
|
142
231
|
return Object.freeze({ kind: 'direct-encoded', admitted: false, encoding: 'utf-8',
|
|
143
232
|
bytes, expanded, usage: Object.freeze({ ...budget.usage() }) });
|
|
144
233
|
});
|
|
145
234
|
}
|
|
235
|
+
/** Encode a component-qualified structured operation direction through the same native inverse and XML writer.
|
|
236
|
+
* @remarks Mapping/source authority is checked before values. This supplies XML bytes only, not policy enforcement or dispatch.
|
|
237
|
+
* @returns Native-validated UTF-8 output or explicit scalar/value/unsupported/cancellation/resource failure.
|
|
238
|
+
*/
|
|
239
|
+
export function encodeComponentXml(contract, mapping, application, options = {}) {
|
|
240
|
+
return runComponent(contract, mapping, options, (owned, session) => {
|
|
241
|
+
const { context } = inspectDirectOperation(contract), { budget, limits } = session;
|
|
242
|
+
if (isRpcMessageRoot(owned.root)) {
|
|
243
|
+
const control = { ...session, fail: (kind, rule, node) => { throw new Stop(kind, rule, node?.source); } };
|
|
244
|
+
const { rpcParts } = inspectComponentValueMapping(owned, contract);
|
|
245
|
+
const result = rpcParts ? expandRpcTyped(context, owned.root, rpcParts, application, control) : expandRpcStrings(owned.root, application, control);
|
|
246
|
+
const validated = { kind: rpcParts ? 'rpc-typed-value' : 'rpc-string-value', admitted: false, value: result.value, usage: budget.usage() };
|
|
247
|
+
const expanded = { kind: rpcParts ? 'rpc-typed-expanded' : 'rpc-string-expanded', admitted: false, payload: result.payload, validated, usage: budget.usage() };
|
|
248
|
+
directDataOwnership(budget).freeze(expanded);
|
|
249
|
+
const bytes = emitObservedXml(result.payload, session);
|
|
250
|
+
return Object.freeze({ kind: 'component-encoded', admitted: false, encoding: 'utf-8', bytes, expanded, mapping: owned, usage: budget.usage() });
|
|
251
|
+
}
|
|
252
|
+
// @why Application items include attributes; XML syntax-node/text caps count elements and character data.
|
|
253
|
+
// Encoded bytes bound inverse input capacity without treating those different counters as equal.
|
|
254
|
+
const expanded = expandProjectionValue(context, owned.root.element, application, { ...options,
|
|
255
|
+
maxText: limits.maxBytes, maxItems: limits.maxBytes }, owned);
|
|
256
|
+
if (expanded.kind !== 'projection-expanded')
|
|
257
|
+
return expanded;
|
|
258
|
+
const bytes = emitObservedXml(expanded.payload, session);
|
|
259
|
+
return Object.freeze({ kind: 'component-encoded', admitted: false, encoding: 'utf-8',
|
|
260
|
+
bytes, expanded, mapping: owned, usage: Object.freeze({ ...budget.usage() }) });
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
/** Retain the shared byte-copy, XML-version, entity and explicit capacity boundaries for both profiles. */
|
|
264
|
+
function parseObservedXml(bytes, { budget, limits, check }, sourceUri, componentResponseEncoding) {
|
|
265
|
+
if (!types.isUint8Array(bytes) || types.isProxy(bytes))
|
|
266
|
+
throw new TypeError('XML requires Uint8Array bytes');
|
|
267
|
+
// Use native internal-slot access, avoiding subclass/own length, buffer and
|
|
268
|
+
// iterator getters. Shared backing stores are outside the data-only contract.
|
|
269
|
+
const typed = Object.getPrototypeOf(Uint8Array.prototype);
|
|
270
|
+
const length = Object.getOwnPropertyDescriptor(typed, 'byteLength').get.call(bytes);
|
|
271
|
+
const backing = Object.getOwnPropertyDescriptor(typed, 'buffer').get.call(bytes);
|
|
272
|
+
if (types.isSharedArrayBuffer(backing))
|
|
273
|
+
throw new TypeError('Shared XML bytes are unsupported');
|
|
274
|
+
if (length > limits.maxBytes)
|
|
275
|
+
throw new Stop('resource-limit', 'XML byte limit');
|
|
276
|
+
check();
|
|
277
|
+
const input = new Uint8Array(length);
|
|
278
|
+
Uint8Array.prototype.set.call(input, bytes);
|
|
279
|
+
const uri = sourceUri ?? 'urn:typescript-wsdl-client:observed-direct-xml';
|
|
280
|
+
if (typeof uri !== 'string')
|
|
281
|
+
throw new TypeError('XML source URI must be a string');
|
|
282
|
+
check();
|
|
283
|
+
return parseOrderedSyntax(input, uri, { ...limits, xml10Only: true, componentResponseEncoding,
|
|
284
|
+
chargeWork: () => check(), reserveNode: () => { check(); budget.reserveNodes(1); } }).root;
|
|
285
|
+
}
|
|
286
|
+
function assertObservedPayload(root, payload, check) {
|
|
287
|
+
const pending = [root];
|
|
288
|
+
while (pending.length) {
|
|
289
|
+
check();
|
|
290
|
+
const node = pending.pop();
|
|
291
|
+
if (node === payload)
|
|
292
|
+
return;
|
|
293
|
+
for (let i = node.children.length - 1; i >= 0; i--) {
|
|
294
|
+
check();
|
|
295
|
+
const child = node.children[i];
|
|
296
|
+
if (child.kind === 'element')
|
|
297
|
+
pending.push(child);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
throw new TypeError('Protocol payload must belong to the observed document');
|
|
301
|
+
}
|
|
302
|
+
/** Observe once through the existing component parser and execution controls.
|
|
303
|
+
* @remarks Any exact operation-owned mapping can bind parsing to its execution context. Its value/root is not
|
|
304
|
+
* assessed here. Source qualification, wrapper scope and selected payload validation remain separate owners.
|
|
305
|
+
*/
|
|
306
|
+
export function observeComponentXml(contract, mapping, bytes, options = {}) {
|
|
307
|
+
const result = runComponent(contract, mapping, options, (_owned, session) => {
|
|
308
|
+
const root = parseObservedXml(bytes, session, options.uri ?? 'urn:typescript-wsdl-client:observed-component-xml', options.componentResponseEncoding);
|
|
309
|
+
directDataOwnership(session.budget).freeze(root);
|
|
310
|
+
return Object.freeze({ kind: 'observed-component-xml', root, usage: Object.freeze({ ...session.budget.usage() }) });
|
|
311
|
+
});
|
|
312
|
+
if (result.kind === 'observed-component-xml')
|
|
313
|
+
componentObservations.add(result);
|
|
314
|
+
return result;
|
|
315
|
+
}
|
|
316
|
+
/** Validate a genuine observed subtree through an independently qualified component mapping.
|
|
317
|
+
* @remarks XML capacities belong to the observation episode. This entry assesses the selected mapping's
|
|
318
|
+
* structure and scalar duties; it does not assert cross-contract wrapper, SOAP or runtime authority.
|
|
319
|
+
* @throws TypeError For copied observations, foreign mappings or a node outside the observed document.
|
|
320
|
+
*/
|
|
321
|
+
export function assessObservedComponentPayload(contract, mapping, observation, payload, options = {}) {
|
|
322
|
+
if (!componentObservations.has(observation))
|
|
323
|
+
throw new TypeError('Native component XML observation required');
|
|
324
|
+
return runComponent(contract, mapping, options, (owned, { budget, check }) => {
|
|
325
|
+
assertObservedPayload(observation.root, payload, check);
|
|
326
|
+
const { context } = inspectDirectOperation(contract);
|
|
327
|
+
if (isRpcMessageRoot(owned.root)) {
|
|
328
|
+
const control = { budget, check, fail: (kind, rule, node) => { throw new Stop(kind, rule, node?.source); } };
|
|
329
|
+
const { rpcParts } = inspectComponentValueMapping(owned, contract);
|
|
330
|
+
const value = rpcParts && owned.direction.kind === 'input' ? readRpcTyped(context, owned.root, rpcParts, payload, control)
|
|
331
|
+
: readRpcStrings(owned.root, payload, owned.direction.kind === 'output', control);
|
|
332
|
+
const validated = { kind: rpcParts ? 'rpc-typed-value' : 'rpc-string-value', admitted: false, value, usage: budget.usage() };
|
|
333
|
+
directDataOwnership(budget).freeze(validated);
|
|
334
|
+
return { kind: 'component-decoded', admitted: false, payload, validated, mapping: owned, usage: budget.usage() };
|
|
335
|
+
}
|
|
336
|
+
const structural = matchDirectProjection(context, owned.root.element, payload, options);
|
|
337
|
+
if (structural.kind !== 'projection-match')
|
|
338
|
+
return structural;
|
|
339
|
+
const validated = assessProjectionScalars(context, structural, options, owned);
|
|
340
|
+
if (validated.kind !== 'projection-value')
|
|
341
|
+
return validated;
|
|
342
|
+
return Object.freeze({ kind: 'component-decoded', admitted: false, payload, validated, mapping: owned,
|
|
343
|
+
usage: Object.freeze({ ...budget.usage() }) });
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
/** Verify membership without conferring a selected mapping or wrapper validity. */
|
|
347
|
+
export function assertComponentObservedPayload(observation, payload, check) {
|
|
348
|
+
if (!componentObservations.has(observation))
|
|
349
|
+
throw new TypeError('Native component XML observation required');
|
|
350
|
+
assertObservedPayload(observation.root, payload, check);
|
|
351
|
+
}
|
|
146
352
|
/** Bounded observed bytes -> ordered syntax -> existing structural/scalar checks. */
|
|
147
353
|
export function decodeDirectXml(contract, mapping, bytes, options = {}) {
|
|
148
|
-
return run(contract, mapping, options, (owned,
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// Use native internal-slot access, avoiding subclass/own length, buffer and
|
|
152
|
-
// iterator getters. Shared backing stores are outside the data-only contract.
|
|
153
|
-
const typed = Object.getPrototypeOf(Uint8Array.prototype);
|
|
154
|
-
const length = Object.getOwnPropertyDescriptor(typed, 'byteLength').get.call(bytes);
|
|
155
|
-
const backing = Object.getOwnPropertyDescriptor(typed, 'buffer').get.call(bytes);
|
|
156
|
-
if (types.isSharedArrayBuffer(backing))
|
|
157
|
-
throw new TypeError('Shared XML bytes are unsupported');
|
|
158
|
-
if (length > limits.maxBytes)
|
|
159
|
-
throw new Stop('resource-limit', 'XML byte limit');
|
|
160
|
-
check();
|
|
161
|
-
const input = new Uint8Array(length);
|
|
162
|
-
Uint8Array.prototype.set.call(input, bytes);
|
|
163
|
-
const uri = options.uri ?? 'urn:typescript-wsdl-client:observed-direct-xml';
|
|
164
|
-
if (typeof uri !== 'string')
|
|
165
|
-
throw new TypeError('XML source URI must be a string');
|
|
166
|
-
check();
|
|
167
|
-
const root = parseOrderedSyntax(input, uri, { ...limits, xml10Only: true,
|
|
168
|
-
chargeWork: () => check(), reserveNode: () => { check(); budget.reserveNodes(1); } }).root;
|
|
354
|
+
return run(contract, mapping, options, (owned, session) => {
|
|
355
|
+
const { budget, check } = session;
|
|
356
|
+
const root = parseObservedXml(bytes, session, options.uri);
|
|
169
357
|
const selection = options.selectPayload?.(root) ?? { payload: root, mapping: owned };
|
|
170
358
|
const payload = selection.payload;
|
|
171
359
|
const selectedMapping = inspectDirectValueMapping(selection.mapping, contract);
|
|
172
360
|
// Protocol selection may only return an actual node from this parse, never
|
|
173
361
|
// a synthetic tree relabeled with the observed document's provenance.
|
|
174
|
-
|
|
175
|
-
check();
|
|
176
|
-
return node === payload || node.children.some(child => child.kind === 'element' && contains(child));
|
|
177
|
-
};
|
|
178
|
-
if (!contains(root))
|
|
179
|
-
throw new TypeError('Protocol payload must belong to the observed document');
|
|
362
|
+
assertObservedPayload(root, payload, check);
|
|
180
363
|
const structural = matchDirectOperation(contract, selectedMapping.direction, payload, options);
|
|
181
364
|
if (structural.kind !== 'structural-match')
|
|
182
365
|
return structural;
|
|
@@ -190,3 +373,38 @@ export function decodeDirectXml(contract, mapping, bytes, options = {}) {
|
|
|
190
373
|
usage: Object.freeze({ ...budget.usage() }) });
|
|
191
374
|
});
|
|
192
375
|
}
|
|
376
|
+
/** Decode observed component-profile bytes through the same parser and native structured/scalar owners.
|
|
377
|
+
* @remarks Protocol selection may choose only an actual node from this parse and an exact operation-owned mapping.
|
|
378
|
+
* It cannot relabel a copied syntax tree, switch operations or acquire runtime/policy enforcement authority.
|
|
379
|
+
* @returns A native-validated structured value or explicit XML/structure/scalar/unsupported/resource failure.
|
|
380
|
+
*/
|
|
381
|
+
export function decodeComponentXml(contract, mapping, bytes, options = {}) {
|
|
382
|
+
return runComponent(contract, mapping, options, (owned, session) => {
|
|
383
|
+
const { budget, check } = session, { context } = inspectDirectOperation(contract);
|
|
384
|
+
const root = parseObservedXml(bytes, session, options.uri ?? 'urn:typescript-wsdl-client:observed-component-xml', options.componentResponseEncoding);
|
|
385
|
+
const selection = options.selectPayload?.(root) ?? { payload: root, mapping: owned };
|
|
386
|
+
const selected = inspectComponentValueMapping(selection.mapping, contract).mapping;
|
|
387
|
+
assertObservedPayload(root, selection.payload, check);
|
|
388
|
+
if (isRpcMessageRoot(selected.root)) {
|
|
389
|
+
const control = { ...session, fail: (kind, rule, node) => { throw new Stop(kind, rule, node?.source); } };
|
|
390
|
+
const { rpcParts } = inspectComponentValueMapping(selected, contract);
|
|
391
|
+
const value = rpcParts && selected.direction.kind === 'input' ? readRpcTyped(context, selected.root, rpcParts, selection.payload, control)
|
|
392
|
+
: readRpcStrings(selected.root, selection.payload, selected.direction.kind === 'output', control);
|
|
393
|
+
const validated = { kind: rpcParts ? 'rpc-typed-value' : 'rpc-string-value', admitted: false, value, usage: budget.usage() };
|
|
394
|
+
directDataOwnership(budget).freeze(validated);
|
|
395
|
+
directDataOwnership(budget).freeze(selection.payload);
|
|
396
|
+
return { kind: 'component-decoded', admitted: false, payload: selection.payload, validated, mapping: selected, usage: budget.usage() };
|
|
397
|
+
}
|
|
398
|
+
const structural = matchDirectProjection(context, selected.root.element, selection.payload, options);
|
|
399
|
+
if (structural.kind !== 'projection-match')
|
|
400
|
+
return structural;
|
|
401
|
+
const validated = assessProjectionScalars(context, structural, options, selected);
|
|
402
|
+
if (validated.kind !== 'projection-value')
|
|
403
|
+
return validated;
|
|
404
|
+
check();
|
|
405
|
+
directDataOwnership(budget).freeze(selection.payload);
|
|
406
|
+
check();
|
|
407
|
+
return Object.freeze({ kind: 'component-decoded', admitted: false, payload: selection.payload,
|
|
408
|
+
validated, mapping: selected, usage: Object.freeze({ ...budget.usage() }) });
|
|
409
|
+
});
|
|
410
|
+
}
|
|
@@ -7,4 +7,3 @@ export declare function directDataOwnership(budget: SemanticBudget): Readonly<{
|
|
|
7
7
|
}>;
|
|
8
8
|
export declare function directLimit(budget: SemanticBudget, boundedProfile: number): number;
|
|
9
9
|
export declare function directLoadingLimits(budget: SemanticBudget, overrides?: Partial<LoadingLimits>): Partial<LoadingLimits>;
|
|
10
|
-
//# sourceMappingURL=directExecutionPolicy.d.ts.map
|
|
@@ -4,6 +4,9 @@ import type { ElementNode, Reference } from './canonicalGraph.js';
|
|
|
4
4
|
import type { SemanticContext } from './semanticContext.js';
|
|
5
5
|
import type { SemanticBudget, SemanticBudgetLimits, ResolverUsage } from './semanticBudget.js';
|
|
6
6
|
import type { DirectSourceQualification } from './checkedSourcePreparation.js';
|
|
7
|
+
import type { ComponentSourceQualification } from './checkedComponentSource.js';
|
|
8
|
+
import type { WsdlPolicyRequirements, BindingPolicyRequirements } from './wsdlPolicyRequirements.js';
|
|
9
|
+
import type { StandardSchemaLibrary } from './standardSchemaComponents.js';
|
|
7
10
|
export interface DirectOperationSelector {
|
|
8
11
|
readonly portType: ExpandedName;
|
|
9
12
|
readonly binding: ExpandedName;
|
|
@@ -16,25 +19,57 @@ export interface DirectMessageRoot {
|
|
|
16
19
|
readonly type: Reference;
|
|
17
20
|
readonly source: SyntaxSource;
|
|
18
21
|
}
|
|
22
|
+
/** Source-owned RPC parameters; these are WSDL parts rather than schema element declarations.
|
|
23
|
+
* @since 1.1.9
|
|
24
|
+
*/
|
|
25
|
+
export interface RpcMessageRoot {
|
|
26
|
+
readonly kind: 'rpc-typed-parts-v1';
|
|
27
|
+
readonly message: ExpandedName;
|
|
28
|
+
readonly parts: readonly Readonly<{
|
|
29
|
+
name: string;
|
|
30
|
+
type: Reference;
|
|
31
|
+
source: SyntaxSource;
|
|
32
|
+
}>[];
|
|
33
|
+
readonly wrapper: ExpandedName;
|
|
34
|
+
readonly bodyNamespace: string;
|
|
35
|
+
readonly encoding: 'http://schemas.xmlsoap.org/soap/encoding/';
|
|
36
|
+
readonly source: SyntaxSource;
|
|
37
|
+
}
|
|
38
|
+
/** Distinguish typed RPC parameters without inventing a document element.
|
|
39
|
+
* @param root Selected native message.
|
|
40
|
+
* @returns Whether the message uses the bounded RPC profile.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isRpcMessageRoot(root: DirectMessageRoot | RpcMessageRoot): root is RpcMessageRoot;
|
|
19
43
|
export interface DirectOperationContract {
|
|
20
44
|
readonly selector: DirectOperationSelector;
|
|
21
45
|
readonly contextId: string;
|
|
22
|
-
readonly basis: 'native-direct-premises-v1';
|
|
23
|
-
readonly correspondence: 'dated-XSD-2004-direct-v1';
|
|
46
|
+
readonly basis: 'native-direct-premises-v1' | 'native-component-premises-v1';
|
|
47
|
+
readonly correspondence: 'dated-XSD-2004-direct-v1' | 'dated-XSD-2004-components-v1';
|
|
24
48
|
readonly binding: Readonly<{
|
|
25
49
|
version: '1.1';
|
|
26
|
-
style: 'document';
|
|
27
|
-
use: 'literal';
|
|
50
|
+
style: 'document' | 'rpc';
|
|
51
|
+
use: 'literal' | 'encoded';
|
|
52
|
+
encoding?: string;
|
|
28
53
|
transport: string;
|
|
29
54
|
action: string;
|
|
30
55
|
source: SyntaxSource;
|
|
31
56
|
}>;
|
|
32
|
-
readonly input: DirectMessageRoot;
|
|
33
|
-
readonly output: DirectMessageRoot;
|
|
57
|
+
readonly input: DirectMessageRoot | RpcMessageRoot;
|
|
58
|
+
readonly output: DirectMessageRoot | RpcMessageRoot;
|
|
34
59
|
readonly faults: readonly Readonly<{
|
|
35
60
|
name: string;
|
|
36
61
|
root: DirectMessageRoot;
|
|
37
62
|
}>[];
|
|
63
|
+
readonly policy?: BindingPolicyRequirements;
|
|
64
|
+
readonly addressingActions?: Readonly<{
|
|
65
|
+
required: false;
|
|
66
|
+
input?: string;
|
|
67
|
+
output?: string;
|
|
68
|
+
faults: readonly Readonly<{
|
|
69
|
+
name: string;
|
|
70
|
+
action: string;
|
|
71
|
+
}>[];
|
|
72
|
+
}>;
|
|
38
73
|
readonly missingCapabilities: readonly string[];
|
|
39
74
|
readonly admitted: false;
|
|
40
75
|
}
|
|
@@ -53,7 +88,8 @@ export interface DirectOperationInspection {
|
|
|
53
88
|
readonly source: SchemaInput;
|
|
54
89
|
readonly evidence: Extract<DirectSourceQualification, {
|
|
55
90
|
kind: 'qualified-source';
|
|
56
|
-
}
|
|
91
|
+
}> | ComponentSourceQualification;
|
|
92
|
+
readonly policyOwner?: WsdlPolicyRequirements;
|
|
57
93
|
}
|
|
58
94
|
/** Object identity authenticates the exact issued roots; context IDs and digests do not. */
|
|
59
95
|
export declare function inspectDirectOperation(contract: DirectOperationContract, expectedContext?: SemanticContext): DirectOperationInspection;
|
|
@@ -69,4 +105,32 @@ export declare function selectDirectOperationInRequest(source: string, selector:
|
|
|
69
105
|
limits?: SemanticBudgetLimits;
|
|
70
106
|
signal?: AbortSignal;
|
|
71
107
|
}>, budget: SemanticBudget): Promise<DirectOperationResult>;
|
|
72
|
-
|
|
108
|
+
/** Select through additive native component qualification without granting codec, transport or runtime admission.
|
|
109
|
+
* @remarks The same WSDL binding/message owner is used by the existing preview. New contracts carry a distinct
|
|
110
|
+
* basis and correspondence; preview codecs and source capsules continue to refuse them until independently extended.
|
|
111
|
+
* @returns Fresh source-bound operation roots or an explicit qualification/selection failure.
|
|
112
|
+
*/
|
|
113
|
+
export declare function selectComponentOperation(source: string, selector: DirectOperationSelector, options: Readonly<{
|
|
114
|
+
loading: SchemaInputOptions;
|
|
115
|
+
limits?: SemanticBudgetLimits;
|
|
116
|
+
signal?: AbortSignal;
|
|
117
|
+
standardLibraries?: readonly StandardSchemaLibrary[];
|
|
118
|
+
}>): Promise<DirectOperationResult>;
|
|
119
|
+
/** Private composition seam: artifact reading and fresh component selection share the same sticky request. */
|
|
120
|
+
export declare function selectComponentOperationInRequest(source: string, selector: DirectOperationSelector, options: Readonly<{
|
|
121
|
+
loading: SchemaInputOptions;
|
|
122
|
+
limits?: SemanticBudgetLimits;
|
|
123
|
+
signal?: AbortSignal;
|
|
124
|
+
standardLibraries?: readonly StandardSchemaLibrary[];
|
|
125
|
+
}>, budget: SemanticBudget): Promise<DirectOperationResult>;
|
|
126
|
+
/** Select requested service operations against one fresh native source snapshot and sticky request.
|
|
127
|
+
* @remarks Native whole-source qualification is reused by identity within this batch only. Every binding/message
|
|
128
|
+
* selection still runs through the same owner; no source flags, saved reports or operation-name guesses are consumed.
|
|
129
|
+
* @returns One result in each requested position, including explicit refusals. No requested operation is omitted.
|
|
130
|
+
*/
|
|
131
|
+
export declare function selectComponentOperations(source: string, selectors: readonly DirectOperationSelector[], options: Readonly<{
|
|
132
|
+
loading: SchemaInputOptions;
|
|
133
|
+
limits?: SemanticBudgetLimits;
|
|
134
|
+
signal?: AbortSignal;
|
|
135
|
+
standardLibraries?: readonly StandardSchemaLibrary[];
|
|
136
|
+
}>): Promise<readonly DirectOperationResult[]>;
|